【问题标题】:How to change the text of QLineEdit while QTableWidget is being updating with data?QTableWidget 正在使用数据更新时如何更改 QLineEdit 的文本?
【发布时间】:2017-05-29 09:57:09
【问题描述】:

enter image description here我正在创建一个 Qt 应用程序,其中有一个 QTableWidget 和一个 QLineEditQTableWidget 由具有大量数据的线程更新,这需要时间。不幸的是,QTableWidget 正在更新,QLineEdit 变为禁用。表示用户无法更改 QLineEdit 中的文本,直到 QTableWidgit 更新。所以,我的问题是,有没有一种方法可以让用户在更新 QTableWidget 时更改文本。

这是主窗口截图。也许是因为主窗口是一个单线程,这就是Qtablewidget 禁用其他所有东西的原因。

【问题讨论】:

  • 用这么少的信息是不可能回答的。可能发生的情况是您的 QTableWidget 由于插入次数过多而生成了太多事件。你为什么要从一个线程中操作一个小部件超出了我的理解。
  • 我添加了主窗口的截图
  • 可能是因为主窗口是一个线程,这就是为什么 qtablewidget 在更新时禁用所有其他小部件。
  • 我们需要的是代码。至少与 QTableWidget 的连接、行和列方面的数据量、完成 ui 所需的时间。

标签: qt qtablewidget qlineedit


【解决方案1】:

没有源代码很难说,但很简单:

QTableWidget 不会禁用 QLineEdit

禁用 QLineEdit 的是您的代码,而不是 Qt。简单地说:

QTableWidget 更新时不要禁用 QLineEdit。

【讨论】:

  • 我添加了主窗口的截图
  • 截图没有告诉我任何关于你自己的代码
  • 我知道我没有禁用 QLineEdit。也许是因为主窗口是一个单线程,这就是为什么 qtablewidget 在更新时禁用所有其他小部件。
  • 所以,如果有办法将小部件放在不同的线程中,然后进行更新,那也许可以工作。
  • qtablewidget 不会禁用任何东西,您的 代码 在运行模型更新时可能会运行很长时间,以至于屏幕没有更新。
猜你喜欢
  • 2019-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-25
  • 1970-01-01
  • 1970-01-01
  • 2013-01-03
  • 2012-02-01
相关资源
最近更新 更多