????????我們在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;(自動生成的代碼不是這樣的,需要修改成這樣)。
最后再次生成解決方案,就不會報錯了。