为将要进行的工作做准备。
代码实现功能:单击某个按钮后,弹出对话框,对话框中的内容可自行设计。
1.建立一个主界面,主界面中有一个pushbotton按键。
2.右键项目->添加新文件->Qt设计师界面类
Part II——对话框的模态和非模态
1、 建立一个对话框类:
2、 对话框中放置pushbutton和TextEdit:
3、 转到主窗口菜单栏New Window的槽:
4、 在槽中插入如下代码(并且在mainwindow.h中要建立对话框的指针):
5、显示结果如下:
(1)非模态显示(dialog->setModal(false)):
(2)模态显示(dialog->setModal(ture)):
给出完整程序(只给出需要填写代码和有注释部分,无改动的不给出):
mainwindow.h程序:
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
- #include <QMainWindow>
- #include"mydialog.h"
- namespace Ui {
- class MainWindow;
- }
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
- public:
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow();
- private slots:
- void on_actionNew_Window_triggered();
- private:
- Ui::MainWindow *ui;
- MyDialog *dialog; //添加私有成员,为一个dailog(窗口)的指针
- };
- #endif // MAINWINDOW_H
mainwindow.cpp程序:
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- //把给定的组件设定成主窗口的中央组件,这里是把plainTextEdit设为窗口的中央组件
- setCentralWidget(ui->plainTextEdit);
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- void MainWindow::on_actionNew_Window_triggered()
- {
- //新建一个窗口对象,其中的this指定了新的窗口的父对象是MainWindow,在销毁Mainwindow时也会销毁子对象,即该窗口对象
- dialog = new MyDialog(this);
- //Modal属性决定了show()应该将弹出的dialog设置为模态还是非模态
- //默认情况下该属性为false并且show()弹出的窗口是非模态的
- //把这个属性设置为true就详单与设置QWidget::windowModality为Qt::ApplicationModal
- //执行exec()忽略这个Modal这个属性,并且把弹出的dialog设置为模态的
- dialog->setModal(false); //此处ture为模态,false为非模态
- dialog->show();
- }
main.cpp程序:
- //2014/8/3 wayne HDU
- //问题描述:(1)创建一个mainwindow(2)创建一个dialog,并且展示modal和modaless的区别
- #include "mainwindow.h"
- #include <QApplication>
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- MainWindow w;
- w.show();
- return a.exec();
Part II——对话框的模态和非模态
1、 建立一个对话框类:
2、 对话框中放置pushbutton和TextEdit:
3、 转到主窗口菜单栏New Window的槽:
4、 在槽中插入如下代码(并且在mainwindow.h中要建立对话框的指针):
5、显示结果如下:
(1)非模态显示(dialog->setModal(false)):
(2)模态显示(dialog->setModal(ture)):
给出完整程序(只给出需要填写代码和有注释部分,无改动的不给出):
mainwindow.h程序:
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
- #include <QMainWindow>
- #include"mydialog.h"
- namespace Ui {
- class MainWindow;
- }
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
- public:
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow();
- private slots:
- void on_actionNew_Window_triggered();
- private:
- Ui::MainWindow *ui;
- MyDialog *dialog; //添加私有成员,为一个dailog(窗口)的指针
- };
- #endif // MAINWINDOW_H
mainwindow.cpp程序:
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- //把给定的组件设定成主窗口的中央组件,这里是把plainTextEdit设为窗口的中央组件
- setCentralWidget(ui->plainTextEdit);
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- void MainWindow::on_actionNew_Window_triggered()
- {
- //新建一个窗口对象,其中的this指定了新的窗口的父对象是MainWindow,在销毁Mainwindow时也会销毁子对象,即该窗口对象
- dialog = new MyDialog(this);
- //Modal属性决定了show()应该将弹出的dialog设置为模态还是非模态
- //默认情况下该属性为false并且show()弹出的窗口是非模态的
- //把这个属性设置为true就详单与设置QWidget::windowModality为Qt::ApplicationModal
- //执行exec()忽略这个Modal这个属性,并且把弹出的dialog设置为模态的
- dialog->setModal(false); //此处ture为模态,false为非模态
- dialog->show();
- }
main.cpp程序:
- //2014/8/3 wayne HDU
- //问题描述:(1)创建一个mainwindow(2)创建一个dialog,并且展示modal和modaless的区别
- #include "mainwindow.h"
- #include <QApplication>
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- MainWindow w;
- w.show();
- return a.exec();