accept() reject() hide()

1. accept()

用途

確認操作:表示用戶完成了對話框的交互并確認了操作(如點擊“確定”按鈕)。
關閉模態對話框:結束 exec() 的事件循環,返回 QDialog::Accepted 結果碼。

適用場景

模態對話框(通過 exec() 顯示):

void SettingsDialog::on_btnOK_clicked() {// 保存數據或應用設置accept(); // 關閉對話框,返回 Accepted
}

結果處理:

if (dialog.exec() == QDialog::Accepted) {// 處理用戶確認后的邏輯
}

行為

隱藏對話框,設置結果碼為 Accepted。
不會銷毀對話框對象(除非設置了 Qt::WA_DeleteOnClose)。

2. reject()

用途

取消操作:表示用戶取消了對話框的交互(如點擊“取消”按鈕或關閉窗口)。
關閉模態對話框:結束 exec() 的事件循環,返回 QDialog::Rejected 結果碼。

適用場景

模態對話框(通過 exec() 顯示):
void SettingsDialog::on_btnCancel_clicked() {reject(); // 關閉對話框,返回 Rejected
}

結果處理:

if (dialog.exec() == QDialog::Rejected) {// 處理用戶取消后的邏輯
}

行為

隱藏對話框,設置結果碼為 Rejected。
不會銷毀對話框對象(除非設置了 Qt::WA_DeleteOnClose)。

3. hide()

用途

隱藏窗口:僅隱藏對話框,不關閉或銷毀對象,允許后續重復顯示。
非模態對話框:適用于需要異步交互的場景,允許用戶同時操作主窗口和對話框。

適用場景

非模態對話框(通過 show() 顯示):
void SettingsDialog::on_btnOK_clicked() {// 發射信號傳遞數據emit settingsApplied(enable, mode);hide(); // 隱藏對話框,不銷毀對象
}

臨時隱藏窗口:

m_settingsDialog->hide(); // 隱藏后可通過 show() 重新顯示

行為

僅隱藏窗口,不觸發 closeEvent,不設置結果碼。
對象保持活躍狀態,可重復調用 show() 顯示。

對比總結
方法 適用場景 結果碼 窗口狀態 對象生命周期
accept() 模態對話框確認操作 Accepted 隱藏 保持存在(默認)
reject() 模態對話框取消操作 Rejected 隱藏 保持存在(默認)
hide() 非模態對話框 無 隱藏 保持存在

代碼示例

模態對話框(使用 accept()/reject())

