基本外觀設定
FriendTable->setFrameShape(QFrame::NoFrame); //設定邊框
FriendTable->setHorizontalHeaderLabels(HeadList); 設定表頭
FriendTable->setSelectionMode(QAbstractItemView::SingleSelection); 設定選擇的模式為單選擇
FriendTable->setSelectionBehavior(QAbstractItemView::SelectRows); 設定選擇行為時每次選擇一行
FriendTable->setShowGrid(false); 設定不顯示格子線
FriendTable->setFont(font); 設定字型
設定表單背景或透明
QPalette pal = musicTable->palette();
pal.setBrush(this->backgroundRole(),QBrush(QPixmap("images/background.png")) );
musicTable->setPalette( pal );
設定它的背景圖片,也可以將QBrush初始化為QColor來設定背景顏色
QPalette pll = musicTable->palette();
pll.setBrush(QPalette::Base,QBrush(QColor(255,255,255,0)));
musicTable->setPalette(pll); //和QTextEdit一樣,都可以使用樣式表QPalette來修改它的背景顏色和背景圖片,這裡我們把刷子設定為全透明的,就可以是透明的
在QTableWidget列表中添加圖片的方法
QTableWidgetItem *cubesHeaderItem = new QTableWidgetItem(tr("Cubes"));
cubesHeaderItem->setIcon(QIcon(QPixmap("1.png")));
cubesHeaderItem->setTextAlignment(Qt::AlignVCenter);
musicTable->setItem(1,1,cubesHeaderItem); //在第一行第一列中顯示圖片
*******************表頭的屬性修改****************
musicTable->horizontalHeader()->resizeSection(0,150); //修改表頭第一列的寬度為150
musicTable->horizontalHeader()->setFixedHeight(25); //修改表頭合適的高度
musicTable->horizontalHeader()->setStyleSheet("QHeaderView::section {background-color:lightblue;color: black;padding-left: 4px;border: 1px solid #6c6c6c;}"); //設定表頭字型,顏色,模式
FriendTable->verticalHeader()->setStyleSheet("QHeaderView::section { background-color:skyblue;color: black;padding-left: 4px;border: 1px solid #6c6c6c}"); //設定縱列的邊框項的字型顏色模式等
本來想找找QT裡有沒有現成的API的,結果沒有找到,只能自己寫了。
實現也好實現,QTableWidgetItem裡面有修改背景色的API,直接調用,然後用迴圈控制隔行換色即可。
實現代碼:
void testtt::changeColor(QTableWidget *tablewidget){
for (int i = 0;i < tablewidget->rowCount();i++)
{
if (i % 2 == 0)
{
for (int j = 0;j < tablewidget->columnCount();j++)
{
QTableWidgetItem *item = tablewidget->item(i,j);
if (item)
{
const QColor color = QColor(252,222,156);
item->setBackgroundColor(color);
}
}
}
}
使用
向表中插入一項
QTableWidgetItem *num=new QTableWidgetItem(QTableWidgetItem::Type);
num->setCheckState(Qt::Unchecked); //加入複選框
num->setIcon(QIcon("images/fetion.png")); //加入ICon
num->setText(InfoList.at(i).name);
num->setFont(font);
num->setTextColor(color);
num->setFlags(num->flags() ^ Qt::ItemIsEditable);
int currentRow=FriendTable->rowCount(); //插入到最後
FriendTable->insertRow(currentRow);
FriendTable->setItem(currentRow,0,num); //插入該Item
FriendTable->selectRow(0); 選擇第一行
刪除某一行 列
FriendTable->removeRow(row);
FriendTable->removeColumn (column );
訊號
void cellActivated ( int row, int column )
void cellChanged ( int row, int column )
void cellClicked ( int row, int column )
void cellDoubleClicked ( int row, int column )
void cellEntered ( int row, int column )
void cellPressed ( int row, int column )
void currentCellChanged ( int currentRow, int currentColumn, int previousRow, int previousColumn )
void currentItemChanged ( QTableWidgetItem * current, QTableWidgetItem * previous ) 改變Item了
void itemActivated ( QTableWidgetItem * item )
void itemChanged ( QTableWidgetItem * item )
void itemClicked ( QTableWidgetItem * item )
void itemDoubleClicked ( QTableWidgetItem * item )
void itemEntered ( QTableWidgetItem * item )
void itemPressed ( QTableWidgetItem * item )
void itemSelectionChanged ()