Qt QTableView样式设置

显示效果

Qt QTableView样式设置_bc

QSS设置

选中设置:

​​QTableView::item:selected​​
​​{​​
​​background:rgb(0,0,100);​​
​​color:white;​​
​​}​​

表头设置:

​​QHeaderView::section:first​​
​​{​​
​​border-image: url(:/images/expand/tempUser_headBg2.png);​​
​​height: 30px;​​
​​font: 11pt ​​​​"微软雅黑"​​​​;​​
​​}​​

​​QHeaderView::section:middle​​
​​{​​
​​border-image: url(:/images/expand/tempUser_headBg2.png);​​
​​height: 30px;​​
​​font: 11pt ​​​​"微软雅黑"​​​​;​​
​​}​​

​​QHeaderView::section:last​​
​​{​​
​​border-image: url(:/images/expand/tempUser_headBg4.png);​​
​​height: 30px;​​
​​font: 11pt ​​​​"微软雅黑"​​​​;​​
​​}​​

滚动条设置:

QScrollBar:vertical {​​
​​border: 0px;​​
​​background:rgba(255,255,255,0);​​
​​border-image:url(:/images/scrollbar/vertical_scrollBg.png);​​
​​width: 22px;​​
​​margin: 22px 0 22px 0;​​
​​}​​

​​QScrollBar::handle:vertical {​​
​​border-image:url(:/images/scrollbar/vertical_slide.png);​​
​​width:22px;​​
​​min-height:50px;​​
​​max-height:200px;​​
​​}​​

​​QScrollBar::handle:vertical:hover {​​
​​border-image: url(:/images/scrollbar/vertical_slide_hover.png);​​
​​width:22px;​​
​​min-height:50px;​​
​​max-height:200px;​​
​​}​​

​​QScrollBar::handle:horizontal:hover {​​
​​border-image: url(:/images/scrollbar/slide.png);​​
​​width:22px;​​
​​min-height:35px;​​
​​}​​

​​QScrollBar::handle:vertical:hover {​​
​​border-image:url(:/images/scrollbar/vertical_slide_hover.png);​​
​​width:22px;​​
​​}​​

​​QScrollBar::add-line:vertical {​​
​​border-image:url(:/images/scrollbar/vertical_down.png);​​
​​height: 22px;​​
​​subcontrol-position: bottom;​​
​​subcontrol-origin: margin;​​

​​}​​
​​QScrollBar::add-line:vertical:pressed{​​
​​border-image:url(:/images/scrollbar/vertical_down_down.png);​​
​​height: 22px;​​
​​subcontrol-position: bottom;​​
​​subcontrol-origin: margin;​​

​​}​​
​​QScrollBar::sub-line:vertical {​​
​​border-image:url(:/images/scrollbar/vertical_up.png);​​
​​height:22px;​​
​​subcontrol-position: top;​​
​​subcontrol-origin: margin;​​
​​}​​
​​QScrollBar::sub-line:vertical:pressed {​​
​​border-image:url(:/images/scrollbar/vertical_up_down.png);​​
​​height: 22px;​​
​​subcontrol-position: top;​​
​​subcontrol-origin: margin;​​
​​}​​
​​QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {​​
​​background: none;​​
​​}​​

​​QScrollBar:horizontal {​​
​​border: 0px;​​
​​background:rgba(255,255,255,0);​​
​​border-image:url(:/images/scrollbar/scrollBg.png);​​
​​height: 22px;​​
​​margin: 0 22px 0 22px;​​
​​}​​

​​QScrollBar::handle:horizontal {​​
​​border-image:url(:/images/scrollbar/slide.png);​​
​​height:22px;​​
​​}​​

​​QScrollBar::handle:vertical:hover {​​
​​border-image:url(:/images/scrollbar/vertical_slide_hover.png);​​
​​width:22px;​​
​​}​​

