QTablewidget样式滚动条表头Qss样式设置

如下图所示设置Qtablewidget样式,表头颜色设置,选中列背景色设置等

QTableWidget
{
    background: #303033;
}
QTableWidget::item
{
    color:rgba(255,255,255,150);
    background: #303033;
    text-align:center;
}
QTableWidget::item:hover
{
    color:#FFFFFF;
    background: #4B4B4D;
}
QTableWidget::item:selected
{
    color:#FFFFFF;
    background: #4B4B4D;
}
QHeaderView::section,QTableCornerButton:section
{ 
    text-align:center;
    padding:3px; 
    margin:0px; 
    color:#DCDCDC; 
    border:1px solid #242424; 
    border-left-width:0px; 
    border-right-width:1px; 
    border-top-width:0px;
     border-bottom-width:1px; 
    background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #646464,stop:1 #525252);
 }
QHeaderView::section:selected
{ 
    color:#FFFFFF; 
    border:1px solid #242424; 
 }
QScrollBar:vertical{ 
    width:8px;  
    border-style:flat;
    border-radius: 4px;
    border:0px;
     background: #19191A;
} 
QScrollBar::handle:vertical{ 
    background: rgba(255,255,255,0.50);
    border-radius: 4px;
    width:8px; 
    min-height:91px; 
    border-style:flat;
}
QScrollBar::handle:vertical::hover{ 
    background: rgba(255,255,255,0.90);
    border-radius: 4px;
    width:8px; 
}
QScrollBar::handle:vertical::pressed{ 
    background: rgba(255,255,255,0.90);
    border-radius:4px;
    width:8px; 
}
QScrollBar::sub-page:vertical {
    background: #19191A;
border-style:flat;
}
QScrollBar::add-page:vertical {
   background: #19191A;
border-style:flat;
}
QScrollBar::add-line:vertical{
   background: #19191A;
}
QScrollBar::sub-line:vertical {
   background: #19191A;
}
QScrollBar:horizontal{ 
    height:8px;  
    border-style:flat;
    border-radius: 4px;
    border:0px;
background: #19191A;
} 
QScrollBar::handle:horizontal{ 
    background: rgba(255,255,255,0.50);
    border-radius: 4px;
    height:8px; 
    min-width:91px; 
    border-style:flat;
}
QScrollBar::handle:horizontal::hover{ 
    background: rgba(255,255,255,0.90);
    border-radius: 4px;
    height:8px; 
}
QScrollBar::handle:horizontal::pressed{ 
    background: rgba(255,255,255,0.90);
    border-radius:4px;
    height:8px; 
}
QScrollBar::sub-page:horizontal {
    background: #19191A;
    border-style:flat;
}
QScrollBar::add-page:horizontal {
   background: #19191A;
    border-style:flat;
}
QScrollBar::sub-line:horizontal {
   background: #19191A;
}
QScrollBar::add-line:horizontal{
   background: #19191A;
}

 

默认情况下,QTableWidget滚动条是覆盖在表格的右侧和底部的。如果你想要防止滚动条遮挡表头,可以通过设置QTableWidget的viewportMargins来实现。 以下是设置QTableWidget的viewportMargins来避免滚动条遮挡表头的示例代码: ```python # 设置QTableWidget的viewportMargins tableWidget.setViewportMargins(0, 0, scrollbar_width, scrollbar_height) # 获取滚动条的宽度和高度 scrollbar_width = tableWidget.verticalScrollBar().width() scrollbar_height = tableWidget.horizontalScrollBar().height() # 设置表头的高度和宽度 header_height = tableWidget.horizontalHeader().height() header_width = tableWidget.verticalHeader().width() # 设置行和列的大小策略 tableWidget.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents) tableWidget.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) tableWidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) # 设置行和列的大小 tableWidget.setColumnWidth(0, 200) tableWidget.setRowHeight(0, 30) # 添加表头 tableWidget.setHorizontalHeaderLabels(['Column 1', 'Column 2']) tableWidget.setVerticalHeaderLabels(['Row 1', 'Row 2']) # 添加单元格内容 tableWidget.setItem(0, 0, QtWidgets.QTableWidgetItem("Item 1")) tableWidget.setItem(0, 1, QtWidgets.QTableWidgetItem("Item 2")) tableWidget.setItem(1, 0, QtWidgets.QTableWidgetItem("Item 3")) tableWidget.setItem(1, 1, QtWidgets.QTableWidgetItem("Item 4")) ``` 在上面的代码中,我们首先获取滚动条的宽度和高度,然后设置QTableWidget的viewportMargins为0,0,scrollbar_width和scrollbar_height。这样可以确保滚动条不会遮挡表头。然后,我们设置QTableWidget的行和列的大小策略为AdjustToContents,以使每个单元格的大小自适应其内容。最后,我们添加表头和单元格内容。 请注意,如果你的表格中有很多行和列,这种方法可能会导致表格的大小超出屏幕范围,因此你可能需要考虑其他的解决方案,例如使用QTableView、QAbstractItemView或QTreeView等控件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bclshuai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值