有没有办法用Qt访问Windows 7进度条?我目前正在使用Qt 4.7.0和Qt Creator。
我已经找到Q7Goodies,但不幸的是它不是免费的。所以似乎有可能 - 如何手动访问进度条(没有Visual Studio)?
答案 0 :(得分:11)
我认为他们使用了Win7 API函数并将它们封装在它们的库中。您可以手动包含这些标题并使用它们。在这里,您可以找到帮助主题和演示项目:codeproject.com/KB/vista/SevenGoodiesTaskbarStatus.aspx
但它仅适用于win7。不跨平台。祝你好运
2014年3月5日更新
很久以前就提出过这个问题,很多事情都发生了变化。对于那些今天(2014年初)问自己同样问题的人,我个人的回答是Qt 5完全支持任务栏的进展和不同类型的美丽演员。有关详情,请参阅QWinTaskbarProgress(更新时间2016年11月28日)
答案 1 :(得分:1)
您可以使用QWinTaskbarProgress
课程。要使用此类,您需要在.pro文件中添加win32:QT += winextras
。
以下示例代码显示了如何在Windows任务栏(inspired from this example)中显示QProgressBar
的值:
#ifdef _WIN32 //The _WIN32 macro is automatically generated when compiling for Windows
#include <QWinTaskbarProgress>
#include <QWinTaskbarButton>
#endif
QProgressBar *progressBar = new QProgressBar;
progressBar->show();
#ifdef _WIN32
QWinTaskbarButton *windowsTaskbarButton = new QWinTaskbarButton; //Create the taskbar button which will show the progress
windowsTaskbarButton->setWindow(progressBar->windowHandle()); //Associate the taskbar button to the progress bar, assuming that the progress bar is its own window
QWinTaskbarProgress *windowsTaskbarProgress = windowsTaskbarButton->progress();
windowsTaskbarProgress->show();
QObject::connect(loadingWindow, &QProgressBar::valueChanged, [windowsTaskbarProgress](int value){
windowsTaskbarProgress->setValue(value); //Change the value of the progress in the taskbar when the value of the progress bar changes
});
#endif