私は非常に具体的な問題を抱えているので、できるだけ明確にしようとしています。
QTabWidget
を含むを持っています。QTableWidget
私のすべての行はQTableWidget
、ファイルを読み取ることによって動的に作成されます。
ご覧のとおり、行を作成するときはqCheckBox
、末尾に a を追加します。私の目標は、クリックしたときにこの行をQTableWidget
私の最後のタブに送信し、チェックを外すとこの行を削除することです。QtableTab
qCheckBox
qCheckBox
したがって、ラインを動的に作成するたびにqCheckBox
、シグナルに関連付けようとします。
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)));
}