【发布时间】:2014-07-11 10:04:50
【问题描述】:
我有一个非常基本的QMainWindow 应用程序,其中包含一个menubar 和一个statusbar。当我将鼠标悬停在菜单上时,状态消息消失。更准确地说,清除状态消息。我不知道是什么导致了这种行为,但它导致了我希望是微不足道的行为的非常困难的解决方法。
这是有问题的,原因如下:
我可以通过将QLabel 小部件添加到QStatusBar 来使消息永久化,但随后我得到了尴尬的边框。我不想要边界。我知道如何删除边框的唯一方法是通过QStatusBar.setStyleSheet()。我正在为我的配色方案使用调色板而不是样式表,因此修改样式表会弄乱其他颜色。当我通过样式表进行修改时,我也无法恢复原始的statusBar QLabel 颜色。我不擅长使用样式表。
有没有办法防止菜单交互清除状态消息?如果没有,有没有办法在添加 QLabel 小部件时从状态栏中删除边框,同时保留我的调色板(可能不是通过样式表)?
#!/usr/bin/env python
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class win(QMainWindow):
def __init__(self,parent=None):
super(win,self).__init__(parent)
self.menubar = QMenuBar(self)
self.fileMenu = QMenu("File")
self.exitAction = QAction("Exit",self)
self.fileMenu.addAction(self.exitAction)
self.menubar.addMenu(self.fileMenu)
self.statusBar().showMessage("Hello")
self.connect(self.exitAction,SIGNAL("triggered()"), self.close)
if __name__ == "__main__":
app = QApplication(sys.argv)
GUI = win()
GUI.show()
app.exec_()
【问题讨论】: