嵌入式Qt 對話框及其類型 QDialog

一.對話框的概念

對話框是與用戶進行簡短交互的頂層窗口。

QDialog是Qt中所有對話框窗口的基類。

QDialog繼承與QWidfet是一種容器類型的組件。

?QDialog的意義:

QDialog作為一種專業的交互窗口而存在。

QDialog不能作為子部部件嵌入其他容器中。

QDialog是定制了窗口式樣的特殊的QWidget。

二.對話框的類型

模態對話框(QDialog::exec())

- 顯示后無法與父窗口進行交互

- 是一種阻塞式的對話框調用方式

非模式對話框(QDialog::show)

- 顯示后獨立存在可以同時與父窗口進行交互

- 是一種非阻塞式的對話框調用方式。

三.對話框程序設計

main:

#include <QtGui/QApplication>
#include <QWidget>
#include <QDialog>
#include <QDebug>
#include "Dialog.h"int main(int argc, char *argv[])
{QApplication a(argc, argv);Dialog dlg;int r = dlg.exec();if( r == QDialog::Accepted ){qDebug() << "Accepted";}else if( r == QDialog::Rejected ){qDebug() << "Rejected";}else{qDebug() << r;}return r;
}

Dialog.c

#include "Dialog.h"#include <QDebug>Dialog::Dialog(QWidget *parent) :QDialog(parent), ModalBtn(this), NormalBtn(this), MixedBtn(this)
{ModalBtn.setText("Modal Dialog");ModalBtn.move(20, 20);ModalBtn.resize(100, 30);NormalBtn.setText("Normal Dialog");NormalBtn.move(20, 70);NormalBtn.resize(100, 30);MixedBtn.setText("Mixed Dialog");MixedBtn.move(20, 120);MixedBtn.resize(100, 30);connect(&ModalBtn, SIGNAL(clicked()), this, SLOT(ModalBtn_Clicked()));connect(&NormalBtn, SIGNAL(clicked()), this, SLOT(NormalBtn_Clicked()));connect(&MixedBtn, SIGNAL(clicked()), this, SLOT(MixedBtn_Clicked()));resize(140, 170);
}void Dialog::ModalBtn_Clicked()
{qDebug() << "ModalBtn_Clicked() Begin";QDialog dialog(this);dialog.exec();  //阻塞式調用// done(Accepted);qDebug() << "ModalBtn_Clicked() End";
}void Dialog::NormalBtn_Clicked()
{qDebug() << "NormalBtn_Clicked() Begin";QDialog* dialog = new QDialog(this);dialog->setAttribute(Qt::WA_DeleteOnClose);dialog->show();// done(Rejected);qDebug() << "NormalBtn_Clicked() End";
}void Dialog::MixedBtn_Clicked()
{qDebug() << "MixedBtn_Clicked() Begin";QDialog* dialog = new QDialog(this);dialog->setAttribute(Qt::WA_DeleteOnClose);dialog->setModal(true);dialog->show();// done(100);qDebug() << "MixedBtn_Clicked() End";
}Dialog::~Dialog()
{qDebug() << "~Dialog()";
}

Dialog.h

#ifndef DIALOG_H
#define DIALOG_H#include <QtGui/QDialog>
#include <QPushButton>class Dialog : public QDialog
{Q_OBJECT
protected:QPushButton ModalBtn;QPushButton NormalBtn;QPushButton MixedBtn;
protected slots:void ModalBtn_Clicked();void NormalBtn_Clicked();void MixedBtn_Clicked();
public:Dialog(QWidget *parent = 0);~Dialog();
};#endif // DIALOG_H

Dialog::ModalBtn_Clicked()為阻塞式調用,程序會一直卡在ModalBtn_Clicked() Begin,只有將對話框關閉,程序還會繼續向下運行,ModalBtn_Clicked() End才會打印。

Dialog::NormalBtn_Clicked()為非阻塞式調用,程序會一直運行,NormalBtn_Clicked() Begin,NormalBtn_Clicked() End,會連續打印,但還是不能和其他窗口進行交互。

