결과를 표시하는 데 사용하는 프로그램에 QTableWidget이 있는데 사용자가 세로 머리글 중 하나를 한 번 클릭 할 때이를 감지 할 수있게하려고합니다. 이렇게하려면 signal sectionDoubleClicked (int)를 hheaderclicked (int) 함수에 연결하려고합니다. 코드를 컴파일하려고하면 일치하는 함수에 대한 컴파일 시간 오류가 발생합니다. 나는 게시물에서 hereQTableWidget에서 머리글 클릭 감지 C++ qt4
컴파일 에러를 내 코드를 내놓고 오전 :
mainwindow.cpp:138: error: no matching function for call to âMainWindow::connect(QHeaderView*, const char [27], MainWindow* const, const char [21])â
/usr/lib64/qt4/include/QtCore/qobject.h:181: note: candidates are: static bool QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)
/usr/lib64/qt4/include/QtCore/qobject.h:282: note: bool QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const
내 코드 :
QObject::connect(ui->table_results->horizontalHeader(),SIGNAL(sectionDoubleClicked(int)),
this,SLOT(hheaderclicked(int)));
편집 : 나는 다음을 수행하여 사용하려면 코드를 얻을 수 있었다 :
QObject::connect((QObject*)ui->table_results->verticalHeader(),SIGNAL(sectionClicked(int)),this,SLOT(hheaderclicked(int)));
왜 내가 QHeaderView *를 Q로 캐스팅해야만하는지 설명 할 수 있습니까? Object *이 기능을 사용하려면 다른 QObject :: connect 호출 중 하나를 형 변환 할 필요가 없습니다. 모두 제대로 작동합니다. 예를 들어이 잘 작동이 사람이 내 다른 하나는 런타임까지 알 수 없습니다 객체에 연결하는 동안 컴파일 타임에 알려진 객체에 연결하기 때문에 그것은
QObject::connect(ui->button_start,SIGNAL(clicked()),this,SLOT(scanstart()));
입니까?
MainWindow :: MainWindow (QWidget * parent) 구성 도중 연결이 발생합니다. 이게 당신이 요구하는 것입니까? –
수정 사항을 고려하여 #을 (를) 잊어 버렸을 가능성이 있습니까? –
TonyK
당신의 제안에 따라을 포함 시키려고 시도했지만 프로그램이 QObject *로 캐스팅하지 않고 컴파일됩니다. 감사. –