在QTableWidget中添加QCheckBox並使其居中顯示(轉)


實現思路:把QCheckBox嵌入式到一個水平布局中

復制代碼
[cpp] view plain copy
 
  1. QWidget *widget;  
  2. QHBoxLayout *hLayout;  
  3. QCheckBox *ckb;  
  4. ...  
  5. ckb = new QCheckBox();  
  6. hLayout = new QHBoxLayout();  
  7. widget = new QWidget(ui->tableWidget);  
  8. hLayout->addWidget(ckb);  
  9. hLayout->setMargin(0);                          // 必須添加, 否則CheckBox不能正常顯示  
  10. hLayout->setAlignment(ckb, Qt::AlignCenter);  
  11. widget->setLayout(hLayout);  
  12. ...  
  13. ui->tableWidget->setCellWidget(row, column, widget);  
復制代碼

 

獲取CheckBox的指針的方法

[cpp] view plain copy
 
  1. QWidget *widget = (QWidget *)ui->tableWidget->cellWidget(row, column);  
  2. QCheckBox *ckb = (QCheckBox *)widget->children().at(1);  
  3. ckb->setChecked(true);  
  4. ...  

 

備注:     可使用 qDebug() << widget->children(); 輸出widget的child列表     從而判斷CheckBox的index

 

轉自:http://blog.csdn.net/it_mac/article/details/8953191

 

-------------------------------------------------------------------------自學筆記-------------------------------------------------------------------------

復制代碼
     //開關按鈕 QWidget* widget = new QWidget(); QToolButton* switchBtn = new QToolButton(widget); switchBtn->setFixedSize(QSize(nWidth, nHeight)); switchBtn->setText(""); switchBtn->setStyleSheet(offStyle); QHBoxLayout* hLayout = new QHBoxLayout(widget); hLayout->setMargin(0); hLayout->addWidget(switchBtn); hLayout->setAlignment(switchBtn, Qt::AlignCenter); devTableWidget->setCellWidget(row, column, widget); connect(switchBtn, SIGNAL(clicked()), switchMapper, SLOT(slot_switchBtn()));
    //獲取按鈕指針     QToolButton*toolBtn=(QToolButton*)devTableWidget->cellWidget(row,column)->children().at(0);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM