我有一个非常具体的问题,所以我会尽量说清楚。
我有一个QTabWidget
包含QTableWidget
,我的每一行QTableWidget
都是通过读取文件动态创建的。
如您所见,当我创建一行时,我qCheckBox
在末尾添加了一个。我现在的目标是,当我单击(并在我取消选中 时删除此行)时,将此行发送到QTableWidget
我的最后一个选项卡中。QtableTab
qCheckBox
qCheckBox
所以每次我动态创建一条线时,我都会尝试关联到我qCheckBox
的 a 信号:
QObject::connect(pCheckBox, SIGNAL(clicked()), this, SLOT(cliqueCheckBox(monTab,ligne, pCheckBox)));
但它不起作用,我得到了错误:
QObject::connect: No such slot supervision::cliqueCheckBox(monTab,ligne, pCheckBox)
但是这个插槽存在,我在我的头文件和我的 cpp 中声明它是这样的:
void supervision::cliqueCheckBox(QTableWidget *monTab, int ligne, QCheckBox *pCheckBox)
我解决这个问题的方法好吗?如果是,如何正确地将信号与插槽相关联,如果不是,如何进行?
谢谢你。
[编辑]:这是我的函数创建qCheckBox
并动态关联它的代码:
void supervision::ajouterCheckBox(QTableWidget *monTab, int ligne){
// Creation de la check box
QWidget *pWidget = new QWidget(); //Creation du widget contenant la checkbox
QCheckBox *pCheckBox = new QCheckBox(); // Creation de la checkbox
QHBoxLayout *pLayout = new QHBoxLayout(pWidget); // Layout pour centrer ma checkbox
pLayout->addWidget(pCheckBox); // Ajout de la check box au layout
pLayout->setAlignment(Qt::AlignCenter); //Alignement
pLayout->setContentsMargins(0,0,0,0);//Supression des bordure
pWidget->setLayout(pLayout);//Mise en place du layout dans le widget
monTab->setCellWidget(ligne,5,pWidget);//Mise en place du widget contenant la checkbox dans ça cellule
//Mise en place de la connection
QObject::connect(pCheckBox, SIGNAL(clicked()), this, SLOT(cliqueCheckBox(monTab,ligne, pCheckBox)));
}