如何在Qt Widgets中删除带有插槽的按钮

Vin*_*nod 3 c++ qt widget

我使用Qt Creator向导创建了一个Qt Widgets项目(Windows 7,MinGW,64位).然后我pbClick在主窗口中添加了一个按钮(使用mainwindow.ui).现在右键单击UIpushButton并单击Go to Slot.这创建了以下功能:

void MainWindow::on_pbClick_clicked()
{
    this->close();//added by me.
}
Run Code Online (Sandbox Code Playgroud)

在mainwindow.cpp文件中.

该计划工作正常.

现在我通过右键单击删除从用户界面删除了按钮.

MainWindow::on_pbClick_clicked()手动删除了上述功能.

如果我尝试运行该程序,则会出现错误消息.

C:\ QtProjects\QtWidgets\build-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);
}
Run Code Online (Sandbox Code Playgroud)

定义在 moc_mainwindow.cpp

如何完全删除按钮及其单击事件(插槽).

The*_*ght 6

确保您已删除on_pbClick_clicked()标题MainWindow.h及其实现中对函数的引用MainWindow.cpp.

如果没有其他引用,则运行qmake,可以在"Build"菜单下找到.