【Qt】對話框

文章目錄

  • 1 :peach:對話框介紹:peach:
  • 2 :peach:對話框的分類:peach:
    • 2.1 :apple:模態對話框:apple:
    • 2.2 :apple:非模態對話框:apple:
    • 2.3 :apple:混合屬性對話框:apple:
  • 3 :peach:Qt 內置對話框:peach:
    • 3.1 :apple:消息對話框 QMessageBox:apple:


1 🍑對話框介紹🍑

對話框是 GUI 程序中不可或缺的組成部分。?些不適合在主窗?實現的功能組件可以設置在對話框中。對話框通常是?個頂層窗?,出現在程序最上層,?于實現短期任務或者簡潔的??交互。Qt常?的內置對話框有:QFiledialog(?件對話框)、QColorDialog(顏?對話框)、QFontDialog(字體對話框)、QInputDialog (輸?對話框)和 QMessageBox(消息框) 。


2 🍑對話框的分類🍑

對話框分為 模態對話框非模態 對話框。

2.1 🍎模態對話框🍎

模態對話框指的是:顯?后?法與?窗?進?交互,是?種阻塞式的對話框。使? QDialog::exec() 函數 調?。模態對話框適?于必須依賴??選擇的場合,?如消息顯?,?件選擇,打印設置等。

代碼示例:
在這里插入圖片描述
驗證:
在這里插入圖片描述
此時如果我們在未關閉該對話框的話就不能夠去點擊父窗口相關的控件了。

2.2 🍎非模態對話框🍎

?模態對話框顯?后獨?存在,可以同時與?窗?進?交互,是?種非阻塞式對話框,使?QDialog::show()函數調?。?模態對話框?般在堆上創建,這是因為如果創建在棧上時,彈出的?模態對話框就會?閃?過。同時還需要設置 Qt:WA_DeleteOnClose 屬性,?的是:當創建多個?模態對話框時(如打開了多個?模態窗?),為了避免內存泄漏要設置此屬性。?模態對話框適?于特殊功能設置的場合,?如查找操作,屬性設置等。

代碼示例:
在這里插入圖片描述

驗證:
在這里插入圖片描述
此時在關閉對話框前我們可以還打開很多個對話框。代碼中我們還設置了Qt:WA_DeleteOnClose屬性來防止內存泄漏,大家此時可能會有疑問,我們不是將對話框加入到了MainWindow的對象樹里面去了嗎?MainWindow銷毀時這些對話框不就會自動銷毀嗎?按道理這樣是沒錯,但是在MainWindow未退出前,如果創建了非常多的對話框,此時可能會造成大量空間浪費,所以使用Qt:WA_DeleteOnClose屬性后當我們點擊對話框右上角的X后就會被自動回收。

2.3 🍎混合屬性對話框🍎

混合屬性對話框同時具有模態對話框和?模態對話框的屬性,對話框的?成和銷毀具有?模態對話框屬性,功能上具有模態對話框的屬性。使? QDialog::setModal() 函數 可以創建混合特性的對話框。通常,創建對話框時需要指定對話框的?組件。

代碼示例:
在這里插入圖片描述
效果就跟模態對話框一致。


3 🍑Qt 內置對話框🍑

Qt 提供了多種可復?的對話框類型,即 Qt 標準對話框。Qt 標準對話框全部繼承于 QDialog 類。常?標準對話框如下:

在這里插入圖片描述

3.1 🍎消息對話框 QMessageBox🍎

消息對話框是應?程序中最常?的界?元素。消息對話框主要?于為??提?重要信息,強制??進?選擇操作。QMessageBox類 中定義了靜態成員函數,可以直接調?創建不同?格的消息對話框,其中包括:
在這里插入圖片描述

我這里就只演示Critical風格的消息對話框,其他的也同理:
代碼示例:
在這里插入圖片描述
結果驗證:
在這里插入圖片描述
除了使用上面的方式外,QMessageBox中還內置了一些靜態的成員函數:
在這里插入圖片描述

使用這些函數我們可以更加方便的創建一些簡單的消息對話框,比如上面的代碼我們還可以這樣寫:

QMessageBox::critical(this,"消息對話框","警告、警告!!!",QMessageBox::No,QMessageBox::Close);

同樣的也能夠完成上述的工作。

