Chr*_*ris 4 c++ qt qtwinextras
我按照我发现的例子来使用QWinTaskbarProgress.我Qt Widgets Application在Qt Creator(Qt 5.3.1)中创建了一个标准,我mainwindow.cpp看起来像这样:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
m_taskbarButton = new QWinTaskbarButton(this);
m_taskbarButton->setWindow(windowHandle());
m_taskbarButton->setOverlayIcon(style()->standardIcon(QStyle::SP_MediaPlay));
m_taskbarProgress = m_taskbarButton->progress();
m_taskbarProgress->setVisible(true);
m_taskbarProgress->setRange(0, 100);
m_taskbarProgress->setValue(50);
}
MainWindow::~MainWindow()
{
delete ui;
}
Run Code Online (Sandbox Code Playgroud)
我希望50%在启动应用程序后覆盖任务栏图标并显示进度条,但任务栏看起来很正常,就好像没有编写任何代码一样.我究竟做错了什么?
小智 8
实际上,它似乎调用"m_taskbarButton-> setWindow(windowHandle());" 在QMainWindow中,构造函数不起作用,即使在调用setVisible(true)或show()之后,QWinTaskbarProgress也根本不会显示.
一旦Window显示如下,就必须调用它:
void MainWindow::showEvent(QShowEvent *e)
{
#ifdef Q_OS_WIN32
m_taskbarButton->setWindow(windowHandle());
#endif
e->accept();
}
Run Code Online (Sandbox Code Playgroud)