2011-03-01 34 views
0

我在使用Qt和QML。Qt阻止調用以顯示對話框?

所以我想有一個阻塞調用來顯示對話框並檢索用戶輸入。該調用保證不會在當前的UI線程上。

我有我使用QML創建的QDeclarativeView對象。我可以使用show方法()顯示它。但是現在我想阻止,直到用戶點擊確定/取消,此時我將從對象中提取信息並將信息返回給調用者。

所以問題是:

  • 這是使用QT
  • 如果讓我怎麼讓當前線程塊一個合理的方式?
+0

這是錯誤的! – Vladp 2011-03-12 17:33:42

回答

1

如果你以一個QDialog的,你可以使用exec()方法來阻止,直到對話框被駁回。你可以把你的聲明視圖放到對話框中。

只要這是Qt的合理使用,它取決於您的需求。在很多情況下,用戶會更喜歡非模態對話框,他們可以在對話框打開的情況下繼續做其他事情。一個阻塞函數並不是呈現這種非模態窗口最方便的方式。通常,要做的「正確」事情就是將一個信號連接到一個處理程序,該程序在您的對話被解除時執行。