pyqt我如何防止悬停在qmenu上清除QSTATUSBAR



我正在使用 QStatusBar来打印列表中有多少个项目的信息。

这效果很好,但是当我悬停在任何QMenu图标上时,它会清除QSTATUS的所有数据,使其空白。

我在Windows中工作,我相信这是我需要打破连接的本机,一直试图通过新信息更新状态栏,因为我从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

相关内容

  • 没有找到相关文章

最新更新