2013-12-14 8 views
6

में कस्टम स्लॉट पर सिग्नल वैल्यू को कैसे कनेक्ट किया जाए, मुझे QLineEdit से वैल्यू चेंज सिग्नल को प्रोग्राम स्लॉट पर कनेक्ट करने की आवश्यकता है। मुझे पता है कि क्यूटी डिजाइनर का उपयोग करके कनेक्शन कैसे करना है और ग्राफिकल इंटरफ़ेस के साथ कनेक्शन करना है, लेकिन मैं इसे प्रोग्रामेटिक रूप से करना चाहता हूं ताकि मैं सिग्नल और स्लॉट के बारे में अधिक जान सकूं।QTineEdit से QT

यह मेरे पास है जो काम नहीं करता है।

.cpp फ़ाइल

// constructor 
connect(myLineEdit, SIGNAL(valueChanged(static QString)), this, SLOT(customSlot())); 

void MainWindow::customSlot() 
{ 
    qDebug()<< "Calling Slot"; 
} 

ज फ़ाइल

private slots: 
    void customSlot(); 

क्या मैं यहाँ याद आ रही है?

धन्यवाद

उत्तर

15

QLineEditvalueChanged संकेत है, लेकिन textChanged के लिए (समर्थित संकेतों की पूरी सूची के लिए क्यूटी प्रलेखन देखें) प्रतीत नहीं होता। आपको अपने connect() फ़ंक्शन कॉल को भी बदलने की आवश्यकता है। यह होना चाहिए:

connect(myLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(customSlot())); 

आप की जरूरत है अपने स्लॉट में नया पाठ मान को संभालने, आप इसे customSlot(const QString &newValue) के रूप में के बजाय परिभाषित कर सकते हैं, तो आपके कनेक्शन की तरह दिखेगा:

connect(myLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(customSlot(const QString &))); 
+0

textChanged को valueChanged बदल दिया और QString का गठन करने के लिए स्थिर QString और काम किया। मुझे नहीं पता कि मुझे यह कैसे याद आया, विशेष रूप से स्थिर क्यूस्ट्रिंग (वाह), बहुत बहुत धन्यवाद। दूसरे उदाहरण के लिए भी बहुत धन्यवाद क्योंकि मैं पैरामीटर के उपयोग के बारे में भी सोच रहा था। बहुत बहुत धन्यवाद –

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

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