我使用 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/