[英]QProgressDialog not showing text label
我正在尝试在Qt应用程序中处理某些内容时显示带有消息的窗口,因此我决定使用QProgressDialog
。
但是我有一个问题,文本标签没有显示: QProgressDialog没有显示文本标签
我的代码:
QProgressDialog progressDialog(this);
progressDialog.setWindowTitle("Cargando");
progressDialog.setLabelText("Cargando los datos del volumen, por favor espere");
progressDialog.setCancelButton(0);
progressDialog.show();
// DOING SOME STUFF
progressDialog.close();
我意识到,如果我使用progressDialog.exec()
而不是progressDialog.show()
,则会显示文本标签,但应用程序将被阻止。
有人可以帮我吗?
对话框未显示任何内容的原因可能是由于您正在执行“某些填充”。 如果您在主线程上执行此操作,则它将阻塞您的UI,并且对话框无法绘制其内容。
根据这些东西是什么,您有两种选择:
如果您在循环中执行某项操作,则只需在每次迭代中调用QApplication::processEvents
。
如果操作本身花费的时间更长或不是一个循环,则您将不得不在另一个线程上异步执行此操作。 例如,通过使用QtConcurrent::run
。 并发操作完成后,使用QFutureWatcher
关闭对话框
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.