我正在使用 QT 4.8.5。我在使用 MinimumDuration 的 QProgressDialog 上遇到了一些问题。这是文档:http ://doc.qt.io/qt-4.8/qprogressdialog.html#minimumDuration-prop 。
1.使用以下代码进行测试。对话框根本不显示。但是文档说:“对话框将在 minimumDuration 时间后或一旦设置任何进度后弹出”。
QProgressDialog* dlg = new QProgressDialog("Test", "cancel", 0, 10);
dlg->setMinimumDuration(8000);
2.使用以下代码进行测试。对话框在 8 秒后显示。但是文档说:“对话框将在 minimumDuration 时间后或设置任何进度后弹出”。尽管文档的行为有所不同,但我认为当前的行为是可以接受的。
QProgressDialog* dlg = new QProgressDialog("Test", "cancel", 0, 10);
dlg->setMinimumDuration(8000);
dlg->setValue(0);
3.使用以下代码进行测试。该对话框永远不会显示。但是文档说:“对话框将在 minimumDuration 时间后或一旦设置任何进度后弹出”。
QProgressDialog* dlg = new QProgressDialog("Test", "cancel", 0, 10);
dlg->setMinimumDuration(8000);
dlg->setValue(1);
4.使用以下代码进行测试。行为与第 2 项相同。
QProgressDialog* dlg = new QProgressDialog("Test", "cancel", 0, 10);
dlg->setMinimumDuration(8000);
dlg->setValue(0);
dlg->setValue(1);
5.使用以下代码进行测试。将进度值设置为 1 后立即显示对话框。为什么 Sleep() 函数会影响此处的行为?
QProgressDialog* dlg = new QProgressDialog("Test", "cancel", 0, 10);
dlg->setMinimumDuration(8000);
dlg->setValue(0);
::Sleep(static_cast<DWORD>(1000));
dlg->setValue(1);
6.使用下面的代码进行测试。对话框立即显示,但我将 MinimumDuration 设置为 5。有问题吗?
QProgressDialog* dialog = new QProgressDialog("Message", "Close", 1, 10);
dialog->setMinimumDuration(5000);
dialog->setValue(0);
dialog->setValue(1);
我在Windoes 7上测试。有什么问题?什么是正确的行为?