但是如果我們想要將自定義的按鈕添加到消息對話框里面應該怎么辦呢?我們刻意使用addButton來進行添加:
在這里插入圖片描述
結果驗證:
在這里插入圖片描述
在一些更加復雜的業務處理中我們還可以將該按鈕添加一個槽函數使用connect連接即可。

那假如我們想要知道用戶點擊的是哪一個按鈕呢?
其實exec函數(注意show函數是沒有返回值的)的返回值就可以拿到:

    QPushButton* button=new QPushButton(this);button->setText("kill all");message->addButton(button,QMessageBox::AcceptRole);int t=message->exec();if(t == QMessageBox::No)qDebug()<<"No";else if(t == QMessageBox::Yes)qDebug()<<"Yes";elseqDebug()<<"Other";

在這里插入圖片描述

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

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

相關文章

如何配置Oracle的ACL權限

配置Oracle的ACL&#xff08;訪問控制列表&#xff09;權限是一個涉及多個步驟的過程。以下是一個清晰的步驟指南&#xff0c;用于配置Oracle的ACL權限&#xff1a; 1. 創建ACL 使用DBMS_NETWORK_ACL_ADMIN.CREATE_ACL過程來創建一個新的ACL。 sql BEGIN DBMS_NETWORK_ACL_…

pod 控制器介紹

一 pod 控制器相關理論介紹 1&#xff0c;Pod控制器 是什么 Pod控制器&#xff0c;又稱之為工作負載&#xff08;workload&#xff09;&#xff0c;是用于實現管理pod的中間層&#xff0c;確保pod資源符合預期的狀態&#xff0c;pod的資源出現故障時&#xff0c;會嘗試進行…

頭歌springboot初體驗

頭歌(HeadGo)平臺上的Spring Boot初體驗課程為學習者提供了一個深入了解和實踐Spring Boot 框架的機會。以下是對頭歌Spring Boot初體驗課程的清晰歸納和介紹: 1. 課程概述 目標:通過本課程,學習者將能夠掌握Spring Boot的基礎知識、核心特性和實踐應用。 內容:課程內容…

[數據集][目標檢測]水下管道泄漏破損檢測數據集VOC+YOLO格式2069張2類別

數據集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路徑的txt文件&#xff0c;僅僅包含jpg圖片以及對應的VOC格式xml文件和yolo格式txt文件) 圖片數量(jpg文件個數)&#xff1a;2069 標注數量(xml文件個數)&#xff1a;2069 標注數量(txt文件個數)&#xff1a;2069 標注…

【2024年5月備考新增】】 考前篇(30)《必備資料(13) - 論文串講-干系人管理》

過程定義輸入工具技術輸出實際應用識別干系人識別能影響項目決策、 活動或結果的個人、 群體或組織,以及被 項目決策、活動或結 果所影響的個人、群 體或組織,并分析和 記錄他們的相關信息 的過程1、項目章程2、立項管理文件 3、項目管理計劃.溝通管理計劃.干系人參與計劃 4、…

時間序列的譜分解pt.2

16.dvi (berkeley.edu)https://www.stat.berkeley.edu/~bartlett/courses/153-fall2010/lectures/16.pdfpt1 時間序列的譜分解-CSDN博客

理解不同層的表示(layer representations)

在機器學習和深度學習領域&#xff0c;特別是在處理音頻和自然語言處理&#xff08;NLP&#xff09;任務時&#xff0c;"層的表示"&#xff08;layer representations&#xff09;通常是指神經網絡不同層在處理輸入數據時生成的特征或嵌入。這些表示捕獲了輸入數據的…

PostgreSQL的視圖pg_locks

PostgreSQL的視圖pg_locks pg_locks 是 PostgreSQL 提供的系統視圖&#xff0c;用于顯示當前數據庫中的鎖信息。通過查詢這個視圖&#xff0c;數據庫管理員可以監控鎖的使用情況&#xff0c;識別潛在的鎖爭用和死鎖問題&#xff0c;并優化數據庫性能。 pg_locks 視圖字段說明…

新書推薦:1.2 動態鏈接庫與API

本節必須掌握的知識點&#xff1a; kernel32.dll user32.dll gdi32.dll ■動態鏈接庫 最早的軟件開發過程&#xff0c;所有的功能實現都是有程序員獨立完成的。在這個過程中&#xff0c;我們很快就會發現&#xff0c;有很多常用的功能模塊是可以重復利用的&#xff0c;我們將…

