QTableView設置QSS樣式表
color: white; /*表格內(nèi)文字顏色*/
gridline-color: black; /*表格內(nèi)框顏色*/
background-color: rgb(108, 108, 108); /*表格內(nèi)背景色*/
alternate-background-color: rgb(64, 64, 64);
selection-color: white; /*選中區(qū)域的文字顏色*/
selection-background-color: rgb(77, 77, 77); /*選中區(qū)域的背景色*/
border: 2px groove gray;
border-radius: 0px;
padding: 2px 4px;
只設置此行的這一列的背景顏色,設置成功。
如:item->setBackgroundColor(QColor(0,60,10));//也可以使用qt系統(tǒng)的默認顏色。
設置單元格字體顏色、背景顏色和字體字符:
QTableWidgetItem *item = new QTableWidgetItem("Apple");
item->setBackgroundColor(QColor(0,60,10));
item->setTextColor(QColor(200,111,100));
item->setFont(QFont("Helvetica"));
tableWidget->setItem(0,3,item);
/* 表格設置 */
QTableView{ /** QTableView設置 */
border: none;
background-color: white;
selection-background-color: black;
}
QHeaderView::section{ /*表頭設置*/
border: none;
height:20px; /*表頭高度*/
color: white;
font-size: 15px;
font-weight: 900;
background-color: rgb(80, 80, 80);
text-align: center;
}
QTableView::item{ /** 每個單元格設置 */
background-color: white;
border: none;
background-color: rgb(220, 220, 220); /*交替行,第二行*/
selection-background-color: white;
selection-color: black;
font-family: Consolas;
font-size: 11px;
text-align: center;
}
QTableView::item:!alternate:!selected{
background-color: white; /*交替行的另一顏色*/
selection-background-color: rgb(220, 220, 220);
selection-color: black;
}
# 如果要顯示兩種顏色還要在代碼中添加
ui->tableView_name->setShowGrid(false); //<-----不顯示grid
ui->tableView_name->setAlternatingRowColors(true); //<-----雙色顯示
?
Qt基礎使用
說明:筆記為代碼修改方式,value:代表值,tableWidget替代ui->tabelwidget[控件名稱]
#include <QTableWidget>
創(chuàng)建一個tablewidget
QTableWidget *tabelWidget = new QTableWidget ;
設置行數(shù)
tableWidget->setRowCount(value);
設置列數(shù)
tableWidget->setColumnCount(value);
QTableWidget設置表頭內(nèi)容
QStringList header;header<<tr("value")<<tr("value")<<tr("value");tableWidget->setHorizontalHeaderLabels(header);
設置充滿表寬度[表格自動橫向填充滿控件]
tableWidget->horizontalHeader()->setStretchLastSection(true);
設置無邊框
tableWidget->setFrameShape(QFrame::NoFrame);
設置不顯示格子線
tableWidget->setShowGrid(false);?
去除選中虛線框
tableWidget->setFocusPolicy(Qt::NoFocus);
設置垂直頭不可見
tableWidget->verticalHeader()->setVisible(false);
設置水平、垂直滾動條樣式
tableWidget->horizontalScrollBar()->setStyleSheet( “[美化內(nèi)容參照QScrollArea樣式美化]” );tableWidget->verticalScrollBar()->setStyleSheet(“[美化內(nèi)容參照QScrollArea樣式美化]” );
修改表格編輯狀態(tài)權限
tableWidget->setEditTriggers(QAbstractItemView::value);value常用參數(shù):NoEditTriggers--不能對表格內(nèi)容進行修改CurrentChanged--任何時候都能對單元格修改DoubleClicked--雙擊單元格SelectedClicked--單擊已選中的內(nèi)容 AnyKeyPressed--按下任意鍵就能修改
設置表格選擇方式
tableWidget->setSelectionBehavior(QAbstractItemView::value); value常用參數(shù):SelectItems--選中單個單元格SelectRows--選中一行? ? SelectColumns--選中一列)
單個選中和多個選中的設置
tableWidget->setSelectionMode(QAbstractItemView::value);? value常用參數(shù):NoSelection--不能選擇SingleSelection--選中單個目標MultiSelection--選中多個目標ExtendedSelection/ContiguousSelection 的區(qū)別不明顯,主要功能是正常情況下是單選,但按下Ctrl或Shift鍵后,可以多選)
表格表頭的顯示與隱藏
tableWidget->verticalHeader()->setVisible(false);? ?//隱藏列表頭? tableWidget->horizontalHeader()->setVisible(false); //隱藏行表頭?
設置表頭字體及顏色
//獲得水平方向表頭的Item對象? QTableWidgetItem *columnHeaderItem = tableWidget->horizontalHeaderItem(0); columnHeaderItem->setFont(QFont("value")); //設置字體? columnHeaderItem->setBackgroundColor(QColor(0,0,0)); //設置單元格背景顏色? columnHeaderItem->setTextColor(QColor(0,0,0)); //設置文字顏色
在單元格里加入控件:
tableWidget->setCellWidget(value x , value y , [你的控件]);?
設置單元格字體顏色、背景顏色和字體字符:
QTableWidgetItem *item = new QTableWidgetItem("顯示的文字");item->setBackgroundColor(QColor(0,0,0));item->setTextColor(QColor(0,0,0));item->setFont(QFont("value"));tableWidget->setItem(0,0,item);//所有的單元格都使用tableWidget->setFont(QFont("value"));
合并單元格
//參數(shù)為: 要改變單元格的1行數(shù)、2列數(shù),要合并的3行數(shù)、4列數(shù)tableWidget->setSpan(0, 0, 3, 1) ;
設置單元格寬高
tableWidget->setColumnWidth(3,200); //行tableWidget->setRowHeight(3,60); //列//行和列的大小設為與內(nèi)容相匹配tableWidget->resizeColumnsToContents();tableWidget->resizeRowsToContents();
調(diào)整表格行寬
//使列完全填充并平分tableWidget->horizontalHeader()->setResizeMode(QHeaderView::Stretch);//行自適應寬度 tableWidget->verticalHeader()->setResizeMode(QHeaderView::Stretch);//根據(jù)內(nèi)容調(diào)整列寬tableWidget->resizeColumnsToContents();?
設置某列列寬
tableWidget->headerView->resizeSection(0,284);//設置第一列寬
內(nèi)容清除
tableWidget->clear();//清除所有可見數(shù)據(jù)(包括表頭),行還在tableWidget->clearContents();//只清除表中數(shù)據(jù),不清除表頭內(nèi)容tableWidget->setRowCount( column );//或者直接設置行數(shù)為0,則所有行內(nèi)容清除掉
表格排序,將某列按升序/降序的方式排列
tableWidget->sortByColumn( column , Qt::AscendingOrder);
獲取某一格的內(nèi)容
QString proName = tableWidget->item(row, column)->text();
添加一行
int row = tableWidget->rowCount();//獲取表格中當前總行數(shù)
?tableWidget->setRowCount(row+1);//加一行
QSS美化
QScrollBar:vertical{? ??文章來源:http://www.zghlxwxcb.cn/news/detail-443374.html
? ? ?width:6px;? ? ?
????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;
}
ui->tableWidget->verticalScrollBar()->setStyleSheet("QScrollBar:vertical { width: 5px; }");
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;?
}文章來源地址http://www.zghlxwxcb.cn/news/detail-443374.html
到了這里,關于QTableView設置樣式表/選中行顏色, QTableView美化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!