​​QScrollBar::add-line:horizontal {​​
​​border-image:url(:/images/scrollbar/down.png);​​
​​width: 22px;​​
​​subcontrol-position: right;​​
​​subcontrol-origin: margin;​​

​​}​​
​​QScrollBar::add-line:horizontal:pressed{​​
​​border-image:url(:/images/scrollbar/down_down.png);​​
​​width: 22px;​​
​​subcontrol-position: right;​​
​​subcontrol-origin: margin;​​

​​}​​
​​QScrollBar::sub-line:horizontal {​​
​​border-image:url(:/images/scrollbar/up.png);​​
​​width:22px;​​
​​subcontrol-position: left;​​
​​subcontrol-origin: margin;​​
​​}​​
​​QScrollBar::sub-line:horizontal:pressed {​​
​​border-image:url(:/images/scrollbar/up_down.png);​​
​​width: 22px;​​
​​subcontrol-position: left;​​
​​subcontrol-origin: margin;​​
​​}​​
​​QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {​​
​​background: none;​​
​​}​​

行之间颜色渐变(alternaingRowColors必须设置为true):

​​QTableView​​
​​{​​
​​background-color: rgb(255, 255, 255);​​
​​alternate-background-color:#F2F8FF;​​
​​}​​

设置QTreeWidget水平滚动条:

​​ui.treeWidget_site->header()->setSectionResizeMode(QHeaderView::ResizeToContents); ​​
​​ui.treeWidget_site->header()->setStretchLastSection(​​​​false​​​​);​​

代码设置

void MainWindow::initUi()
{

// // 表头
// ui->tableWidget->setColumnCount(m_iColumCount);
// ui->tableWidget->setRowCount(1);
// ui->tableWidget->verticalHeader()->setVisible(false);
// ui->tableWidget->horizontalHeader()->setVisible(false);
// ui->tableWidget->setFrameShape(QFrame::NoFrame);
// ui->tableWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
// ui->tableWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
// ui->tableWidget->setSelectionMode(QAbstractItemView::NoSelection);
// ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
// ui->tableWidget->setFocusPolicy(Qt::NoFocus);


QStandardItemModel* model = new QStandardItemModel();

/* 设置列数 */
model->setColumnCount(14);
model->setHeaderData(0, Qt::Horizontal, QStringLiteral("任务编号"));
model->setHeaderData(1, Qt::Horizontal, QStringLiteral("任务类型"));
model->setHeaderData(2, Qt::Horizontal, QStringLiteral("工作模式"));
model->setHeaderData(3, Qt::Horizontal, QStringLiteral("中频频率"));
model->setHeaderData(4, Qt::Horizontal, QStringLiteral("中频带宽"));
model->setHeaderData(5, Qt::Horizontal, QStringLiteral("中频增益"));
model->setHeaderData(6, Qt::Horizontal, QStringLiteral("调制类型"));
model->setHeaderData(7, Qt::Horizontal, QStringLiteral("调制速率"));
model->setHeaderData(8, Qt::Horizontal, QStringLiteral("发射频率"));
model->setHeaderData(9, Qt::Horizontal, QStringLiteral("发射功率"));
model->setHeaderData(10, Qt::Horizontal, QStringLiteral("成型系数"));
model->setHeaderData(11, Qt::Horizontal, QStringLiteral("任务状态"));
model->setHeaderData(12, Qt::Horizontal, QStringLiteral("开始时间"));
model->setHeaderData(13, Qt::Horizontal, QStringLiteral("结束时间"));



/* 设置行数 */
model->setRowCount(14);
model->setHeaderData(0, Qt::Vertical, QStringLiteral("1"));

ui->tableView->horizontalHeader()->setStyleSheet("QHeaderView::section {"
"color: #44b4da; background-color: rgb(21, 45, 93);padding-left: 4px;border: 1px solid #44b4da;}");


ui->tableView->setModel(model);
/* 设置列宽在可视界面自适应宽度 */
// ui->tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
ui->tableView->horizontalHeader()->setResizeContentsPrecision(QHeaderView::Stretch);
/* 行颜色交替显示 */
ui->tableView->setAlternatingRowColors(true);
/* 不允许在图形界面修改内容 */
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);

/* 在表格内加入内容 */
model->setItem(0, 0, new QStandardItem(QStringLiteral("数字")));

/* 显示表 */
ui->tableView->show();
}

工程代码下载


python3.5 dict 排序 python dict顺序

python中的字典底层是树实现的,本身没有像列表一样可以排序,但是会有应用场景需要将字典排序1、一个字典按照值排序example:d = {'lilee':25, 'wangyan':21, 'liqun':32, 'age':19} print(sorted(d.items(), key=lambda item:item[1])) # response: # [('age', 19), (