QT学习——笔记(二)

作者: LLLL先生 | 来源:发表于2020-02-25 20:17 被阅读0次

    实现多窗口对话

    参照教程第二章

    • 实现了窗口的关闭弹出和不关闭弹出


      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();
    }
    

    所对应弹出的窗口如下

    image.png
    如果要改成其他样式的弹出窗口,需要把QDialog *dlg = new QDialog(this);改为QDialog *dlg = new LoginDlg(this);
    注:要先添加头文件#include "logindlg.h" //添加头文件

    相关文章

      网友评论

        本文标题:QT学习——笔记(二)

        本文链接:https://www.haomeiwen.com/subject/dlgfchtx.html