标签:clu class span 模态 方法 div 程序 efi bsp
mainwindow新建方法MainWindowOpen打开一个新的对话框
mainWindow.h
1 #ifndef MAINWINDOW_H 2 #define MAINWINDOW_H 3 4 #include <QMainWindow> 5 6 namespace Ui { 7 class MainWindow; 8 } 9 10 class MainWindow : public QMainWindow 11 { 12 Q_OBJECT 13 14 public: 15 explicit MainWindow(QWidget *parent = nullptr); 16 ~MainWindow(); 17 void MainWindowOpen(); 18 19 private: 20 Ui::MainWindow *ui; 21 }; 22 23 #endif // MAINWINDOW_H
mainWindow.cpp
1 #include "mainwindow.h" 2 #include "ui_mainwindow.h" 3 #include <QDialog> 4 MainWindow::MainWindow(QWidget *parent) : 5 QMainWindow(parent), 6 ui(new Ui::MainWindow) 7 { 8 ui->setupUi(this); 9 } 10 11 MainWindow::~MainWindow() 12 { 13 delete ui; 14 } 15 void MainWindow::MainWindowOpen(){ 16 QDialog *pt = new QDialog(this); 17 pt->setWindowTitle("This is a QDialog"); 18 pt->exec(); 19 }
之后在main.cpp中使用QObject::connect()使用信号量链接起来
1 #include "mainwindow.h" 2 #include <QApplication> 3 #include <QObject> 4 #include <QPushButton> 5 int main(int argc, char *argv[]) 6 { 7 QApplication a(argc, argv); 8 MainWindow w; 9 QPushButton* button = new QPushButton(&w); 10 button->setText("Click"); 11 QObject::connect(button,&QPushButton::clicked,&w,&MainWindow::MainWindowOpen); 12 w.show(); 13 return a.exec(); 14 }
效果
如果有设置对话框的父控件,则对话框出现在父控件的中心位置
QDialog::exec()实现应用程序级别的对话框——当对话框出现时,我们不能对主窗口作交互
QDialog::open()实现窗口级别的模态对话框
QDialog::show()实现非模态对话框
——当对话框出现时,我们依旧可以对主窗口作交互
为防止内存泄漏,我们可以使用dialog->setAttribute(Qt::WA_DeleteOnClose);以在对话框关闭时自动释放对话框,防止内存泄漏。
标签:clu class span 模态 方法 div 程序 efi bsp
原文地址:https://www.cnblogs.com/xfww/p/10520469.html