打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
QTreeWidget项中添加控件(QCheckBox)和获取控件(QCheckBox)

QTreeWidget项中添加控件(QCheckBox)和获取控件(QCheckBox)

分类: Qt 1236人阅读 评论(0) 收藏 举报

之前一直被这个问题困扰着,因为我用的是QTableWidgetItem自带的QCheckBox。所以想使这个QCheckBox禁用时,根本就获取不到这个对象,只能获取它的状态。今天觉得肯定有办法解决时又继续纠结这个问题来了。所以继续查找资料,看别人的博客,之后无意进到了一个国外的论坛,看到了QTreeWidget的setItemWidget方法。方法的原型为:void QTreeWidget::setItemWidget ( QTreeWidgetItem * itemint columnQWidget * widget );它的作用是为item的第几列设置一个widget控件。而获取item列里面的控件时的方法为:QWidget * QTreeWidget::itemWidget ( QTreeWidgetItem * itemint column ) const;返回控件的指针。

下面贴上代码:.h

  1. #ifndef WIDGET_H   
  2. #define WIDGET_H   
  3.   
  4. #include <QtGui/QWidget>   
  5. #include <QTreeWidget>   
  6. #include <QTreeWidgetItem>   
  7. #include <QCheckBox>   
  8. #include <QHBoxLayout>   
  9. #include <QMessageBox>   
  10.   
  11. class Widget : public QWidget  
  12. {  
  13.     Q_OBJECT  
  14.       
  15. public:  
  16.     Widget(QWidget *parent = 0);  
  17.     ~Widget();  
  18.   
  19. private:  
  20.     QTreeWidget *treeWidget;  
  21.     QHBoxLayout *hLayout;  
  22. };  
  23.   
  24. #endif // WIDGET_H  


.cpp:

  1. #include "widget.h"   
  2.   
  3. Widget::Widget(QWidget *parent)  
  4.     : QWidget(parent)  
  5. {  
  6.     hLayout = new QHBoxLayout(this);  
  7.     treeWidget = new QTreeWidget(this);  
  8.     treeWidget->setColumnCount(2);  
  9.   
  10.     QTreeWidgetItem *top = new QTreeWidgetItem;  
  11.     top->setText(0,"top");  
  12.     treeWidget->addTopLevelItem(top);  
  13.   
  14.     QCheckBox *ckBox = new QCheckBox;  
  15.     ckBox->setText("CheckBox");  
  16.     ckBox->setChecked(true);  
  17.   
  18.     QTreeWidgetItem *item = new QTreeWidgetItem;  
  19.     item->setText(0,"title");  
  20.     top->addChild(item);  
  21.     treeWidget->setItemWidget(item,1,ckBox);                //设置ckBox为item的第二列   
  22.   
  23.     QCheckBox *cpy = (QCheckBox*)treeWidget->itemWidget(item,1);  
  24.     QMessageBox::information(this,"title",cpy->text());     //获取item中Checkbox的文本值   
  25.   
  26.     hLayout->addWidget(treeWidget);  
  27.     this->setLayout(hLayout);  
  28. }  
  29.   
  30. Widget::~Widget()  
  31. {  
  32.       
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Qt 5——常用控件(QLable、QLineEdit、)
Qt 之tree widget和treeView控件C++语言
Qt QTreeWidget 树形结构实现(一)
QTreeWidgetItem添加自定义数据
[QT_012]Qt学习之QTreeWidget 详解
【第七节】PyQt5控件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服