gpt4 book ai didi

c++ - 动态更改 QLineEdit TextBox 的内部循环

转载 作者:行者123 更新时间:2023-11-30 01:23:52 24 4
gpt4 key购买 nike

我正在构建一些运行 while 循环的代码,并在循环内尝试使用 QLineEdit 的 setText() 更改几个文本框的内容。但是,仅仅在循环中调用 setText 是行不通的;文本框只会在代码运行后更改它们的实际值,而不是在每次迭代时更改。

我对 C++ 或 Qt 几乎没有经验,但我正在从事的项目必须使用它们。有帮助吗?

编辑:我猜这一定很简单,我只是因为不熟悉/知识而遇到麻烦,但如果需要更多信息,我会很乐意提供!

最佳答案

问题是 QT 需要控制权返回到 UI 线程的事件循环,以便更新 QLineEdit 的视觉外观。运行事件循环的快速而肮脏的方法是在每次调用 setText() 之后添加 QCoreApplication::processEvents()。修复它的正确方法是将设置文本框值的阻塞进程移动到另一个线程,公开一个 updateText(QString text) 信号,将它连接到 TextBox 的 setText( const QString & text) 插槽并在您希望更新文本时发出该信号。

有关更多详细信息,请参阅我对类似问题的回答:unexplained delay after QProgressBar finish loading

您可能还想查看一些关于 QThreads 和 Qt 信号槽系统的文档:http://harmattan-dev.nokia.com/docs/library/html/qt4/threads-qobject.html

关于c++ - 动态更改 QLineEdit TextBox 的内部循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14404587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com