QTableWidget的使用和美工总结

 

  
  
  
  
  1. 基本外观设置  
  2.  
  3. FriendTable->setFrameShape(QFrame::NoFrame);  //设置边框  
  4.  
  5. FriendTable->setHorizontalHeaderLabels(HeadList);  设置表头  
  6.  
  7. FriendTable->setSelectionMode(QAbstractItemView::SingleSelection);   设置选择的模式为单选择  
  8.  
  9. FriendTable->setSelectionBehavior(QAbstractItemView::SelectRows);    设置选择行为时每次选择一行  
  10.  
  11. FriendTable->setShowGrid(false);   设置不显示格子线  
  12.  
  13. FriendTable->setFont(font);   设置字体  
  14.  
  15.    
  16.  
  17. 设置表单背景或透明  
  18.  
  19. QPalette pal = musicTable->palette();  
  20.     pal.setBrush(this->backgroundRole(),QBrush(QPixmap("images/background.png")) );  
  21.     musicTable->setPalette( pal );  
  22.  
  23. 设置它的背景图片,也可以将QBrush初始化为QColor来设置背景颜色  
  24.  
  25.    
  26.  
  27. QPalette pll = musicTable->palette();  
  28.  
  29. pll.setBrush(QPalette::Base,QBrush(QColor(255,255,255,0)));  
  30.  
  31. musicTable->setPalette(pll);  //和QTextEdit一样,都可以使用样式表QPalette来修改它的背景颜色和背景图片,这里我们把刷子设置为全透明的,就可以是透明的  
  32.  
  33.  
  34. 在QTableWidget列表中添加图片的方法     
  35. QTableWidgetItem *cubesHeaderItem = new QTableWidgetItem(tr("Cubes"));  
  36. cubesHeaderItem->setIcon(QIcon(QPixmap("1.png")));  
  37. cubesHeaderItem->setTextAlignment(Qt::AlignVCenter);  
  38.  musicTable->setItem(1,1,cubesHeaderItem);   //在第一行第一列中显示图片  
  39.  
  40.    
  41.  
  42. *******************表头的属性修改****************  
  43.  
  44. musicTable->horizontalHeader()->resizeSection(0,150);  //修改表头第一列的宽度为150  
  45.  
  46.  musicTable->horizontalHeader()->setFixedHeight(25);  //修改表头合适的高度  
  47.  
  48. musicTable->horizontalHeader()->setStyleSheet("QHeaderView::section {background-color:lightblue;color: black;padding-left: 4px;border: 1px solid #6c6c6c;}");    //设置表头字体,颜色,模式  
  49.  
  50.    
  51.  
  52.  FriendTable->verticalHeader()->setStyleSheet("QHeaderView::section {  background-color:skyblue;color: black;padding-left: 4px;border: 1px solid #6c6c6c}");   //设置纵列的边框项的字体颜色模式等  
  53.  
  54.    
  55.  
  56.    
  57.  
  58.    
  59.  
  60. 本来想找找QT里有没有现成的API的,结果没有找到,只能自己写了。  
  61. 实现也好实现,QTableWidgetItem里面有修改背景色的API,直接调用,然后用循环控制隔行换色即可。  
  62. 实现代码:  
  63. void testtt::changeColor(QTableWidget *tablewidget){  
  64. for (int i = 0;i < tablewidget->rowCount();i++)  
  65. {  
  66.       if (i % 2 == 0)  
  67.       {  
  68.             for (int j = 0;j < tablewidget->columnCount();j++)  
  69.            {  
  70.                  QTableWidgetItem *item = tablewidget->item(i,j);  
  71.                  if (item)  
  72.                 {  
  73.                      const QColor color = QColor(252,222,156);  
  74.                       item->setBackgroundColor(color);  
  75.                  }  
  76.            }  
  77.      }  
  78. }  
  79.  
  80.    
  81.  
  82.    
  83.  
  84. 使用  
  85.  
  86. 向表中插入一项  
  87.  
  88.   QTableWidgetItem *num=new QTableWidgetItem(QTableWidgetItem::Type);  
  89.             num->setCheckState(Qt::Unchecked);   //加入复选框  
  90.             num->setIcon(QIcon("images/fetion.png"));  //加入ICon  
  91.             num->setText(InfoList.at(i).name);  
  92.             num->setFont(font);  
  93.             num->setTextColor(color);  
  94.             num->setFlags(num->flags() ^ Qt::ItemIsEditable);  
  95.  
  96.             int currentRow=FriendTable->rowCount();  //插入到最后  
  97.             FriendTable->insertRow(currentRow);  
  98.             FriendTable->setItem(currentRow,0,num);  //插入该Item  
  99.             FriendTable->selectRow(0);   选择第一行  
  100.  
  101. 删除某一行 列  
  102.  
  103. FriendTable->removeRow(row);  
  104.  
  105. FriendTable->removeColumn (column );  
  106.  
  107.    
  108.  
  109. 信号  
  110.  
  111. void cellActivated ( int row, int column )  
  112. void cellChanged ( int row, int column )  
  113. void cellClicked ( int row, int column )  
  114. void cellDoubleClicked ( int row, int column )  
  115. void cellEntered ( int row, int column )  
  116. void cellPressed ( int row, int column )  
  117. void currentCellChanged ( int currentRow, int currentColumn, int previousRow, int previousColumn )  
  118. void currentItemChanged ( QTableWidgetItem * current, QTableWidgetItem * previous )  改变Item了  
  119. void itemActivated ( QTableWidgetItem * item )  
  120. void itemChanged ( QTableWidgetItem * item )  
  121. void itemClicked ( QTableWidgetItem * item )  
  122. void itemDoubleClicked ( QTableWidgetItem * item )  
  123. void itemEntered ( QTableWidgetItem * item )  
  124. void itemPressed ( QTableWidgetItem * item )  
  125. void itemSelectionChanged ()  
  126.  

 

你可能感兴趣的:(QTableWidget)