如何在QTableWidget中实现QCheckBox

如何在QTableWidget中实现QCheckBox,第1张

#include "widgeth"

#include "ui_widgeth"

#include <QTableWidgetItem>

#include <QCheckBox>

#include <QHBoxLayout>

#include <QDebug>

Widget::Widget(QWidget parent) :

QWidget(parent),

ui(new Ui::Widget)

{

ui->setupUi(this);

/这是ui文件中没有放qtablewidget控件时在里面插入QCkeckBox的方法/

// QTableWidget table=new QTableWidget(5,5);

// QCheckBox abc=new QCheckBox("");

// table->setCellWidget(0,0,abc);

// QHBoxLayout mainLayout = new QHBoxLayout;

// mainLayout->addWidget(table);

// setLayout(mainLayout);

/这是ui文件中已经放了QtableWieget控件时在里面插入QCheckBox的方法/

// QCheckBox abc=new QCheckBox("");

// ui->tableWidget->setColumnCount(2);

// ui->tableWidget->setRowCount(2);

// ui->tableWidget ->setCellWidget(0,0,abc);

/这是利用QTableWidget自带的属性插入QCheckBox的方法,据说前两中方法不能读取单选框的选择状态(我测试了一下,发现这种说法并不完全对,尽管失败了)而这种可以读取状态的方法是利用QTableWidget::cellChanged()函数,检查单元格内容的变化,然后连接此信号,在槽函数中检测checkBox的状态。

connect(tableWidget, SIGNAL(cellChanged(int,int)), this, SLOT(changeTest(int, int)));

void changeTest(int row, int col)

{

if(tableWidget ->item(row, col)->checkState() == Qt::Checked) //选中

else

}

/

QTableWidgetItem asd=new QTableWidgetItem();

asd->setCheckState(Qt::Checked);

ui->tableWidget->setColumnCount(3);

ui->tableWidget->setRowCount(3);

ui->tableWidget->setItem(0,0,asd);

}

Widget::~Widget()

{

delete ui;

}

QLayoutItem pLayout = ui->gridLayoutUp->QGridLayout::itemAtPosition(1, 1);

    QCheckBox pQCheckBox = qobject_cast( pLayout->widget());

以上就是关于如何在QTableWidget中实现QCheckBox全部的内容,包括:如何在QTableWidget中实现QCheckBox、QGridLayout 获取格子控件、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9395878.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存