有沒有辦法使用Qt訪問Windows 7進度條?我目前在Qt Creator中使用Qt 4.7.0。如何在Windows 7任務欄中顯示進度(使用Qt)?
我已經找到了Q7Goodies,但不幸的是它不是免費的。所以它似乎是可能的 - 我怎樣才能手動訪問進度條(沒有Visual Studio)?
有沒有辦法使用Qt訪問Windows 7進度條?我目前在Qt Creator中使用Qt 4.7.0。如何在Windows 7任務欄中顯示進度(使用Qt)?
我已經找到了Q7Goodies,但不幸的是它不是免費的。所以它似乎是可能的 - 我怎樣才能手動訪問進度條(沒有Visual Studio)?
我認爲他們使用Win7 API函數並將它們封裝在它們的庫中。您可以手動添加這些標題並使用它們。在這裏你可以找到一個幫助主題和演示項目:codeproject.com/KB/vista/SevenGoodiesTaskbarStatus.aspx
但它只適用於win7。不是跨平臺。祝你好運
更新2014年3月5日
這個問題被問了很久以前,因爲很多事情都改變了。對於那些今天(2014年初)自問相同的問題,那麼我個人的回答是,Qt 5完全支持任務欄中的進度以及不同類型的美麗附加功能。有關詳細信息,請參見QWinTaskbarProgress(upd nov 28,2016)
非常感謝。我還沒有想出如何做到這一點,特別是對於QtCreater而言似乎很難。也許有人能夠使用該帖子:http://www.qtcentre.org/threads/26974-Qt-and-windows-7-new-Api?p=128880#post128880。我想我必須使用Visual Studio來嘗試它... – Nedec 2010-12-08 06:54:46
您可以使用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
ITaskbarList3 :: SetProgressValue()。 – 2010-12-03 20:28:07