操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    類是對話窗口的基類。

    對話窗口是一個頂層窗口,主要用于與用戶進行簡短交互,如果設置了父窗口,其顯示的位置會在父窗口的中心。

    2.4.1 模態對話框

    模態對話框可以在相同的應用程序中阻止對其他可見窗口的輸入。

    當應用程序的模態對話框打開時,用戶必須完成與對話框的交互,并在訪問應用程序的任何其他窗口之前關閉它。

    2.4.1.1 模態對話框的兩種方式2.4.1.2 顯示模態對話框2.4.2 非模態對話框

    非模態對話框是獨立于同一應用程序中的其他窗口運行的對話框。在文字處理器中查找并替換對話框就是典型的非模態對話框。

    非模態對話框使用show()顯示,它立即將控制權返回給調用者。

    如果在隱藏對話框后再調用show()函數,對話框將顯示在原來的位置。

    2.4.3 模態對話框示例

    新建GUI項目,類名,基類選擇。

    在生成的ui文件中添加如下控件

    main.cpp

    #include 
    #include 
    #include 
    #include "modelwidget.h"
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        ModelWidget w;
        w.show();
        //非模態對話框
        QDialog modelLessDlg;
        modelLessDlg.setWindowTitle("非模態對話框");
        modelLessDlg.show();
        modelLessDlg.resize(200, 100);
        qDebug() << "顯示完非模態對話框后,不需要等用戶操作就會立馬執行我";
        return a.exec();
    }
    

    .h

    class ModelWidget : public QWidget
    {
        Q_OBJECT
    public:
        explicit ModelWidget(QWidget *parent = 0);
        ~ModelWidget();
    private slots:
        void on_btnWindow_clicked();
        void on_btnApp_clicked();
        void on_btnCustom_clicked();
    private:
        Ui::ModelWidget *ui;
    };
    

    .cpp

    #include 
    #include 
    #include "modelwidget.h"
    #include "ui_modelwidget.h"
    #include "customdialog.h"
    
    ModelWidget::ModelWidget(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::ModelWidget)
    {
        ui->setupUi(this);
    }
    ModelWidget::~ModelWidget()
    {
        delete ui;
    }
    //彈出窗口模態對話框
    void ModelWidget::on_btnWindow_clicked()
    {
        QDialog* dlg = new QDialog(this);
        dlg->setAttribute(Qt::WA_DeleteOnClose);//設置對話框關閉后,自動銷毀
        dlg->setWindowModality(Qt::WindowModal);
        dlg->show();
        qDebug() << "雖然顯示模態對話框,但我不需要等用戶操作完就會立馬執行";
    }
    //彈出應用模態對話框
    void ModelWidget::on_btnApp_clicked()
    {
        QDialog* dlg = new QDialog(this);
        dlg->setAttribute(Qt::WA_DeleteOnClose);//設置對話框關閉后,自動銷毀
        dlg->setWindowModality(Qt::ApplicationModal);//或者可以使用setModel(true)
        dlg->show();
        qDebug() << "雖然顯示模態對話框,但我也不需要等用戶操作完就會立馬執行";
    }
    //自定義對話框
    void ModelWidget::on_btnCustom_clicked()
    {
        CustomDialog* dlg = new CustomDialog(this);
        dlg->setAttribute(Qt::WA_DeleteOnClose);//設置對話框關閉后,自動銷毀
        int ret = dlg->exec();
        if (ret == QDialog::Accepted)
        {
            ui->lineEdit->setText("你點擊了OK按鈕");
        }
        else if (ret == QDialog::Rejected)
        {
            ui->lineEdit->setText("你點擊了Cancle按鈕");
        }
    }
    

    再添加一個自定義對話框類

    右鍵點擊項目=》添加新文件=》QT=》Qt設計師界面類=》 =》下一步=》類名=》完成

    在ui界面,拖入兩個按鈕,點擊編輯信號槽按鈕(快捷鍵F4),如下圖

    鼠標點擊按鈕,按鈕變紅,拖動鼠標到ui界面上,并彈出信號槽編輯對話框,選擇信號和槽模態對話框是什么時候實例的對話框,同理,編輯按鈕,最后變成下圖的樣子??梢渣c擊信號槽編輯按鈕左側的編輯窗口按鈕(F3鍵),回到編輯窗口模式。

    .h

    #ifndef CUSTOMDIALOG_H
    #define CUSTOMDIALOG_H
    
    #include 
    
    namespace Ui {
    class CustomDialog;
    }
    class CustomDialog : public QDialog
    {
        Q_OBJECT
    public:
        explicit CustomDialog(QWidget *parent = 0);
        ~CustomDialog();
    private:
        Ui::CustomDialog *ui;
    };
    #endif // CUSTOMDIALOG_H
    

    .cpp

    #include "customdialog.h"
    #include "ui_customdialog.h"
    
    CustomDialog::CustomDialog(QWidget *parent) :
        QDialog(parent),
        ui(new Ui::CustomDialog)
    {
        ui->setupUi(this);
    }
    CustomDialog::~CustomDialog()
    {
        delete ui;
    }
    

    編譯并運行程序。

    1.點擊彈出窗口模態對話框,那么你無法點擊它的父窗口,但可以點擊非模態對話框。

    2.關閉窗口模態對話框,那么其他窗口就都可以點擊了。

    3.打開應用模態對話框,那么所有的其他窗口都無法再點擊。

    4.關閉應用模態對話框模態對話框是什么時候實例的對話框,打開自定義對話框,分別點擊OK,和關閉按鈕,查看的內容。

    好的,關于模態對話框的內容我們就講到這里,如果你想第一時間看到小豆君的技術分享,就趕快關注吧。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有