PyQt 如何防止将鼠标悬停在 QMenu 上以清除 Qstatusbar?
PyQt How can I prevent hovering over a QMenu from clearing the Qstatusbar?
我正在使用 QStatusBar
打印列表中有多少项目的信息。
这很好用,但是当我将鼠标悬停在任何 QMenu
图标上时,它会清除 QStatus 中的所有数据,将其留空。
我在 windows 工作,我相信这是我需要断开连接的本地东西,它不断尝试用新信息更新状态栏,因为我没有遇到这个问题而 运行 我的 window 来自 Maya。
任何关于如何解决这个问题的想法都很棒!
我不想创建一个新的小部件来保存这些信息。
有多种方法可以
最简单的方法是将 QLabel
添加到状态栏,将其 stretch
设置为非零值并改为更改标签的文本。
self.status_label = QtGui.QLabel()
self.ui.statusbar.addPermanentWidget(self.status_label, 100)
self.status_label.setText('wow such label')
另一种方法是通过子类化或猴子修补在 QStatusBar 上安装事件过滤器。
后者的例子:
class MainWindow(QMainWindow):
def __init__(self):
...
self.statusBar().eventFilter = self.event_filter
self.installEventFilter(self.statusBar())
...
@staticmethod
def event_filter(_, event):
if event.type() == QtCore.QEvent.StatusTip:
return True
return False
我正在使用 QStatusBar
打印列表中有多少项目的信息。
这很好用,但是当我将鼠标悬停在任何 QMenu
图标上时,它会清除 QStatus 中的所有数据,将其留空。
我在 windows 工作,我相信这是我需要断开连接的本地东西,它不断尝试用新信息更新状态栏,因为我没有遇到这个问题而 运行 我的 window 来自 Maya。
任何关于如何解决这个问题的想法都很棒! 我不想创建一个新的小部件来保存这些信息。
有多种方法可以
最简单的方法是将 QLabel
添加到状态栏,将其 stretch
设置为非零值并改为更改标签的文本。
self.status_label = QtGui.QLabel()
self.ui.statusbar.addPermanentWidget(self.status_label, 100)
self.status_label.setText('wow such label')
另一种方法是通过子类化或猴子修补在 QStatusBar 上安装事件过滤器。 后者的例子:
class MainWindow(QMainWindow):
def __init__(self):
...
self.statusBar().eventFilter = self.event_filter
self.installEventFilter(self.statusBar())
...
@staticmethod
def event_filter(_, event):
if event.type() == QtCore.QEvent.StatusTip:
return True
return False