我正在使用
PyQT4
为潜在客户创建示例应用程序。我正在寻找某种方法来在特定小部件周围放置边框。请给我一些寻找的指示。
更新了:
class CentralWidget(QtGui.QWidget):
def __init__(self, mainWindow):
super(CentralWidget, self).__init__()
self.create(mainWindow)
上面的代码定义了小部件。
根据样式表文档,QWidget 不支持 border 属性(但自从这个答案最初于 2011 年发布以来,它似乎已经发生了变化)。
如果您的小部件是其他小部件的容器,那么您应该使用 QFrame,因为它将允许您调用
setFrameStyle
和 setLineWidth
。它比调用 setStyleSheet
更可取,因为样式表将使所有子部件继承 border 属性。
这是一个完整的例子:
from PyQt4 import QtGui,QtCore
class CentralWidget(QtGui.QFrame):
def __init__(self, *args):
super(CentralWidget, self).__init__(*args)
# use for a non-contaner widget
self.setStyleSheet("background-color: rgb(255,0,0); margin:5px; border:1px solid rgb(0, 255, 0); ")
# use for a container widget
self.setFrameStyle(QFrame.StyledPanel | QFrame.Plain)
self.setLineWidth(1)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
mw = QtGui.QMainWindow()
w = CentralWidget(mw)
mw.setCentralWidget(w)
mw.show()
w.show()
app.exec_()
你可以像这样使用setFramStyle
self.setFrameStyle(QFrame.StyledPanel | QFrame.Plain)
self.setLineWidth(1)
欲了解更多信息,请查看以下链接 https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/QFrame.html