如何在Qt小工具中删除带有插槽的按钮

How to remove a button with its slot in Qt Widgets

本文关键字:插槽 按钮 删除 Qt 工具      更新时间:2023-10-16

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

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

在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_clickd()的引用

错误出现在以下功能中

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 中定义

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

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

如果没有其他引用,请运行qmake,它可以在"构建"菜单下找到。