我有一个QTableWidget
,其中应用了以下样式表:
QTableWidget
{
border:2px groove #96A8A8;
border-radius:3px;
selection-background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #D7F4F7, stop: 0.4 #CEECF0,
stop: 0.6 #C5E4E8, stop: 1.0 #D7F4F7);
selection-color:black;
}
QTableWidget QHeaderView::section
{
border-bottom:0px groove #8BA6D9;
border-left:0px groove #8BA6D9;
border-right:2px groove #8BA6D9;
border-top:0px;
padding:5px;
background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #F8FCFE, stop: 0.4 #EBEEF2,
stop: 0.5 #E0E5EA, stop: 1.0 #DADEEA);
color:black;
outline:0px;
}
QTableWidget::item
{
padding:5px;
outline:0px;
}
这个CSS代码给了我想要的外观。但是,一旦我开始用TableWidgetItems
(超过15个/行)填充表格,我的表格就会丢失它的标题装饰(也就是说,标题样式将恢复为默认窗口样式)即使表样式表属性的其余部分仍然有效。
导致问题的原因是什么?
仅供参考,我也将以下属性应用于表格
mytable.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
mytable.setSelectionBehavior(QtGui.QTableWidget.SelectRows)
mytable.setSelectionMode(QtGui.QTableWidget.SingleSelection)
mytable.horizontalHeader().setStretchLastSection(True)
vheight = mytable.verticalHeader()
vheight.setDefaultSectionSize(50)
我在Windows XP SP3上使用Python 2.7.3
答案 0 :(得分:2)
我不知道造成这种行为的原因。但是,有一个工作可以让标题装饰坚持下去。您可以通过QApplication.setStyleSheet
设置应用程序的样式表,而不是为窗口小部件设置样式表。
这会将所有QTableWidgets设置为相同的样式表,作为奖励,假设您想要这种效果。如果没有,您可以根据子类化小部件子类化和设置样式表。