обнаружение щелчка заголовка в QTableWidget c ++ qt4 - PullRequest
0 голосов
/ 19 апреля 2011

В моей программе есть QTableWidget, который я использую для отображения результатов, и я пытаюсь определить, когда пользователь нажимает один из вертикальных заголовков.Для этого я пытаюсь подключить сигнал sectionDoubleClicked (int) к моей функции hheaderclicked (int).Когда я пытаюсь скомпилировать код, я получаю ошибку времени компиляции из-за отсутствия соответствующей функции.Я основываю свой код с поста здесь

Ошибка компиляции:

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 * к QObject *, чтобы заставить это работать, мне не нужно приводить ни одного из моихдругие вызовы QObject :: connect работают нормально.Например, это нормально работает:

QObject::connect(ui->button_start,SIGNAL(clicked()),this,SLOT(scanstart()));

, потому что этот подключается к известному объекту во время компиляции, в то время как другой подключается к объекту, который не будет известен до выполнения?

1 Ответ

1 голос
/ 19 апреля 2011

Сообщение об ошибке дает третий аргумент как MainWindow* const, что довольно странно. Если это было const MainWindow*, вызов должен работать. Как объявляется вызывающая функция?

...