QWinTaskbarProgress不会显示

K--*_*K-- 10 c++ windows qt qt5 qtwinextras

我正在使用windows7和Qt5.3.0,我在下面添加到我的MainWindow的构造函数中,但我的任务栏上没有显示任何内容.我错过了什么?

QWinTaskbarProgress * pTaskbarProgress = new QWinTaskbarProgress(this);
pTaskbarProgress->setMinimum(0);
pTaskbarProgress->setMaximum(100);
pTaskbarProgress->setValue(50);
pTaskbarProgress->show();
Run Code Online (Sandbox Code Playgroud)

小智 10

事实上,它似乎在呼唤

button->setWindow(widget->windowHandle());
Run Code Online (Sandbox Code Playgroud)

在QMainWindow的构造函数不工作,甚至调用后QWinTaskbarProgress将不会显示在所有setVisible(true)show().

如果在QMainWindow构造函数中创建,则必须在窗口显示后调用它,如:

void MainWindow::showEvent(QShowEvent *e)
{
#ifdef Q_OS_WIN32
    m_button->setWindow(windowHandle());
#endif

    e->accept();
}
Run Code Online (Sandbox Code Playgroud)


onl*_*nli 8

请参阅文档中示例:

QWinTaskbarButton *button = new QWinTaskbarButton(widget);
button->setWindow(widget->windowHandle());
button->setOverlayIcon(QIcon(":/loading.png"));

QWinTaskbarProgress *progress = button->progress();
progress->setVisible(true);
progress->setValue(50);
Run Code Online (Sandbox Code Playgroud)

在我看来,你必须将其设置为QWinTaskbarButton的一部分.