pyqt - 如何从状态栏中的窗口小部件中删除边框?

时间:2011-03-10 11:41:57

标签: python border pyqt4 statusbar

我正在使用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 :(得分:2)

使用样式表执行此操作。你可能有这样一条线 应用程序应用程序(argc,argv);

在其下面,添加如下: app.setStyleSheet(“QStatusBar :: item {border:0px solid black};”);

那些讨厌的盒子将会消失。

答案 1 :(得分:0)

尝试使用self.statusbar.showMessage('this is a test error message'),因为QStatusBar不是为展示标签而设计的。如果你需要更多的浮动性,你可以考虑继承QStatusBar并将其paintEvent函数更改为特殊情况标签。这些方法中的任何一种都比为您想要的每个标签设置样式表更容易维护,但仍然像往常一样,YMMV。

了解更多信息,请查看the manual page for QStatusBar