pyqt - 如何去掉状态栏中小部件的边框?
我正在使用QLabel小部件在状态栏中显示错误信息。用下面的代码,这个功能运行得很好;
self.statusbar = self.statusBar()
label = QtGui.QLabel("this is a test error message")
stylesheet = """
QLabel {
font-weight: bold;
color: #FF0000;
}
"""
label.setStyleSheet(stylesheet)
self.statusbar.addWidget(label)
唯一的问题是,这些小部件周围有一个边框,我不知道怎么去掉。虽然从功能上来说,这个边框不影响信息的显示,但看起来确实很难看,我想把它去掉。我搞不清楚这个边框是从哪里来的,是状态栏的问题还是小部件的问题。我尝试过修改状态栏和标签的样式表,添加“border: 0px”,但没有效果。我还尝试过把标签的框架设置为label.setFrameShape(QtGui.QFrame.NoFrame)
,但也没有用。
有没有人知道我该怎么去掉这个边框?
2 个回答
0
试试用 self.statusbar.showMessage('这是一个测试错误信息')
,因为 QStatusBar 不是专门用来显示标签的。如果你需要更多的灵活性,可以考虑创建一个 QStatusBar 的子类,并修改它的 paintEvent 函数来专门处理标签。无论哪种方法,维护起来都比为每个想要放上去的标签设置样式表要简单得多,不过具体情况可能会有所不同。
想了解更多信息,可以查看 QStatusBar 的手册页面
2
你可以通过样式表来实现这个。你可能有一行代码像这样:
Application app(argc, argv);
在这行代码下面,添加一行像这样:
app.setStyleSheet("QStatusBar::item { border: 0px solid black }; ");
这样那些烦人的框框就会消失了。