小結:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/718977.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718977.shtml
英文地址,請注明出處:http://en.pswp.cn/news/718977.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

反函數的理解|反函數到底“反”的是什么?什么是反函數?

理解 將 yex 函數圖像連同整個坐標系繞著 yx 旋轉 180 度&#xff0c;會變成下面的圖像 只是把圖像轉了一下&#xff0c;函數還是那個函數&#xff0c;還是 yex &#xff0c;此時橫軸變成了 y 軸&#xff0c;縱軸變成了 x 軸 根據習慣&#xff0c;一般把縱軸當作因變量、把橫軸…

如何在騰訊云輕量應用服務器上安裝Docker的詳細步驟是什么?

如何在騰訊云輕量應用服務器上安裝Docker的詳細步驟是什么&#xff1f; 登錄騰訊云輕量應用服務器&#xff1a;首先&#xff0c;需要登錄到騰訊云官方網站&#xff0c;并進入輕量應用服務器控制臺。 軟件源設置&#xff1a;在輕量應用服務器控制臺中選擇“更多”>“設置”&…

JavaScript實現的計時器效果

之前做過電商網站倒計時的效果&#xff0c;今天在倒計時的基礎上&#xff0c;把代碼修改了一下&#xff0c;改為計時器效果&#xff0c;實現了以下功能&#xff1a; 1.點擊“開始”后&#xff0c;按秒計時且“開始”文字變為“停止”&#xff1b; 2.點擊“停止”&#xff0c;計…

https【詳解】與http的區別,對稱加密,非對稱加密,證書,解析流程圖

http 和 https 的區別 http 是明文傳輸&#xff0c;敏感信息容易在傳輸過程中被劫持https http加密&#xff0c;劫持了也無法解密 https 用到的加密方式 https 同時使用了對稱加密和非對稱加密&#xff0c;之所以沒有全部使用非對稱加密&#xff0c;是因為非對稱加密的運算更加…

JavaScript:export 和 export default

文章目錄 exportexport defaultexport 和 export default都使用 在JavaScript ES6的模塊系統中&#xff0c;export 和 export default 都是用來導出模塊中對外可見的變量、函數、類或對象的語法&#xff0c;但是它們的作用和使用方式有所不同&#xff1a; export export 關鍵字…

四種垃圾回收算法

1.標記清除算法 該算法先標記&#xff0c;后清除&#xff0c;將所有需要回收的算法進行標記&#xff0c;然后清除&#xff1b;這種算法的缺點是&#xff1a;效率比較低&#xff1b;標記清除后會出現大量不連續的內存碎片&#xff0c;這些碎片太多可能會使存儲大對象會觸發GC回…

【設計模式】觀察者模式及函數式編程的替代C++

本文介紹觀察者模式以及使用函數式編程替代簡單的策略模式。 觀察者模式 觀察者模式是一種行為型設計模式&#xff0c;它定義了一種一對多的依賴關系&#xff0c;當一個對象的狀態發生改變時&#xff0c;其所有依賴者都會收到通知并自動更新。 當對象間存在一對多關系時&#…

Spring中Bean的作用域、實例化方式、生命周期、循環依賴問題

Spring中Bean的作用域、實例化方式、生命周期、循環依賴問題 一、Bean的作用域1.singleton2.prototype3.其他scope值 二、Bean的實例化方式1.通過構造方法實例化2.通過簡單工廠模式實例化3.通過factory-bean實例化4.通過FactoryBean接口實例化5.BeanFactory和FactoryBean的區別…

【大廠AI課學習筆記NO.60】(13)模型泛化性的評價

我們學習了過擬合和欠擬合&#xff0c;具體見我的文章&#xff1a;https://giszz.blog.csdn.net/article/details/136440338 那么今天&#xff0c;我們來學習模型泛化性的評價。 泛化性的問題&#xff0c;我們也討論過了&#xff0c;那么如何評價模型的泛化性呢&#xff1f; …

激光SLAM技術助力富唯智能復合機器人的應用場景無限拓展

