QTableWidget、QTableView样式表参考

10 篇文章 2 订阅
//无数据部分表头
QHeaderView{
        border: none;
        border-bottom: 3px solid rgb(0, 160, 230);
        background: rgb(57, 58, 60);
        min-height: 30px;
} 
//有数据部分水平表头
QHeaderView::section:horizontal {
        border: none;
        color: white;
        background: transparent;
        padding-left: 5px;
}  
//有数据部分垂直表头
QHeaderView::section:vertical {
        border: none;
        color: white;
        background: transparent;
        padding-left: 5px;
}  
//有数据部分表格角落按钮
QTableCornerButton:section{ 
background:#039092;  
border:1px solid #777777;
} 
QTreeView,QListView,QTableView,QSplitter::handle,QTreeView::branch{
background:#ff0000;
}
QHeaderView::section:horizontal:hover {
        background: rgb(0, 160, 230);
}
QHeaderView::section:horizontal:pressed {
        background: rgb(0, 180, 255);
}
QHeaderView::up-arrow {
        width: 13px;
        height: 11px;
        padding-right: 5px;
        image: url(:/Black/topArrow);
        subcontrol-position: center right;
}
QHeaderView::up-arrow:hover, QHeaderView::up-arrow:pressed {
        image: url(:/Black/topArrowHover);
}
QHeaderView::down-arrow {
        width: 13px;
        height: 11px;
        padding-right: 5px;
        image: url(:/Black/bottomArrow);
        subcontrol-position: center right;
}
QHeaderView::down-arrow:hover, QHeaderView::down-arrow:pressed {
        image: url(:/Black/bottomArrowHover);
}

/**********表格**********/ 
//无数据部分内容样式
QTableView {
        border: 1px solid rgb(45, 45, 45);
        background: rgb(57, 58, 60);
        gridline-color: rgb(60, 60, 60);//表格数据部分网格线
} 
//有数据部分内容样式
QTableView::item {
        padding-left: 5px;
        padding-right: 5px;
        border: none;
        background: rgb(72, 72, 74);
        border-right: 1px solid rgb(45, 45, 45);
        border-bottom: 1px solid rgb(45, 45, 45);
}
QTableView::item:selected {
        background: rgba(255, 255, 255, 40);
}
QTableView::item:selected:!active {
        color: white;
}
QTableView::indicator {
        width: 20px;
        height: 20px;
}
QTableView::indicator:enabled:unchecked {
        image: url(:/Black/checkBox);
}
QTableView::indicator:enabled:unchecked:hover {
        image: url(:/Black/checkBoxHover);
}
QTableView::indicator:enabled:unchecked:pressed {
        image: url(:/Black/checkBoxPressed);
}
QTableView::indicator:enabled:checked {
        image: url(:/Black/checkBoxChecked);
}
QTableView::indicator:enabled:checked:hover {
        image: url(:/Black/checkBoxCheckedHover);
}
QTableView::indicator:enabled:checked:pressed {
        image: url(:/Black/checkBoxCheckedPressed);
}
QTableView::indicator:enabled:indeterminate {
        image: url(:/Black/checkBoxIndeterminate);
}
QTableView::indicator:enabled:indeterminate:hover {
        image: url(:/Black/checkBoxIndeterminateHover);
}
QTableView::indicator:enabled:indeterminate:pressed {
        image: url(:/Black/checkBoxIndeterminatePressed);
}

/**********滚动条-水平**********/
QScrollBar:horizontal {
        height: 20px;
        background: transparent;
        margin-top: 3px;
        margin-bottom: 3px;
}
QScrollBar::handle:horizontal {
        height: 20px;
        min-width: 30px;
        background: rgb(68, 69, 73);
        margin-left: 15px;
        margin-right: 15px;
}
QScrollBar::handle:horizontal:hover {
        background: rgb(80, 80, 80);
}
QScrollBar::sub-line:horizontal {
        width: 15px;
        background: transparent;
        image: url(:/Black/arrowLeft);
        subcontrol-position: left;
}
QScrollBar::add-line:horizontal {
        width: 15px;
        background: transparent;
        image: url(:/Black/arrowRight);
        subcontrol-position: right;
}
QScrollBar::sub-line:horizontal:hover {
        background: rgb(68, 69, 73);
}
QScrollBar::add-line:horizontal:hover {
        background: rgb(68, 69, 73);
}
QScrollBar::add-page:horizontal,QScrollBar::sub-page:horizontal {
        background: transparent;
}

