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

标签 c++ qt widget

我使用 Qt Creator 向导(Windows 7、MinGW、64 位)创建了一个 Qt Widgets 项目。 然后我在主窗口(使用 mainwindow.ui)添加了一个按钮 pbClick。 现在右键单击 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_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

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

最佳答案

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

如果没有其他引用,运行 qmake,它可以在“Build”菜单下找到。

关于c++ - 如何在 Qt Widgets 中删除带有插槽的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26670585/

相关文章:

python - 使用Qt通过蓝牙发送多个原始数据包

c++ - 析构函数无法解释的行为

c++ - 指向引用赋值的指针

c++ - 我如何从主要功能到 QGLWidget 获得 'argc' 和 'argv'

ios - 我们是否需要 2 个配置文件来在 iOS 中实现小部件(扩展)和主应用程序?

Android 从 Widget 启动现有的应用程序实例

android - 将小部件添加到现有 Xamarin Android 应用程序时 bundle savedInstanceState null

c++ - 将 void * 指向 char 作为 int 读取有多安全?

c++ - 池化异步对象以获得更好的性能

c - 为什么 Qt 应用程序仅在 Spy++ 运行时创建窗口句柄?