C++ QWinTaskbarProgress赢得';不显示
我正在使用windows7和Qt5.3.0 我在主窗口的构造函数中添加了以下内容,但任务栏上没有显示任何内容。我错过什么了吗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
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();
}