我正在用PySide和python2.7编写一个程序。在
class SystemTrayIcon(QtGui.QSystemTrayIcon):
def __init__(self, parent=None):
QtGui.QSystemTrayIcon.__init__(self, parent)
self.setIcon(QtGui.QIcon("myIcon.ico"))
self.iconMenu = QtGui.QMenu(parent)
appcalc = self.iconMenu.addAction("ShowWindow")
appexit = self.iconMenu.addAction("Exit")
self.setContextMenu(self.iconMenu)
self.connect(appcalc, QtCore.SIGNAL('triggered()'),self.appCalc)
self.connect(appexit,QtCore.SIGNAL('triggered()'),self.appExit)
self.show()
此代码显示一个带有图标菜单的工作任务栏图标。现在,当我点击“显示窗口”时,我想加载一个小工具/窗口停靠在任务栏的同一个图标位置。在
如果我使用几何图形,这将永远不起作用,因为有些人有任务栏在顶部,或在屏幕的一侧。在
如何使用PySide将窗口/小部件停靠到任务栏?在
谢谢。在
您应该能够使用QDesktopWidget.availableGeometry()和QDesktopWidget.screenGeometry()的组合来计算任务栏的大小及其方向:
如您所见,如果}小于屏幕值,则任务栏位于底部或右侧(如果以上都不是真的,则没有任务栏)。在
x()
或y()
为非零值,则任务栏位于顶部或左侧;否则,如果width()
或{有了它,就可以使用QSystemTrayIcon.geometry()计算窗口相对于任务栏的位置。在
PS:
一些窗口管理器有一个边距的概念,即窗口在初始位置或最大化时不能放置。此边距通常设置为一个或两个像素,以便鼠标始终可以访问桌面的边缘。在
因此,根据目标平台的不同,在计算任务栏大小和方向时,可能需要考虑到这一点。在
相关问题 更多 >
编程相关推荐