2011-01-07 8 views
20

मैंने क्यूटी निर्माता का उपयोग करके एक जीयूआई बनाया है। यह विजेट खींचें और छोड़कर है। अब मैं सभी बटनों के लिए शॉर्टकट कुंजी असाइन करना चाहता हूं। क्या कोई यहां कृपया मुझे बता सकता है कि ऐसा कैसे करें? पहले ही, आपका बहुत धन्यवाद।बटन पर शॉर्टकट कुंजियां असाइन करें - क्यूटी सी ++

उत्तर

42

आपके बटनों में शायद उनके clicked() सिग्नल से जुड़ा हुआ स्लॉट है।

शॉर्टकट कुंजियां जोड़ने के लिए, आप बस एक शॉर्टकट कुंजी activated() उसी स्लॉट पर सिग्नल कनेक्ट करते हैं।

अपने कोड में, #include <QShortcut> और उसके बाद आप इस तरह एक स्लॉट के लिए एक शॉर्टकट कुंजी को जोड़ने के लिए सक्षम हो जाएगा:

QShortcut *shortcut = new QShortcut(QKeySequence("Ctrl+O"), parent); 
QObject::connect(shortcut, SIGNAL(activated()), receiver, SLOT(yourSlotHere())); 

कहाँ माता पिता अपने शॉर्टकट (उदाहरण के लिए मुख्य विंडो) की मूल है, yourSlotHere() स्लॉट का नाम है जिसे आप शॉर्टकट कॉल करना चाहते हैं, और receiver ऑब्जेक्ट जहां yourSlotHere() है।

"Ctrl+O" को जो भी शॉर्टकट आप असाइन करना चाहते हैं उसे बदलें।

आप QShortcut के लिए प्रलेखन पृष्ठ पर और जानकारी भी प्राप्त कर सकते हैं।

+2

क्या हम 'शॉर्टकट' ऑब्जेक्ट को लीक नहीं कर रहे हैं या क्या हम माता-पिता को निर्दिष्ट करते समय मुक्त हो जाते हैं? – Niklas

13

वैकल्पिक रूप से, यदि शॉर्टकट कुंजी बटन के पाठ में कुछ चरित्र से मेल खाती है, तो आप उस चरित्र में & प्रीपेड कर सकते हैं। यदि आप एक शाब्दिक & चाहते हैं, तो & & का उपयोग करें।

enter image description here

सुंदर काम .. यहां तक ​​कि अगर एक सा गाड़ी:

3

आज (Qt5.7), हम शॉर्टकट सीधे क्यूटी डिजाइनर में शॉर्टकट संपत्ति का उपयोग कर असाइन कर सकते हैं मैं "मान्य करने के लिए है "किसी अन्य विजेट पर स्विच करने से पहले एक ही विजेट की दूसरी संपत्ति पर क्लिक करके शॉर्टकट!

लेकिन यह काम करता है।

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