【2024年5月備考新增】】 考前篇(29)《必備資料(12) - 論文串講-溝通管理》

過程定義輸入工具技術輸出實際應用規劃 溝通 管理根據干系人的信 息需求和要求及 組織的可用資產 情況,制訂合適 的項目溝通方式 和計劃的過程1、項目章程2、項目管理計劃.資源管理計劃.干系人參與計劃 3、項目文件.需求文件.干系人登記冊4、事業環境因組織過程資1、專家判斷2…

Nginx服務的主配置文件及配置舉例

Nginx服務的主配置文件 安裝Nginx認識Nginx服務全局配置I/O 事件配置HTTP 配置日志格式設定 訪問狀態統計配置查看Nginx已安裝模塊修改 nginx.conf 配置文件重啟服務&#xff0c;訪問測試 基于授權的訪問控制準備用戶密碼認證文件修改 nginx.conf 配置文件重啟服務&#xff0c;…

java向上轉型

介紹 代碼 父類 package b;public class father_ {//father classString name"動物";int age10;public void sleep() {System.out.println("睡");}public void run() {System.out.println("跑");}public void eat() {System.out.println("…

ISCC2024之Misc方向WP

目錄 FunZip Magic_Keyboard Number_is_the_key RSA_KU 成語學習 鋼鐵俠在解密 工業互聯網模擬仿真數據分析 精裝四合一 時間刺客 有人讓我給你帶個話 FunZip 題目給了一個txt&#xff0c;內容如下 一眼丁真&#xff0c;base隱寫&#xff0c;使用工具即可得到flag Fl…

聯邦學習的簡要概述

聯邦學習的簡要概述 聯邦學習&#xff08;Federated Learning, FL&#xff09;是一種分布式機器學習方法&#xff0c;旨在保護數據隱私的同時&#xff0c;利用多方數據進行模型訓練。以下是對聯邦學習的詳細介紹&#xff0c;包括其基本概念、工作流程、優勢和挑戰&#xff0c;…

常見的 MySQL 優化方法

常見的 MySQL 優化方法 常見的 MySQL 優化方法選擇最合適的字段屬性盡量把字段設置為 NOT NULL使用連接&#xff08;JOIN&#xff09;來代替子查詢&#xff08;Sub-Queries&#xff09;使用聯合&#xff08;UNION&#xff09;來代替手動創建的臨時表事務鎖定表使用外鍵使用索引…

在Centos上為Tesla T4顯卡安裝NVIDIA驅動以及cuda和cudnn

前期準備&#xff1a; 升級gcc編譯環境&#xff1a; 查看gcc版本&#xff1a; gcc -v &#xff08;centos默認好像是4.8.5版本&#xff09; 升級gcc&#xff1a; yum install centos-release-scl yum install devtoolset-9-gcc* 備份舊鏈接創建新鏈接&#xff1a;…

壓測工具sysbench

一、安裝 yum install gcc gcc-c autoconf automake make libtool bzr mysql-devel mysql libaio-devel yum remove mariadb.x86_64 mariadb-devel.x86_64 sh install-mysql.sh --installmysql --innodbbufferpoolsize2G --datadir/mysql/data --password123321 --binlogdir…

----JAVA 繼承----

引言 再java中你能創造出很多的類&#xff0c;但如果這些類中的成員再另一個類中也要使用&#xff0c;那么就要用到繼承來實現指定類中成員的使用了 那么也就可以寫出這樣的代碼 再類Cat中使用了類Animal的成員&#xff0c;這里我們稱Cat叫子類&#xff0c;Animal叫父類 概念…

Ubuntu22.04嵌入開發環境之NFS文件系統

近期我把Ubuntu18.04開發環境改成了22.04寫一上安裝過程與問題。 1.安裝NFS sudo apt install nfs-kernel-server systemctl status nfs-kernel-server systemctl emable nfs-kernel-server2.創建共享目錄 sudo mkdir /home/share/ sudo chmod 775 -R /home/share/3.配置NFS…

AIGC筆記--MoE模型的簡單實現

1--MoE模型 MoE模型全稱是混合專家模型&#xff08;Mixture of Experts, MoE&#xff09;&#xff0c;其主要將多個專家神經網絡模型組合成一個更大的模型。 MoE模型的核心組成有兩部分&#xff1a;第一部分是多個專家網絡模型&#xff0c;每個專家網絡模型往往是獨立的&#x…