我们在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_OBJECTpublic: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_clickedbtn->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;(自动生成的代码不是这样的,需要修改成这样)。
最后再次生成解决方案,就不会报错了。