【发布时间】:2018-11-23 12:51:28
【问题描述】:
好吧,我现在感觉很愚蠢...我有一个 QTableWidget,当它有焦点时,我想更改样式表,使其成为边框“突出显示”。我可以简单地通过子类化小部件的 focusInEvent 来做到这一点,但是如果我调用 setStyleSheet() 它会覆盖我之前所做的所有样式。以清洁的名义,我试图找到仅更改边框颜色而不覆盖其他样式的最佳方法。
作为说明,我正在尝试为所有属性找到执行此操作的最佳方法。在这种情况下,我需要边框颜色,但我想我将来也想更改其他内容。
PyQt4 中的简单示例:
class MyTableWidget(QtGui.QTableWidget):
def __init__(self):
super(MyTableWidget, self).__init__()
self.style = "QTableView {background: red; selection-background-color: green; border: 1px solid gray}" # beautiful, I know...
self.setStyleSheet(self.style)
def focusInEvent(self, event):
super(MyTableWidget, self).focusInEvent(event)
self.setStyleSheet("border-color: blue")
def focusOutEvent(self, event):
super(MyTableWidget, self).focusOutEvent(event)
self.setStyleSheet(self.style)
【问题讨论】:
标签: qt pyqt4 qstylesheet