मेरे पास लिनक्स पर एक क्यूटी एप्लीकेशन है।प्रोग्राम कैसे करें कस्टम कीबोर्ड शॉर्टकट्स
मैं कस्टम कीबोर्ड शॉर्टकट कार्यक्रम करना चाहते हैं इस तरह के के रूप में CTRL - क्यू जो फिर एक सबरूटीन जो कार्यक्रम इस्तीफा कॉल करेंगे।
मैं यह कैसे कर सकता हूं?
मेरे पास लिनक्स पर एक क्यूटी एप्लीकेशन है।प्रोग्राम कैसे करें कस्टम कीबोर्ड शॉर्टकट्स
मैं कस्टम कीबोर्ड शॉर्टकट कार्यक्रम करना चाहते हैं इस तरह के के रूप में CTRL - क्यू जो फिर एक सबरूटीन जो कार्यक्रम इस्तीफा कॉल करेंगे।
मैं यह कैसे कर सकता हूं?
इस प्रयास करें:
new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this, SLOT(close()));
आप इसे अपने फार्म की contructor में बना सकते हैं। यह शॉर्टकट तक पहुंचने के लिए आपकी कक्षा को पॉइंटर के साथ प्रदूषित करने से बचने की अनुमति देता है। यदि आप इसे बाद में एक्सेस करना चाहते हैं तो भी आप शॉर्टकट में पॉइंटर जोड़ना चाहेंगे। एप्लिकेशन बाहर निकलने पर शॉर्टकट हटा दिया जाएगा, क्योंकि यह इसके लिए अभिभावक है। यह स्वचालित रूप से कनेक्शन करता है, आपको इसे मैन्युअल रूप से करने की ज़रूरत नहीं है।
यह भी ध्यान रखें कि विंडोज़ पर कोई डिफ़ॉल्ट Ctrl + Q अनुक्रम नहीं है, लेकिन लिनक्स और मैकोज़ पर एक है।
चूंकि CTRL-Q में मेनू आइटम या टूलबार प्रविष्टि हो सकती है, मुझे लगता है कि आप QAction ढूंढ रहे हैं। http://doc.qt.digia.com/4.6/qaction.html#shortcut-prop
ले:
इस देखें
QAction
काम पर का उदाहरण:
QAction *foo = new QAction(this);
foo->setShortcut(Qt::Key_Q | Qt::CTRL);
connect(foo, SIGNAL(triggered()), this, SLOT(close()));
this->addAction(foo);
बस एक नया क्यूटी जीयूआई परियोजना बनाने (मैं QtCreator प्रयोग किया जाता) और पर वह कोड जोड़ें मुख्य खिड़की के निर्माता और इसे उम्मीद के अनुसार काम करना चाहिए।
कृपया ध्यान दें कि स्मृति को मुक्त करने की कोई आवश्यकता नहीं है क्योंकि क्यूटी फ्रेमवर्क उस पर ध्यान रखेगा जब ऐप बंद हो जाएगा।
यह फ़ाइल मेनू बनाने और सिग्नल और स्लॉट के बीच कार्रवाई और कनेक्शन से बाहर निकलने का नमूना है।
QMenu *fileMenu = new QMenu(trUtf8("&File"));
QAction *actionExit = new QAction(tr("E&xit"));
//set "ctrl+q shortcut for exit action
actionExit->setShortcut(tr("CTRL+Q"));
//connect triggered signal of actionExit to close slot
connect(actionExit, SIGNAL(triggered()), this, SLOT(close()));
//add actionExit into file menu
fileMenu->addAction(actionExit);
आधुनिक क्यूटी के लिए (5.9 अब के रूप में):
void MainWindow::bootStrap()
{
// create shortcut
QShortcut *shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
// connect its 'activated' signal to your function 'foo'
QObject::connect(shortcut, &QShortcut::activated,
this, &MainWindow::foo);
}
// somewhere in the code, define the function 'foo'
void MainWindow::foo()
{
qDebug() << "Ctrl+Q pressed.";
}
#include <QShortcut>
के लिए मत भूलना।
आगे की जानकारी: http://doc.qt.io/qt-5/qshortcut.html
वहाँ इसे कैसे करना का एक उदाहरण है मैं अभी भी क्यूटी के साथ एक नोब हूं और मुझे उस वेब पेज से इसे समझने में परेशानी हो रही है। वे ज्यादातर मेनू या टूलबार में कोई कार्रवाई जोड़ने के बारे में बात करते हैं। लेकिन मेरे पास मेन्यू या टूलबार नहीं हैं। मैं शॉर्टकट को अपने ऐप में मुख्य विंडो (एकमात्र विंडो) में काम करना चाहता हूं। –
@JB_User निश्चित रूप से, मैंने अपना जवाब संपादित किया। – Paul