我有一个QT应用程序。它有功能QPushButtons连接到我的程序中的插槽。我现在正在尝试添加一个新按钮myNewButton
,但在某个地方,某种程度上它没有被注册。
对于现有的工作按钮myExistingButton
,我有一行:
connect(ui->myExistingButton, SIGNAL(clicked()), this, SLOT(Foo()));
我不能简单地添加这一行:
connect(ui->myNewButton, SIGNAL(clicked()), this, SLOT(Foo()));
编译错误是:
class UI::Viewer has no member named 'myNewButton'
并且QT Creator没有将该按钮列为ui->
的自动完成选项(即我没有简单地拼写错误的名称)。除了ui文件中的坐标和命名之外,myExistingButton
和myNewButton
的记录是相同的。可能导致这个问题的原因是什么?
答案 0 :(得分:1)
您是否正确设置了小部件父属性?
upon creation或explicitly setting it。
编辑:还要注意
答案 1 :(得分:1)
我假设您确实在.ui表单中添加了一个新按钮,并将其命名为myNewButton
,对吧?如果是这样,这可能是Qt Creator中的同步问题。您是否尝试过保存所有内容并重建(只是为了确保ui编译器被触发)您的应用程序?
答案 2 :(得分:1)
我看到您通过删除ui_viewer.h
解决了您的问题。但更简洁的方法是运行qMake
(来自Build
菜单)。当我遇到像您这样的错误时,我总是会这样做 - 有时Qt Creator
会忘记在qMake
运行{。}}。
答案 3 :(得分:0)
我通过删除生成的文件ui_viewer.h
和然后重建来修复此问题。