日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

qt show widget_Qt中show()与exec()

發(fā)布時(shí)間:2025/3/13 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qt show widget_Qt中show()与exec() 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.?show()默認(rèn)顯示的是非模態(tài)對(duì)話(huà)框,即此對(duì)話(huà)框出現(xiàn)后你還可以對(duì)其他窗口進(jìn)行操作,可以用setModal函數(shù)進(jìn)行設(shè)置窗口為模態(tài),即無(wú)法操作其他窗口,即被阻塞. 而exec()出現(xiàn)的只能是模態(tài)對(duì)話(huà)框.

2. show()顯示的窗口無(wú)論是否模態(tài),都立刻將操作權(quán)返回, 運(yùn)行下面代碼;而exec()則是得等待exec出的窗口關(guān)閉后再運(yùn)行下面代碼.

qt幫助文檔那個(gè)中寫(xiě)的是:Shows the dialog as a modal dialog, blocking until the user closes it. The function returns a DialogCode result., 返回的DialogCode 有QDialog::Accepted和QDialog::Rejected,可以根據(jù)返回值來(lái)進(jìn)行判斷等操作.

下面是一個(gè)小程序:

#ifndef DIALOG1_H

#define DIALOG1_H

#include

#include "ui_dialog1.h"

class dialog1 : public QDialog

{

Q_OBJECT

public:

dialog1(QWidget *parent = 0);

protected slots:

void buttonClicked();

private:

Ui::dialog1 ui;

};

#endif // DIALOG1_H

/*multiwindow.h*/#ifndef MULTIWINDOW_H

#define MULTIWINDOW_H

#include "dialog1.h"

#include

#include "ui_multiwindow.h"

class multiWindow : public QMainWindow

{

Q_OBJECT

public:

multiWindow(QWidget *parent = 0);

public slots:

void button1Clicked();

private:

Ui::multiWindowClass ui;

dialog1 *dialog;

};

#endif // MULTIWINDOW_H

/*dialog1.cpp*/#include "dialog1.h"

dialog1::dialog1(QWidget *parent)

: QDialog(parent)

{

ui.setupUi(this);

connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(buttonClicked()));

}

void dialog1::buttonClicked()

{

this->close();

}

/*multiwindow.cpp*/#include "multiwindow.h"

multiWindow::multiWindow(QWidget *parent)

: QMainWindow(parent)

{

ui.setupUi(this);

connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(button1Clicked()));

connect(ui.pushButton_3, SIGNAL(clicked()), this, SLOT(close()));

dialog = new dialog1(this);

}

void multiWindow::button1Clicked()

{

this->hide();

//dialog->show();

dialog->exec();

this->show();

}/*main.cpp*/#include "multiwindow.h"

#include

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

multiWindow w;

w.show();

return a.exec();

}

重點(diǎn)是multiwindow.cpp中的this->hide();

dialog->exec();

this->show();當(dāng)按下按鈕時(shí),先將主窗口隱藏,然后顯示exec的模態(tài)對(duì)話(huà)框,不繼續(xù)執(zhí)行下面代碼,等待對(duì)話(huà)框的操作, 按下對(duì)話(huà)框的按鈕后,對(duì)話(huà)框關(guān)閉,繼續(xù)執(zhí)行主對(duì)話(huà)框代碼,將主對(duì)話(huà)框顯示,即實(shí)現(xiàn)對(duì)話(huà)框的調(diào)用.

若將exec替換為show,則會(huì)出現(xiàn)兩個(gè)對(duì)話(huà)框并存的現(xiàn)象.

與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的qt show widget_Qt中show()与exec()的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。