매우 구체적인 문제가 있으므로 최대한 명확하게하려고 노력할 것입니다.qcheckbox에 신호와 슬롯을 연결하면 동적으로 생성됩니다.
나는 QTableWidget
을 포함하는 을 가지고 있는데, 내 QTableWidget
의 모든 라인은 파일을 읽음으로써 동적으로 생성됩니다. 당신이 볼 수있는 바와 같이 나는 선을 만들 때
는, 나는 마지막에 qCheckBox
를 추가합니다. 이제 내 목표는 qCheckBox
을 클릭하고 qCheckBox
의 선택을 취소 할 때이 줄을 삭제할 때 내 QtableTab
의 마지막 탭에있는 QTableWidget
에이 줄을 보내는 것입니다.
그래서 내가 동적으로 라인을 만들 때마다, 나는 내 qCheckBox
에 신호 연결을 시도 :
QObject::connect: No such slot supervision::cliqueCheckBox(monTab,ligne, pCheckBox)
:
QObject::connect(pCheckBox, SIGNAL(clicked()), this, SLOT(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)));
}
'감독'이란 무엇입니까? 네임 스페이스 또는 클래스? – JBL
감독은 수업입니다. –
슬롯을 연결할 때이 클래스의 멤버 함수에 있음을 확인할 수 있습니까? – JBL