QTableWidget的使用和美工總結

QTableWidget的使用和美工總結


基本外觀設置

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 ()



發佈了11 篇原創文章 · 獲贊 0 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章