已经建立好的QTableWidget循环添加了QCheckBox怎么在界面勾选了QCheckBox的时候触发一个函数???
问题1:已经建立好的QTableWidget循环添加了QCheckBox怎么在界面勾选了QCheckBox的时候触发一个函数???
.h文件的类中
QCheckBox *HDnumber;
.cpp的函数中实现
for(int i=0;i<= g_iDiskCnt;i++)
{
HDnumber = new QCheckBox;
ui->tableWidget_4->setCellWidget(i,0,HDnumber);
}
如图:当我勾选一个按钮时获取它的行号/Item???
我这个因为是一个指针循环建立的对象,我的QCheckBox是循环建立的,所以指针只有一个但是有10个对象生成了
界面 对象 指针 --------------------编程问答-------------------- 不要用这种方法添加checkbox
QTableWidgetItem自带checkbox有CheckState属性,既能显示QCheckBox,又能读取状态
QTableWidget *tableWidget = new QTableWidget;
QTableWidgetItem *checkBox = new QTableWidgetItem();
checkBox->setCheckState(Qt::Checked);
tableWidget ->setItem(row, column, checkBox);
点击并获取状态是
connect(tableWidget, SIGNAL(cellChanged(int,int)), this, SLOT(changeCheck(int, int)));
void changeCheck(int row, int col)
{
if(tableWidget ->item(row, col)->checkState() == Qt::Checked)
...
else
...
} --------------------编程问答-------------------- 重新定义空间的方法我试了,可以将获得的i值当作行号,在从新获得他的内容就行,就是有点麻烦但是能实现, 不好用 --------------------编程问答-------------------- 不过,非常感谢 --------------------编程问答--------------------
你指的重定义什么? --------------------编程问答--------------------
你确定你这样写没有问题了么?你这样写HDnumber 就是最后一个建立的QCheckBox。
先前new的QCheckBox还在,但都没有指针指向了。
就像房子其实都还在,就是门牌指向了最后一个房子,前面的房子你只能通过别的方法找到。
补充:移动开发 , Qt