2014-07-19 6 views
10

मैं windows7 और Qt5.3.0 का उपयोग कर रहा हूं, मैंने अपने मेनविंडो के कन्स्ट्रक्टर में नीचे जोड़ा लेकिन मेरे टास्कबार पर कुछ भी नहीं दिखाया गया। क्या मैं कुछ भुल गया?QWinTaskbar प्रगति नहीं दिखाएगी

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

आप समस्या को हल किया? – lpapp

उत्तर

7

example in the documentation देखें:

QWinTaskbarButton *button = new QWinTaskbarButton(widget); 
button->setWindow(widget->windowHandle()); 
button->setOverlayIcon(QIcon(":/loading.png")); 

QWinTaskbarProgress *progress = button->progress(); 
progress->setVisible(true); 
progress->setValue(50); 

मुझे लगता है कि आप एक QWinTaskbarButton के हिस्से के रूप में इस सेट करने के लिए की तरह।

+1

वास्तव में [दस्तावेज़ीकरण] में शामिल होना चाहिए (http://doc.qt.io/qt-5/qwintaskbarprogress.html)। –

3

इस वर्ग के पीछे इतिहास यह है कि यह QWinTaskbarButton का हिस्सा था, इस प्रकार यह उस वर्ग के साथ स्वाभाविक रूप से कसकर था। आप देख सकते हैं प्रासंगिक नदी के ऊपर प्रतिबद्ध है कि रिफैक्टरिंग और इसलिए decoupling शुरू किया:

Refactor QWinTaskbarProgress out of QWinTaskbarButton

आप सही है कि यह QWinTaskbarProgress 'दस्तावेज में भी स्पष्ट नहीं है, इसलिए इस संभावित नदी के ऊपर सुधार किया जा सकता है, लेकिन QWinTaskbarButton example के रूप में

QWinTaskbarProgress * pTaskbarProgress = new QWinTaskbarProgress(this); 

साथ:

QWinTaskbarButton * pTaskbarButton = new QWinTaskbarButton(this); 
pTaskbarButton->setWindow(windowHandle()); 
QWinTaskbarProgress * pTaskbarProgress = pTaskbarButton->progress(); 
01 में अच्छी तरह से Music Player example बिंदु से पता चलता है, अर्थात् आप इस लाइन को बदलने के लिए

आप या तो एक कस्टम छवि या क्या संगीत प्लेयर उदाहरण की तरह कुछ के साथ टास्कबार बटन के लिए भी ओवरले आइकन बनाना चाहेंगे करता है:

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

वास्तव में, यह

button->setWindow(widget->windowHandle()); 
बुला की तरह लगता है

QMainWindow कन्स्ट्रक्टर में काम नहीं करता है और QWinTaskbar प्रगति setVisible(true) या show() पर कॉल करने के बाद भी बिल्कुल दिखाई नहीं देगी।

QMainWindow निर्माता इसे एक बार विंडो में की तरह दिखाया गया है के नाम से जाना है में बनाया था, तो:

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

    e->accept(); 
} 
+0

अच्छा! यह मेरे लिए चाल थी। – Inverse

संबंधित मुद्दे