我是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