QT学习——笔记(二)
2020-02-25 本文已影响0人
LLLL先生
实现多窗口对话
-
实现了窗口的关闭弹出和不关闭弹出
image.png
可以用来制作登陆界面和多窗口互动
问题
- 上面给出的教程是QT4的教程,而我电脑上安装的是QT5,会有一些版本差异
- 在插入下面这段代码时
#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()); //设置编码
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
MainWindow w;
LoginDlg dlg; // 建立自己新建的类的对象dlg
if(dlg.exec() == QDialog::Accepted) // 利用Accepted返回值判断按钮是否被按下
{
w.show(); // 如果被按下,显示主窗口
return a.exec(); // 程序一直执行,直到主窗口关闭
}
else return 0; //如果没被按下,则不会进入主窗口,整个程序结束运行
}
include <QtGui/QApplication> 要改成 #include <QtWidgets>
- 另外给控件命名为中文也不需要另外声明
- 在
mainwindow.cpp
文件中原教程代码为
void MainWindow::on_pushButton_clicked()
{
QDialog *dlg = new QDialog(this);
dlg->show();
}
所对应弹出的窗口如下
如果要改成其他样式的弹出窗口,需要把
QDialog *dlg = new QDialog(this);
改为QDialog *dlg = new LoginDlg(this);
注:要先添加头文件
#include "logindlg.h" //添加头文件