我是PyQt的初學者。我試圖創建一個簡單的應用程序來嘗試一些工具包的許多功能。我的問題是,如何隱藏任務欄中的應用程序圖標? 我不希望用戶能夠在任務欄中看到圖標,並使用此圖標將其最小化。有沒有我可以用來實現這一目標的窗口標誌?從任務欄隱藏PyQt應用程序
9
A
回答
0
從this thread改編:
import sys
from PyQt4.QtGui import *
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = QWidget()
mainWindow = QMainWindow(widget)
mainWindow.show()
sys.exit(app.exec_())
0
我不會建議試圖隱藏應用程序的任務欄存在,特別是如果應用程序可見。
QWidget *mainWindow = new QWidget(0, Qt::CustomizeWindowHint
| Qt::WindowTitleHint | Qt::WindowSystemMenuHint
| Qt::WindowCloseButtonHint | Qt::WindowMaximizeButtonHint);
如果你不想最大化標誌,你可以離開:如果您只是想防止從任務欄最小化,那麼你可以通過下面的窗口標誌像這樣創建頂級窗口部件,實現這一目標那一個也不在列表中。
Qt可以使用的各種窗口標誌有記錄here (Qt::WindowFlags)。
5
這應該做的伎倆:
myApp.setWindowFlags(QtCore.Qt.Tool)
1
這驅使我堅果天。完整的應用程序代碼在下面實現
鍵位:
- 覆蓋的closeEvent(),使其能夠做任何的只是隱藏窗口 或真退出
- 創建用戶的一些設施,以選擇隱藏或 退出行爲
- 在實例化時不顯示()主窗口,只是exec_()應用程序
import sys from PyQt4.QtGui import QAction, QApplication, QFrame, QIcon, \ QMainWindow, QMenu, QSystemTrayIcon from PyQt4.QtCore import SIGNAL class MyApp(QMainWindow): def __init__(self, parent, title): super(QMainWindow, self).__init__(parent) self.exitOnClose = False exit = QAction(QIcon(), "Exit", self) self.connect(exit, SIGNAL("triggered()"), self.exitEvent) self.trayIcon = QSystemTrayIcon(QIcon(), self) menu = QMenu(self) menu.addAction(exit) self.trayIcon.setContextMenu(menu) self.connect(self.trayIcon, \ SIGNAL("activated(QSystemTrayIcon::ActivationReason)"), \ self.trayIconActivated) self.trayIcon.show() self.trayIcon.showMessage("MyApp is running!", "Click to open window\nRight click for menu") def trayIconActivated(self, reason): if reason == QSystemTrayIcon.Context: self.trayIcon.contextMenu().show() elif reason == QSystemTrayIcon.Trigger: self.show() self.raise_() def closeEvent(self, event): if self.exitOnClose: self.trayIcon.hide() del self.trayIcon event.accept() else: self.hide() event.setAccepted(True) event.ignore() def exitEvent(self): self.exitOnClose = True self.close() if __name__ == "__main__": app = QApplication(sys.argv) myapp = MyApp(None, "My System Tray App") app.exec_()
0
如果你是在Ubuntu的使用Unity,想隱藏在左手側的啓動應用程序的圖標,你可能需要Qt.SplashScreen
。這對我有用,但我不記得我是否還需要Qt.Tool
,這在Windows上就足夠了。對於SplashScreen嘗試,您可能不得不重新實現調整大小的功能,因爲它會禁用QStatusBar(具有SizeGrip)的此功能。
Here是試用窗口標誌的小例子。
相關問題
- 1. 從任務欄隱藏應用程序
- 2. 如何從任務欄(XE4)隱藏firemonkey應用程序按鈕?
- 3. 如何從任務欄隱藏Flex AIR應用程序?
- 4. 從任務欄/碼頭移除/隱藏Java應用程序
- 5. Application.MainFormOnTaskbar:= False;不從任務欄中隱藏應用程序
- 6. 從任務欄隱藏外部應用程序
- 7. 如何在任務欄上隱藏應用程序?
- 8. 隱藏其他應用程序的任務欄按鈕
- 9. 在WinForms應用程序中隱藏任務欄
- 10. 隱藏/顯示任務欄從Windows應用程序中使用C#
- 11. 在Delphi中隱藏應用程序從任務欄不起作用
- 12. 在後臺運行Python程序 - 從任務欄隱藏
- 13. NotifyIcon從任務欄隱藏應用程序。如何避免這種情況?
- 14. 隱藏屏幕上的應用程序,但不能從任務欄
- 15. Citrix XenApp隱藏任務欄
- 16. 從任務欄隱藏窗體2
- 17. 從任務欄隱藏窗口
- 18. 隱藏的WinForms從任務欄
- 19. 從任務管理器隱藏自定義應用程序
- 20. 如何從任務切換器隱藏Android應用程序
- 21. iPhone應用程序 - 隱藏狀態欄
- 22. Windows Phone 7隱藏應用程序欄
- 23. 使用c隱藏任務欄#
- 24. 如何在Windows任務欄中隱藏我的應用程序的表單?
- 25. 如何在Windows 7中隱藏任務欄中的應用程序?
- 26. 訪問應用程序,帶窗體的隱藏應用程序窗口任務欄圖標
- 27. 從iPhone應用程序隱藏狀態欄
- 28. 從任務管理器隱藏進程
- 29. C#隱藏時鐘和任務欄
- 30. 刪除/ 100%隱藏WinXP任務欄
的可能重複[PyQt4的最小化到托盤(http://stackoverflow.com/questions/758256/pyqt4-minimize-to-tray) – katrielalex 2010-10-28 16:52:15
@katrielalex:我認爲他意味着任務欄圖標,而不是托盤圖標。 – user225312 2010-10-28 17:03:26
@PulpFiction:是; 「最小化托盤」的方式是隱藏任務欄圖標並製作托盤圖標。 – katrielalex 2010-10-28 19:39:49