【发布时间】:2015-07-07 15:51:54
【问题描述】:
我正在 Qt Designer 中编写我的第一个程序,但我无法将 QLineEdit 文本更改为空。我想为这个操作使用分离线程,这样我就可以继续在程序的另一部分工作,而无需等待Sleep(5000) 函数的结束。但是当我想编译这段代码时,我得到了 3 个错误:
C2065:“ui”:未声明的标识符
C2227: left "->AutoWyl_textPotwierdzenie" 必须指向类型 class/struct/union/generic
C2227: left "->setText" 必须指向类型class/struct/union/generic
你能帮我解决这些错误吗?提前致谢。
这是代码有问题的部分:
{...
void autowyl_potwierdzenie_reset();
std::thread reset(autowyl_potwierdzenie_reset);
reset.detach();
}
void autowyl_potwierdzenie_reset()
{
Sleep(5000);
ui->Autowyl_textPotwierdzenie->setText(""); //3 errors
}
【问题讨论】:
-
我一般不使用QtDesigner,这里不多说。但是你为什么不使用
QTimer而不是线程呢?为什么不使用QThread而不是std::thread? -
@Miki,我使用 std::thread 是因为我从控制台编程中知道它,但谢谢我会努力学习它。我是 QT 的初学者,所以我没有听说过 QTimer。 - 但现在我会检查一下。您的链接 [我认为] 会有所帮助。感谢您的帮助:) 我会写,如果我的问题解决了。
-
我不知道如何修改这段代码。一切都不起作用。你能帮我解决这个问题吗?
-
我现在不能,也许明天:D。我的建议是从一个非常简单的项目开始,例如只显示一个 QLabel。然后添加一个 QPushButton 以在单击时更改标签文本。那么你应该在路上做你想做的事......