वर्तमान में Qt C ++ से लॉन्चर की कार्यक्षमता तक पहुँचने के लिए एक विशिष्ट पुस्तकालय नहीं है। लिबुनिटी लाइब्रेरी है, लेकिन यह बहुत ही शानदार है, इसलिए यह अपेक्षाकृत क्यूटी के लिए अनुपयुक्त है। जैसा कि अन्य उत्तर में उल्लेख किया गया है, लांचर का उपयोग करने के लिए सबसे सुविधाजनक तरीका है निम्न स्तर के डबस एपीआई है ।
लॉन्चर को कैसे एकीकृत किया जाए इसकी मूल अवधारणा है कि क्या आप लॉन्चर को एप्लिकेशन आईडी और गुणों के एक सेट के साथ सिग्नल भेजते हैं। एप्लिकेशन आईडी .desktop फ़ाइल का फ़ाइल नाम है, जिसे आमतौर पर इसमें संग्रहीत किया जाता है /usr/share/applications
:
//create the signal
QDBusMessage signal = QDBusMessage::createSignal("/",
"com.canonical.Unity.LauncherEntry", "Update");
//set the application ID
signal << "application://firefox.desktop";
//set the properties
QVariantMap properties;
...
signal << properties;
//send the signal
QDBusConnection::sessionBus().send(signal);
काउंटर
काउंटर सेट करने के लिए, आपको गुण सेट करने की आवश्यकता होगी जैसे कि गिनती दिखाई दे रही है और इसे वांछित पूर्णांक मान दें:
qint64 counter_value = 1;
properties["count-visible"] = true; //set the count to visible
properties["count"] = counter_value; //set the counter value
प्रगति पट्टी
प्रगति बार को सेट करने के लिए, आपको गुण सेट करने की आवश्यकता होगी जैसे कि प्रगति दिखाई दे रही है और इसे वांछित डबल मान दें:
double progress_value = 0.5;
properties["progress-visible"] = true; //set the progress bar to visible
properties["progress"] = progress_value; //set the progress value
त्वरित सूची
क्विज़लिस्ट को dbusmenu Qt लाइब्रेरी का उपयोग करके सेट किया जा सकता है। आपको हेडर फ़ाइल को शामिल करना होगा:
#include <dbusmenuexporter.h>
क्विकलिस्ट QMenu
Qt में एक मेनू के रूप में बनाया गया है। यह मेनू एक का उपयोग करके dbusmenu पर 'निर्यात' हैDBusMenuExporter
ऑब्जेक्ट । निर्यात करते समय, आप इस ऑब्जेक्ट को एक अनोखा पथ देते हैं और फिर उस पथ को लॉन्चर आइटम को बताने के लिए संदर्भित करते हैं, जो मेनू में क्विकलिस्ट के रूप में प्रदर्शित होता है।
अपने मुख्य विंडो क्लास घोषणा में, निम्न उदाहरण चर जोड़ें:
QMenu *quicklist;
DBusMenuExporter *quicklist_exporter;
फिर, निर्माण कार्य में:
quicklist = new QMenu(this);
//exports the menu over dbus using the object: /com/me/myapp/quicklist
quicklist_exporter = new DBusMenuExporter("/com/me/myapp/quicklist", quicklist);
मेनू में आइटम जोड़ने के लिए, [QAction] (http: / /qt-project.org/doc/qt-5.0/qtwidgets/qaction.html) ऑब्जेक्ट।
लॉन्चर आइकन की क्विकलिस्ट सेट करने के लिए, सिग्नल की 'क्विकलिस्ट' संपत्ति सेट करें:
properties["quicklist"] = "/com/me/myapp/quicklist";
प्रोजेक्ट फ़ाइल को कॉन्फ़िगर करना
आपको dbus समर्थन जोड़ने के लिए .pro फ़ाइल को कॉन्फ़िगर करने की आवश्यकता होगी QT += dbus
:। क्विकलिस्ट समर्थन के साथ निर्माण करने के लिए, आपको dbusmenu-qt विकास पुस्तकालयों ( libdbusmenu*dev
) को स्थापित करने की आवश्यकता होगी । फिर आप dbusmenu लाइब्रेरी को शामिल करने के लिए प्रोजेक्ट फ़ाइल में निम्नलिखित जोड़ सकते हैं:
#import the dbusmenu-qt library for quicklists
greaterThan(QT_MAJOR_VERSION, 4) {
INCLUDEPATH += /usr/include/dbusmenu-qt5/
LIBS += -ldbusmenu-qt5
} else {
INCLUDEPATH += /usr/include/dbusmenu-qt/
LIBS += -ldbusmenu-qt
}
उदाहरण अनुप्रयोग
Qt से सभी लॉन्चर कार्यक्षमता का उपयोग करके एक पूर्ण उदाहरण देखने के लिए, इस Github प्रोजेक्ट को देखें ।