簡體   English   中英

從系統任務欄應用程序菜單中打開QDialog

[英]Open QDialog from system tray application menu

我正在嘗試從系統任務欄菜單(QtGui.QMenu)中的選項打開QDialog。 但是我的原始類'Mensageiro'是從QtGui.QSystemTrayIcon派生的,因此在創建QDialog實例時出現異常:

TypeError: 'PySide.QtGui.QDialog' called with wrong argument types:
   PySide.QtGui.QDialog(Mensageiro)
Supported signatures:
   PySide.QtGui.QDialog(PySide.QtGui.QWidget = None, PySide.QtCore.Qt.WindowFlags = 0)

我該怎么辦才能打開對話框? 我不希望自己沒有父母。

該解決方案實際上非常簡單。 甚至系統任務欄應用程序也需要QWidget作為其父項。 父窗口小部件保持隱藏。 因此,我將QDialog創建為同一父小部件的子級:

self.dialog = dialogos.DialogExemplo(self.parent)

當我使用“退出”選項關閉托盤應用程序時,將執行以下代碼:

 self.application.setQuitOnLastWindowClosed(True)
 # Hide the tray icon before it is destroyed
 self.hide()
 # Close the parent widget, killing all open windows.
 self.parent.close()

暫無
暫無

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

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