// 模態對話框的確認和取消邏輯
void SettingsDialog::on_btnOK_clicked() {// 保存設置...accept(); // 關閉并返回 Accepted
}void SettingsDialog::on_btnCancel_clicked() {reject(); // 關閉并返回 Rejected
}// 主窗口調用
void MainWindow::onOpenSettings() {SettingsDialog dialog(this);if (dialog.exec() == QDialog::Accepted) {// 處理確認后的數據}
}

非模態對話框(使用 hide())

// 非模態對話框的確認邏輯
void SettingsDialog::on_btnOK_clicked() {// 發射信號傳遞數據emit settingsApplied(enable, mode);hide(); // 隱藏窗口,保持對象存在
}// 主窗口調用
void MainWindow::onOpenSettings() {if (!m_settingsDialog) {m_settingsDialog = new SettingsDialog(this);connect(m_settingsDialog, &SettingsDialog::settingsApplied, this, &MainWindow::onSettingsConfirmed);}m_settingsDialog->show(); // 顯示窗口
}

注意事項

對象生命周期若對話框設置為 Qt::WA_DeleteOnClose,調用 accept() 或 reject() 會銷毀對象。非模態對話框應避免設置此屬性,以重復使用實例。信號與槽
非模態對話框應通過信號傳遞數據,而非依賴返回值:
connect(m_settingsDialog, &SettingsDialog::settingsApplied, this, &MainWindow::updateSettings);

窗口關閉確認
可在 closeEvent 中統一處理關閉邏輯:

void SettingsDialog::closeEvent(QCloseEvent *event) {if (needConfirmClose) {QMessageBox::question(...); // 彈出確認對話框}event->accept(); // 或 event->ignore()
}

通過合理選擇 accept()、reject() 和 hide(),可以精確控制對話框的交互邏輯,確保用戶體驗和代碼健壯性。

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

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

相關文章

如何查看電腦IP地址和歸屬地:全面指南

在數字化時代,了解自己電腦的IP地址和歸屬地信息變得越來越重要。無論是進行網絡故障排查、遠程辦公設置,還是出于網絡安全考慮,掌握這些基本信息都很有必要。本文將詳細介紹如何查看電腦的公網IP、內網IP以及歸屬地信息,并提供常…

基于python生成taskc語言文件--時間片輪詢

目錄 前言 utf-8 chinese GB2312 utf-8 排除task.c chinese GB2312 排除task.c 運行結果 前言 建議是把能正常工作的單個功能函數放到一起(就和放while函數里的程序一樣),程序會按順序自動配置。 不同的格式已經對應給出。 utf-8 impo…

Docker手動重構Nginx鏡像,融入Lua、Redis功能

核心內容:Docker重構Nginx鏡像,融入Lua、Redis功能 文章目錄 前言一、準備工作1、說明2、下載模塊3、Nginx配置文件3、Dockerfile配置文件3、準備工作全部結束 二、構建鏡像三、基于鏡像創建容器三、lua腳本的redis功能使用總結 前言 ???? ????…

DeepSeek+Excel:解鎖辦公效率新高度

目錄 一、引言:Excel 遇上 DeepSeek二、認識 DeepSeek:大模型中的得力助手2.1 DeepSeek 的技術架構與原理2.2 DeepSeek 在辦公場景中的獨特優勢 三、DeepSeek 與 Excel 結合的準備工作3.1 獲取 DeepSeek API Key3.2 配置 Excel 環境 四、DeepSeekExcel 實…

解決Vue2------You may use special comments to disable some warnings.問題

問題截圖 解決辦法 打開項目中.eslintrc.js在rules中,添加以下代碼,并extends的 vue/standard注釋掉 space-before-function-paren: 0, semi: off, quotes : off, comma-dangle : off, vue/comment-directive: off

數據集-目標檢測系列- 牙刷 檢測數據集 toothbrush >> DataBall

數據集-目標檢測系列- 牙刷 檢測數據集 toothbrush >> DataBall DataBall 助力快速掌握數據集的信息和使用方式。 貴在堅持! * 相關項目 1)數據集可視化項目:gitcode: https://gitcode.com/DataBall/DataBall-detections-100s/over…

解決:前后端跨域請求

目錄 關于跨域請求出現的原因 同源策略 示例(跨域問題) 如何解決跨域請求 方法一:配置后端服務器以允許跨域請求(后端) 方法二:使用代理服務器(前端) 一 ,使用aja…

AI內容檢測的技術優勢與應用場景

隨著互聯網的普及和數字內容的爆發式增長,文本、圖片、音頻、視頻等多樣化內容已成為信息傳播的主要載體。然而,伴隨內容增長的是違法違規信息的泛濫,如涉黃、涉政、虛假廣告、惡意引流等,不僅威脅用戶體驗,還對平臺合…

DockerDesktop替換方案

背景 由于DockerDesktop并非開源軟件,如果在公司使用,可能就有一些限制,那是不是除了使用DockerDesktop外,就沒其它辦法了呢,現在咱們來說說替換方案。 WSL WSL是什么,可自行百度,這里引用WS…

『Linux_網絡』 基于狀態機的Connect斷線重連

客戶端會面臨服務器崩潰的情況, 我們可以試著寫一個客戶端重連的代碼, 模擬并理 解一些客戶端行為, 比如游戲客戶端等。 客戶端部分,我們本次采用狀態機的設計模式實現 下面是關于狀態機模式的介紹 狀態機模式 狀態機模式&…

5月6日日記

一點心得是 看通知要仔細認真,自己想問的問題要先看看通知或者文件中說了沒有,如果沒說再去問相關負責人。 上課的教室一定要看好,看準了再去。別像今天一樣先去了科技樓又去了工學館。 線代開課了。感覺總體還行,并不是很難。…

【算法專題十】哈希表

文章目錄 0.哈希表簡介1. 兩數之和1.1 題目1.2 思路1.3 代碼 2.判斷是否為字符重排2.1 題目2.2 思路2.3 代碼 3. leetcode.217.存在重復元素3.1 題目3.2 思路3.3 代碼 4. leetcode.219.存在重復的元素Ⅱ4.1 題目4.2 思路4.3 代碼 5. leetcode.49.字母異位詞分組5.1 題目5.2 思路…

【前綴和】矩陣區域和

文章目錄 1314. 矩陣區域和解題思路1314. 矩陣區域和 1314. 矩陣區域和 ? 給你一個 m x n 的矩陣 mat 和一個整數 k ,請你返回一個矩陣 answer ,其中每個 answer[i][j] 是所有滿足下述條件的元素 mat[r][c] 的和: i - k <= r <= i + k, j - k <= c <= j + k …

MyBatis的SQL映射文件中,`#`和`$`符號的區別

在MyBatis的SQL映射文件中,#和$符號用于處理SQL語句中的參數替換,但它們的工作方式和使用場景有所不同。 #{} 符號 預編譯參數:#{} 被用來作為預編譯SQL語句的占位符。這意味著MyBatis會將你傳入的參數設置為PreparedStatement的參數,從而防止SQL注入攻擊,并允許MyBatis對…

Linux中為某個進程臨時指定tmp目錄

起因&#xff1a; 在linux下編譯k8s&#xff0c;由于編譯的中間文件太多而系統的/tmp分區設置太小&#xff0c;導致編譯失敗&#xff0c;但自己不想或不能更改/tmp分區大小&#xff0c;所以只能通過其他方式解決。 現象&#xff1a; tmp分區大小&#xff1a; 解決方法&#x…

Tomcat中Web應用程序停止時為了防止內存泄漏,JDBC驅動程序被強制取消注冊出現原因

1.問題描述 本地Windows環境開發的Springboot項目同樣的mysql版本&#xff0c;jdk版本&#xff0c;tomcat版本&#xff0c;本地運行沒有任何問題&#xff0c;發布到阿里云服務器上時報以下問題&#xff1a; 06-May-2025 20:06:12.842 警告 [main] org.apache.catalina.loader…

主流國產大模型(以華為盤古大模型和騰訊混元大模型為例)API調用接口的具體參數和使用方法,包括Python和C++的示例代碼

以下是主流國產大模型&#xff08;以華為盤古大模型和騰訊混元大模型為例&#xff09;API調用接口的具體參數和使用方法&#xff0c;包括Python和C的示例代碼。 華為盤古大模型 API參數&#xff1a; - model&#xff1a;模型名稱&#xff0c;如pangu-nlp-large。 - messages&…

高效調用京東 API 實戰:商品詳情頁實時數據采集接口開發指南?

在當今數字化商業環境中&#xff0c;電商數據的實時獲取與分析對于企業的決策制定和市場競爭力提升至關重要。京東作為國內領先的電商平臺&#xff0c;提供了豐富的 API 接口&#xff0c;允許開發者高效地獲取商品詳情頁的實時數據。本文將詳細介紹如何通過實戰開發&#xff0c…

MFC自定義控件開發與使用指南

MFC自定義控件開發與使用指南 自定義控件、雙緩沖 1. 概述 MFC(Microsoft Foundation Classes)框架提供了豐富的內置控件,但在實際開發中,我們常常需要創建自定義控件來滿足特定的界面需求。本文將詳細介紹如何在MFC中開發自定義控件,并以CCustomTextControl為例,展示自…

第100+40步 ChatGPT學習:R語言實現多輪建模

回顧一下什么叫多輪建模&#xff1a; 要綜合判斷一個模型好不好&#xff0c;一次隨機抽樣是不行的&#xff0c;得多次抽樣建模&#xff0c;看看整體的性能如何才行&#xff08;特別是對于這種小訓練集&#xff09;。 所以我的思路是&#xff0c;隨機抽取訓練集和驗證集2000次…