2010-02-25 113 views
0

我需要的是非常相似的QtMessageBox.information方法,但我需要它構成我的自定義窗口。PyQt4:將QtMessageBox.information功能添加到自定義窗口中

我需要一個標籤很少的窗口,一個QtTreeViewWidget,一個QButtonGroup ...這個窗口將從主窗口調用。如果我們調用類,它實現所謂的窗口SelectionWindow,比我需要的是:從SelectionWindow

class MainWindow(QtGui.QMainWindow): 
    ... 
    def method2(self): 
     selWin = SelectionWindow() 
     tempSelectionValue = selWin.getSelection() 
     # Blocked until return from getSelection 
     self.method1(tempSelectionValue) 
     ... 

class SelectionWindow(QtGui.QMainWindow): 
    ... 
    def getSelection(self): 
     ... 
     return selectedRow 
    ... 

方法getSelection應該彈出選擇窗口,在QTreeViewWidget選擇的末端返回一行。我希望主窗口保持阻塞狀態,直到用戶在選擇窗口中選擇一行並通過按鈕確認。我希望你能明白我需要什麼。

我會感謝任何幫助!

感謝, Tiho

回答

0

我會做這樣的事情:

  • 對話窗口buttonbox - ) 連接到接受(> 事件,並拒絕()對話框本身
  • 的插槽
  • 將對話模態設置爲應用模式
  • 將對話框的exec_()方法設置爲阻止直到用戶選擇確定/取消
  • 執行exec_()方法終止後,您可以從對話窗口小部件中讀取所需的內容。

像這樣的事情應該滿足您的需要:

class SelectionWindow(QtGui.QMainWindow): 
    ... 
    def getSelection(self): 
     result = self.exec_() 
     if result: 
      # User clicked Ok - read currentRow 
      selectedRow = self.ui.myQtTreeViewWidget.currentIndex() 
     else: 
      # User clicked Cancel 
      selectedRow = None 
     return selectedRow 
    ... 
+0

redShadow,非常感謝你的回答。最後,我做了一些與您的提案非常相似的內容。 – Tiho 2010-03-09 09:33:56

相關問題