[英]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.