實(shí)現(xiàn)多窗口對(duì)話
-
實(shí)現(xiàn)了窗口的關(guān)閉彈出和不關(guān)閉彈出
image.png
可以用來(lái)制作登陸界面和多窗口互動(dòng)
問(wèn)題
- 上面給出的教程是QT4的教程奶镶,而我電腦上安裝的是QT5,會(huì)有一些版本差異
- 在插入下面這段代碼時(shí)
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QTextCodec> //添加頭文件
#include "logindlg.h" //添加頭文件
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); //設(shè)置編碼
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
MainWindow w;
LoginDlg dlg; // 建立自己新建的類的對(duì)象dlg
if(dlg.exec() == QDialog::Accepted) // 利用Accepted返回值判斷按鈕是否被按下
{
w.show(); // 如果被按下陪拘,顯示主窗口
return a.exec(); // 程序一直執(zhí)行厂镇,直到主窗口關(guān)閉
}
else return 0; //如果沒(méi)被按下,則不會(huì)進(jìn)入主窗口左刽,整個(gè)程序結(jié)束運(yùn)行
}
include <QtGui/QApplication> 要改成 #include <QtWidgets>
- 另外給控件命名為中文也不需要另外聲明
- 在
mainwindow.cpp
文件中原教程代碼為
void MainWindow::on_pushButton_clicked()
{
QDialog *dlg = new QDialog(this);
dlg->show();
}
所對(duì)應(yīng)彈出的窗口如下
image.png
如果要改成其他樣式的彈出窗口剪撬,需要把
QDialog *dlg = new QDialog(this);
改為QDialog *dlg = new LoginDlg(this);
注:要先添加頭文件
#include "logindlg.h" //添加頭文件