gpt4 book ai didi

python - 编辑单元格时的pyqt5 qtablewidget单元格背景

转载 作者:行者123 更新时间:2023-12-04 08:56:48 24 4
gpt4 key购买 nike

self.grid.setStyleSheet("QTableWidget::item::selected { background-color:#F9F6F5 ; color:black;  
border: 3px solid black; }")
目前,当我选择一个项目时,我正在为我的 qtablewidget 背景使用 styleSheet,它会更改该单元格的背景
like this这就是我想要的
但是当我开始编辑时,它又回到了默认设置 like this而且我不知道应该使用哪个关键字来代替 'item::selected' 或者它是否存在

最佳答案

您可以使用后代css selector ,可用于指定作为另一个小部件的后代的小部件的样式(它可以是直接子代、“孙子代”等)。
如果项目具有字符串值,则通常使用 QLineEdit 编辑项目 View ,解决方案是使用 QTableWidget QLineEdit ,并且由于样式将是相同的,因此您还可以使用逗号连接选择器:

self.grid.setStyleSheet('''
QTableWidget::item::selected, QTableWidget QLineEdit {
background-color: #F9F6F5;
color: black;
border: 3px solid black;
}
''')
请注意,您需要后代选择器,而不是仅用于直接子级的子级选择器 ( parent > child):项目 View 的编辑器不是 View 的直接子级,因为项目 View 具有以下层次结构:
项目 View -> 视口(viewport)(可滚动内容) -> 编辑器
如果您在表格小部件上设置样式表,甚至不需要后代选择器,因为它会自动应用于作为应用 css 的小部件的子小部件的所有小部件。
如果 Qt.DisplayRole 使用其他数据类型(或者,更准确地说, Qt.EditRole ),您应该根据类型使用相对小部件:例如,如果您将值设置为整数,将使用 QSpinBox,因此选择器将为 QTableWidget QSpinBox .
除了字符串和 bool(使用 QComboBox)之外,所有其他标准编辑小部件都是 QAbstractSpinBox 的子类,因此您可以只使用该父类(在以下示例中,我假设 self.grid 是 QTableWidget):
    self.grid.setStyleSheet('''
QTableWidget::item::selected,
QLineEdit, QComboBox, QAbstractSpinBox {
...
}
''')
如果样式表设置在父级(例如,主窗口,甚至整个应用程序)上,您仍然需要后代选择器:
class MyMainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
# ...
self.setStyleSheet('''
QTableWidget::item::selected,
QTableWidget QLineEdit,
QTableWidget QComboBox,
QTableWidget QAbstractSpinBox {
...
}
''')

关于python - 编辑单元格时的pyqt5 qtablewidget单元格背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63777633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com