/**********滚动条-垂直**********/
QScrollBar:vertical {
        width: 20px;
        background: transparent;
        margin-left: 3px;
        margin-right: 3px;
}
QScrollBar::handle:vertical {
        width: 20px;
        min-height: 30px;
        background: rgb(68, 69, 73);
        margin-top: 15px;
        margin-bottom: 15px;
}
QScrollBar::handle:vertical:hover {
        background: rgb(80, 80, 80);
}
QScrollBar::sub-line:vertical {
        height: 15px;
        background: transparent;
        image: url(:/Black/arrowTop);
        subcontrol-position: top;
}
QScrollBar::add-line:vertical {
        height: 15px;
        background: transparent;
        image: url(:/Black/arrowBottom);
        subcontrol-position: bottom;
}
QScrollBar::sub-line:vertical:hover {
        background: rgb(68, 69, 73);
}
QScrollBar::add-line:vertical:hover {
        background: rgb(68, 69, 73);
}
QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
        background: transparent;
}

QScrollBar#verticalScrollBar:vertical {
        margin-top: 30px;
}

参考链接:Qt 之 QSS(黑色炫酷)

  • 6
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QTableWidgetQTableView是Qt框架中用于显示表格数据的两个类。QTableWidget是一个预定义的表格控件,可以直接在界面上使用,而QTableView是一个更灵活的类,可以与自定义的数据模型一起使用。 QSS(Qt Style Sheets)是一种用于设置Qt应用程序界面样式的机制。它类似于CSS(Cascading Style Sheets),可以通过设置样式属性来改变控件的外观和布局。 下面是一个使用QTableWidgetQTableView的例子: 1. 使用QTableWidget创建表格并设置数据: ```python from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem app = QApplication([]) table_widget = QTableWidget(3, 3) # 创建一个3行3列的表格 # 设置表头 table_widget.setHorizontalHeaderLabels(['Name', 'Age', 'Gender']) # 设置数据 data = [['Alice', '25', 'Female'], ['Bob', '30', 'Male'], ['Charlie', '35', 'Male']] for row, row_data in enumerate(data): for col, col_data in enumerate(row_data): item = QTableWidgetItem(col_data) table_widget.setItem(row, col, item) table_widget.show() app.exec_() ``` 2. 使用QTableView和自定义数据模型创建表格: ```python from PyQt5.QtWidgets import QApplication, QTableView, QStandardItemModel, QStandardItem app = QApplication([]) table_view = QTableView() # 创建数据模型 model = QStandardItemModel(3, 3) # 创建一个3行3列的数据模型 # 设置表头 model.setHorizontalHeaderLabels(['Name', 'Age', 'Gender']) # 设置数据 data = [['Alice', '25', 'Female'], ['Bob', '30', 'Male'], ['Charlie', '35', 'Male']] for row, row_data in enumerate(data): for col, col_data in enumerate(row_data): item = QStandardItem(col_data) model.setItem(row, col, item) table_view.setModel(model) table_view.show() app.exec_() ``` 3. 使用QSS设置表格样式: ```python from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem app = QApplication([]) table_widget = QTableWidget(3, 3) # 创建一个3行3列的表格 # 设置表头 table_widget.setHorizontalHeaderLabels(['Name', 'Age', 'Gender']) # 设置数据 data = [['Alice', '25', 'Female'], ['Bob', '30', 'Male'], ['Charlie', '35', 'Male']] for row, row_data in enumerate(data): for col, col_data in enumerate(row_data): item = QTableWidgetItem(col_data) table_widget.setItem(row, col, item) # 设置表格样式 table_widget.setStyleSheet("QTableView {background-color: yellow;}") table_widget.show() app.exec_() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值