隨著科技的不斷進步&#xff0c;智能機器人已成為現代工業、服務、醫療等多個領域的重要角色。而在這一變革中&#xff0c;激光SLAM技術發揮著至關重要的作用。特別是對于富唯智能復合機器人來說&#xff0c;激光SLAM技術不僅提升了其智能化水平&#xff0c;更使其應用場景變得…

esp3455235

在這里插入代碼片gdasgdsfgdfh dfahahdfh

【促銷定價】背后的算法技術3-數據挖掘分析

【促銷定價】背后的算法技術3-數據挖掘分析 01 整體分析1&#xff09;整體概覽2&#xff09;類別型特征概覽3&#xff09;數值型特征概覽 02 聚合分析1&#xff09;天維度2&#xff09;品維度3&#xff09;價格維度4&#xff09;數量維度 03 相關分析1&#xff09;1級品類2&…

無公網ip環境使用DS file軟件遠程訪問內網群暉NAS中儲存的文件

文章目錄 1. 群暉安裝Cpolar2. 創建TCP公網地址3. 遠程訪問群暉文件4. 固定TCP公網地址5. 固定TCP地址連接 DS file 是一個由群暉公司開發的文件管理應用程序&#xff0c;主要用于瀏覽、訪問和管理存儲在群暉NAS&#xff08;網絡附加存儲&#xff09;中的文件。這個應用程序具有…

echarts如何實現3D餅圖(環形圖)?

一、實現的效果 二、具體步驟 1.安裝依賴 npm install echarts 2.引入echarts import * as echarts from echarts; 注意&#xff1a;這里需要用到echarts-gl&#xff0c;必須單獨引入才可以 import echarts-gl; 3.echarts部分代碼 我知道這部分內容很多&#xff0c;但只要cv…

社情民意調查的內容

本文由群狼調研&#xff08;長沙社情民意調查&#xff09;出品&#xff0c;歡迎轉載&#xff0c;請注明出處。社情民意調查的內容通常包括以下幾個方面&#xff1a; 1.社會熱點問題&#xff1a;針對當前社會熱點問題進行調查&#xff0c;收集公眾對該問題的態度和看法&#xf…

羊大師揭秘羊奶與健康,美味的保健佳品

羊大師揭秘羊奶與健康&#xff0c;美味的保健佳品 羊奶確實是一種美味且健康的保健佳品&#xff0c;其獨特的營養成分和風味使其成為許多人的健康選擇。以下是一些羊奶與健康的關系&#xff1a; 營養豐富&#xff1a;羊奶含有豐富的蛋白質、脂肪、礦物質和維生素&#xff0c;…

ruoyi-nbcio-plus的Vue3前端升級組件后出現的問題(一)

更多ruoyi-nbcio功能請看演示系統 gitee源代碼地址 前后端代碼&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a; http://122.227.135.243:9666 更多nbcio-boot功能請看演示系統 gitee源代碼地址 后端代碼&#xff1a; https://gitee.com/nbach…

大模型ChatGLM-6B實現本地部署

大模型ChatGLM-6B實現本地部署 一、寫在前面&#xff1a;二、ChatGLM-6B下載&#xff1a;三、項目所需要的環境配置&#xff1a;四、項目運行&#xff1a;五、遇到的主要問題及解決 一、寫在前面&#xff1a; 1、 確保你的電腦中已安裝git&#xff0c;git lfs。 2、確保你的電…

淺析前端的堆棧原理以及深淺拷貝原理

淺析前端的堆棧原理以及深淺拷貝原理 首先來看一個案例 const obj {name:hzw,age:18 } let objName2 obj objName2.age 12 console.log(obj,objName2) // {name: hzw, age: 12} {name: hzw, age: 12}這里是不是很奇怪&#xff0c;為什么&#xff0c;為什么我改變objName2的…

Hierarchical Text-ConditionalImage Generation with CLIP Latents筆記

1 Title Hierarchical Text-Conditional Image Generation with CLIP Latents&#xff08;Aditya Ramesh、Prafulla Dhariwal、Alex Nichol、Casey Chu、Mark Chen&#xff09; 2 Conclusion Contrastive models like CLIP have been shown to learn robust representations …