2. qt写带有槽的登录界面(c++)
我们在1.Qt写简单的登录界面(c++)_c++ qt 设计一个简单界面-CSDN博客中写了个简单的登录界面,但没有槽,在这里写一个带有槽的界面。
1.代码
代码目录如下:
main.cpp的代码如下:
#include "MainWindow.h"
#include <QtWidgets/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
MainWindow.h的代码如下:
#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_MainWindow.h"
#include <QLabel>
#include <QtWidgets>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
public slots: // 或者直接在类定义中定义槽函数。
void handleMySignal();
private:
Ui::MainWindow *ui;
};
MainWindow.cpp的代码如下:
#include "MainWindow.h"
#include <QLabel>
#include <QtWidgets>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
,ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setWindowTitle("The first UI display of wang");//设置窗口标题
this->setWindowIcon(QIcon("D:\\AI\\vs\\ui\\Demo1\\Demo1\\buttonss\\ss.png"));//设置窗口图标
//this->setWindowFlag(Qt::FramelessWindowHint);//设置纯净标题
this->resize(800, 600);//设置大小
this->setStyleSheet("background-color:white");//设置背景颜色
// --------------------按钮设置-------------------
QPushButton* btn = new QPushButton(" register", this);
btn->setGeometry(350, 400, 120, 50);
btn->setStyleSheet("background-color:rgb(8,189,253);border-radius:5px;color:white");//设置背景,按钮样式,字体颜色
// 建立关联当点击pushButton时信号clicked 发送给槽on_pushButton_clicked
btn->connect(btn, &QPushButton::clicked, this, &MainWindow::handleMySignal);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::handleMySignal()
{
this->setWindowTitle("wang");//设置窗口标题
}
运行结果如下:
点击按钮后的结果如下:
我们发现左上角的名称变为了"wang".
2.注意事项
在该代码中,可能会出现 ui(new Ui::MainWindow) 的报错,解决办法如下:
1.打开项目中的MainWindow.ui文件如下:
修改上图中右下角的"objectName"右边的名称为"MainWindow",然后保存该文件,退出后进入vs重新生成解决方案,这个时候还会继续报错。
2.进入MainWindow.h文件
如下图所示,将工具栏的debug修改为Release,然后将该文件最下面一行修改为Ui::MainWindow *ui;(自动生成的代码不是这样的,需要修改成这样)。
最后再次生成解决方案,就不会报错了。