C++ QWinTaskbarProgress赢得';不显示

C++ QWinTaskbarProgress赢得';不显示,c++,windows,qt,qt5,qtwinextras,C++,Windows,Qt,Qt5,Qtwinextras,我正在使用windows7和Qt5.3.0 我在主窗口的构造函数中添加了以下内容,但任务栏上没有显示任何内容。我错过什么了吗 QWinTaskbarProgress * pTaskbarProgress = new QWinTaskbarProgress(this); pTaskbarProgress->setMinimum(0); pTaskbarProgress->setMaximum(100); pTaskbarProgress->setValue(50); pTaskb

我正在使用windows7和Qt5.3.0 我在主窗口的构造函数中添加了以下内容,但任务栏上没有显示任何内容。我错过什么了吗

QWinTaskbarProgress * pTaskbarProgress = new QWinTaskbarProgress(this);
pTaskbarProgress->setMinimum(0);
pTaskbarProgress->setMaximum(100);
pTaskbarProgress->setValue(50);
pTaskbarProgress->show();
见:


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

此类背后的历史是它是
QWinTaskbarButton的一部分,因此它与该类紧密耦合。您可以看到开始重构和解耦的相关上游提交:

您是对的,QWinTaskbarProgress的文档中没有太明确,因此这可能会在上游得到改进,但以及显示了这一点,即您必须替换这一行:

QWinTaskbarProgress * pTaskbarProgress = new QWinTaskbarProgress(this);
与:

您可能希望为任务栏按钮设置覆盖图标,并使用自定义图像或类似音乐播放器示例的功能:

pTaskbarButton->setOverlayIcon(style()->standardIcon(QStyle::SP_MediaPlay));

事实上,这好像是在打电话

button->setWindow(widget->windowHandle());
在QMainWindow中,构造函数不工作,即使在调用
setVisible(true)
show()
后,QWinTaskbarProgress也不会显示

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

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

    e->accept();
}

你解决问题了吗?那真的应该包括在里面。谢谢<代码>QMainWindow构造函数不起作用
这对我来说是正确的答案!
button->setWindow(widget->windowHandle());
void MainWindow::showEvent(QShowEvent *e)
{
#ifdef Q_OS_WIN32
    m_button->setWindow(windowHandle());
#endif

    e->accept();
}