2014-10-31 2 views
0

Я создал проект Qt Widgets с помощью мастера Qt Creator (Windows 7, MinGW, 64 бит). Затем я добавил кнопку в главное окно (с mainwindow.ui). Теперь щелкнул правой кнопкой мыши и нажал на Перейти на Слот. Это создало функциюКак удалить кнопку со своим слотом в Qt Widgets

void MainWindow::on_pbClick_clicked() 
{ 
    this->close();//added by me. 
} 

в файле mainwindow.cpp.

Программа работает нормально.

Теперь я удалил кнопку из пользовательского интерфейса, щелкнув правой кнопкой мыши удалить.

И я удалил вышеуказанную функцию MainWindow::on_pbClick_clicked() вручную.

Если я попытаюсь запустить программу, появится сообщение об ошибке.

C: \ QtProjects \ QtWidgets \ встроенный QtWidgetsTest-Desktop_Qt_5_3_MinGW_32bit-Debug \ Debug \ moc_mainwindow.cpp: 67: ошибка: неопределенная ссылка на `MainWindow :: on_pbClick_clicked()

Ошибка приходит в следующая функция

void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) 
{ 
    if (_c == QMetaObject::InvokeMetaMethod) { 
     MainWindow *_t = static_cast<MainWindow *>(_o); 
     switch (_id) { 
     case 0: _t->on_pbClick_clicked(); break; 
     default: ; 
     } 
    } 
    Q_UNUSED(_a); 
} 

определены в moc_mainwindow.cpp

Как удалить кнопку вместе с кнопкой мыши событие (слот) полностью.

ответ

4

Убедитесь, что вы удалили ссылку на функцию on_pbClick_clicked() в заголовке MainWindow.h, а также ее реализацию MainWindow.cpp.

Если других ссылок не осталось, запустите qmake, которые можно найти в меню «Построить».

Смежные вопросы