क्यूटी में, जब कोई विजेट फोकस प्राप्त करता है, तो इसके बारे में अधिसूचना कैसे प्राप्त हो सकती है, इसलिए मैं कुछ कस्टम कोड निष्पादित कर सकता हूं? क्या इसके लिए कोई संकेत या घटना है?एक क्यूटी विजेट फोकस होने पर अधिसूचना/घटना/संकेत प्राप्त करें
उत्तर
क्यूटी 4.1 में पेश किए जाने पर ध्यान केंद्रित करते समय एक "फोकस चेंज" सिग्नल भेजा जाता है।
void QApplication::focusChanged(QWidget * old, QWidget * now)
संदर्भ के लिए, यहां Qt दस्तावेज़ों में फ़ंक्शन है: http://doc.qt.io/qt-5/qapplication.html#focusChanged – Hawkins
मैं इसके साथ खेलने के लिए होगा, लेकिन सिर्फ क्यूटी प्रलेखन को देखते हुए, वहाँ एक "focusInEvent":
यह वह ध्यान और एक प्राप्त फोकस खोने विजेट दो तर्क हैं, तो। यह एक घटना हैंडलर है।
यहां बताया गया है कि आप किस बारे में जानकारी प्राप्त करते हैं .... "क्यूटी सहायक" खोलें। इंडेक्स पर जाएं। एक "QLineEdit" में रखो। सभी विजेट पृष्ठों पर "विरासत सदस्यों समेत सभी सदस्यों की सूची" नामक एक बहुत ही उपयोगी लिंक है। यह सूची बहुत अच्छी है, क्योंकि इसमें विरासत में भी सामान है।
मैंने "फोकस" की त्वरित खोज की और इस विजेट के लिए फ़ोकस से संबंधित सभी चीज़ें पाईं।
QWidget :: setFocus() स्लॉट है, संकेत नहीं है। आप जांच सकते हैं कि QLineEdit focus property के साथ फ़ोकस में है या नहीं। जब टेक्स्ट बदल जाता है या संपादित किया जाता है, तो QLineEdit संकेतों को उत्सर्जित करता है, दस्तावेज़ देखें।
क्यूटी डिजाइनर WYSIWYG प्रोग्रामिंग के इस स्तर के लिए डिज़ाइन नहीं किया गया है।
C++ करें:
class LineEdit : public QLineEdit
{
virtual void focusInEvent(QFocusEvent*)
{}
};
आप क्यूटी में अजीब विभाजन के पर पहुंच गया है अगर आप प्रलेखन focusInEvent
पर देखने के एक स्लॉट यह है एक संरक्षित समारोह, आप इसे अगर आप ओवरराइड कर सकते हैं नहीं है आपके विजेट के उप-वर्ग को कार्यान्वित कर रहे हैं। यदि आप बस अपने विजेट में आने वाली घटना को पकड़ना चाहते हैं तो आप QObject::installEventFilter
का उपयोग कर सकते हैं, यह किसी भी तरह की घटनाओं को पकड़ने देता है।
कुछ अजीब कारण Trolltech के डेवलपर्स दो रास्ते, संकेत/स्लॉट और QEvent
आप वर्चुअल बेस फ़ंक्शन को ओवरराइड कर सकते हैं। यही कारण है कि घटनाएं आभासी कार्य हैं।Trolltech इसके बजाय सिग्नल का उपयोग करते हैं जब उस कार्यक्षमता के लिए विरासत उपयोगी होने की संभावना नहीं है। – mxcl
घटनाक्रम और सिग्नल/स्लॉट काफी अलग हैं। उदाहरण के लिए, ऑर्डर प्राप्त करने वाले ऑर्डर को स्पष्ट रूप से परिभाषित किया जाता है, और ईवेंट को संभालने के बाद प्रसंस्करण रोक दिया जाता है। –
सबसे आसान तरीका है के माध्यम से यूआई घटनाओं का प्रचार करने का निर्णय लिया के लिए QApplication करने के लिए एक स्लॉट कनेक्ट करने के लिए है :: संकेत focusChanged।
आप एन event filter
जोड़ सकते हैं।
यह QtCreator के साथ लिखे गए एप्लिकेशन का एक उदाहरण है। इस फॉर्म में QComboBox नाम combobox है।
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->comboBox->installEventFilter(this);
.
.
.
}
bool MainWindow::eventFilter(QObject *object, QEvent *event)
{
if (event->type() == QEvent::FocusOut)
{
if (object == ui->comboBox)
{
qWarning(object->objectName().toLatin1().data());
}
}
return false;
}
+1 बिल्कुल वही जो मैं खोज रहा था, धन्यवाद! – lostriebo
शायद ज़रुरत किसी में दो QMainWindow फोकस परिवर्तन की तलाश में। आप
if(e->type() == QEvent::WindowActivate)
{
//qDebug() << "Focus IN " << obj << e ;
}
- 1. एक क्यूटी विजेट ऑब्जेक्ट
- 2. क्यूटी: विजेट पर छवि दिखाएं
- 3. टिंकर विजेट को फोकस करें
- 4. क्यूटी - विजेट - पोजिशनिंग
- 5. क्यूटी त्वरित बनाम क्यूटी विजेट
- 6. फोकस होने पर एक WPF नियंत्रण को हाइलाइट करें
- 7. क्यूटी विजेट ओवरले
- 8. क्यूटी लेआउट से बच्चों को प्राप्त करें
- 9. क्यूटी में विजेट के बच्चे कैसे प्राप्त करते हैं?
- 10. क्यूटी डिजाइनर और डॉक विजेट
- 11. क्यूटी QMainWindow केंद्रीय विजेट हटाना
- 12. एक क्यूटी विजेट कब एक पेंटएवेंट मिलता है?
- 13. "सुंदर" क्यूटी कस्टम विजेट बनाना
- 14. क्यूटी दिखाएँ/छुपाएँ विजेट एनीमेशन
- 15. विशिष्ट TKinter एंट्री विजेट पर फोकस सेट करना
- 16. मुख्य धागा व्यस्त होने पर क्यूटी का काम कैसे करें?
- 17. प्रोग्राम पर फोकस नहीं होने पर बारकोड पढ़ें?
- 18. फोकस
- 19. क्यूटी विजेट अस्थायी रूप से पूर्णस्क्रीन
- 20. क्यूटी/क्यूटी-डिजाइनर प्रश्न: स्वत: आकार बदलने वाला विजेट
- 21. ईमेल प्राप्त होने पर एक ईवेंट को फायर करें
- 22. क्यूटी - मुख्य विजेट - ढेर या ढेर?
- 23. क्यूटी डिजाइनर में डॉक विजेट हटाएं?
- 24. क्यूटी 4: समायोजित करें
- 25. क्यूटी ग्राफिक्स देखें, छवि दिखाओ! विजेट
- 26. बाद में क्यूटी विजेट अपडेट लेकिन कब?
- 27. क्यूटी - कॉलिंग विजेट माता-पिता के स्लॉट
- 28. रुबी, क्यूटी और तृतीय पक्ष विजेट
- 29. स्थापित विजेट सूची कैसे प्राप्त करें?
- 30. क्यूटी ओपनजीएल- माउस के आधार पर ऑब्जेक्ट कैसे प्राप्त करें
विषय से बाहर का उपयोग कर सकते हैं; मैं उत्सुक हूं कि आपने सी ++ बिल्डर क्यों छोड़ा? – geo
मैंने प्रासंगिक घटनाओं को सूचित करने के लिए QWidget में उत्सर्जित संकेतों का सुझाव देने के लिए एक [जिरा टिकट] (http://bugreports.qt.nokia.com/browse/QTBUG-16732) बनाया है। (फोकसइन और फोकसऑट * * प्रासंगिक घटनाएं हैं)। कृपया अगर आप इस बारे में परवाह करते हैं और सुझाव देते हैं तो कृपया। धन्यवाद। –