簡體   English   中英

一個阻塞但非模態的QDialog?

[英]A blocking but non-modal QDialog?

我有一堆圖像,我想在其上執行一些操作。 處理完每個圖像后,我的程序會彈出一個對話框,提示用戶是否要繼續下一個圖像或中止。 在此之前,他們應該有機會對圖像或參數進行一些手動更改。 無論如何,他們必須能夠訪問應用程序的窗口,同時應該阻止執行調用對話框的方法,直到關閉對話框。

我嘗試使用QMessageBox解決這個問題,但如果我通過exec()打開它,它會阻止整個應用程序,如果我使用show(),程序的執行將繼續,而不會等待用戶的反應。

有沒有一種方便的方法來阻止調用方法或函數與對話框,但允許用戶與其他窗口進行交互?

提前感謝任何提示。

您應該將要阻止的方法拆分為兩部分。 在第一部分結束時,您需要在不阻塞的情況下顯示對話框,並將對話框的“下一步”按鈕(例如)連接到必須包含舊方法的第二部分的插槽。 只有當用戶按下按鈕時才會執行此插槽。

這是在Qt中做到這一點的正確方法。 您需要更改代碼邏輯才能實現此目的。

另外,你真的需要第二個對話框嗎? 您可以在主窗口小部件中放置“下一步”按鈕。 您還可以創建另一個模式對話框,其中包含一些設置和“下一步”按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM