QTableWidget的使用和美工總結

來源:互聯網
上載者:User

基本外觀設定

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.