如何在Qt中更新GUI组件?

时间:2012-12-23 16:42:57

标签: qt

我正在将一组100张图片加载到QTableWidget。由于加载大约需要4秒钟,我想显示一个带有活动指示器或微调器的进度条(自定义条)等。如何通过信号和信号同时更新GUI和进度条。插槽,加载图像后?

2 个答案:

答案 0 :(得分:0)

您的事件循环正忙于执行主任务,因此无法处理您的请求。事件循环空闲后将调用所有插槽。您的选择是:

  1. 将慢处理移至另一个线程。这可能不是一个选项,因为你不能在非主线程中与Qt的小部件交互。
  2. 每次要应用GUI更改时,请调用QApplication::processEvents()。这是一种常见且简单的解决方案。此函数将执行您的插槽(如果任何调用被调用),更新GUI并返回执行流程给您。

答案 1 :(得分:0)

加载图片的更好方法是使用QThread在处理图片时发出信号,并将该信号连接到主窗口小部件中的插槽,here您会发现几个例子