2010-03-04 11 views
11

मेरे पास QTableView है कि मुझे चयन प्राप्त करने की आवश्यकता है। मुझे कनेक्ट काम मिल रहा है प्रतीत नहीं होता है। मेरे पास है:QTableView चयनChanged

MyWidget.h

...

protected slots: 
void slotLoadTransaction(const QItemSelection & selected, const QItemSelection & deselected); 
private: 
QTableView table; 

...

MyWidget.cpp

...

connect(
    table->selectionModel(), 
    SIGNAL(selectionChanged(const QItemSelection & selected, const QItemSelection & deselected)), 
    this, 
    SLOT(slotLoadTransaction(const QItemSelection & selected, const QItemSelection & deselected)) 
); 

...

रनटाइम पर, मुझे "ऐसी कोई सिग्नल" त्रुटियां नहीं मिलतीं।

उत्तर

14

आप संकेत और स्लॉट मैक्रो से चर नाम हटाने की जरूरत:

connect(
    table->selectionModel(), 
    SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), 
    SLOT(slotLoadTransaction(const QItemSelection &, const QItemSelection &)) 
); 

कनेक्ट अनिवार्य रूप से समारोह हस्ताक्षर में दिख रही है और चर नाम यह भ्रमित।

+2

+1 आप अपने कथन में "यह" भूल गए हैं (सिग्नल और एसएलओटीएस के बीच पैरामीटर), है ना? –

+0

एंडी, मुझे लगता है कि मैं उस छोटे से बाहर आ सकता हूं। कालेब, धन्यवाद श्रीमान! एक गहने की तरह काम करता है :) –

+3

@ एंडी - नहीं, मैंने उद्देश्य से इसे छोड़ दिया। जब भी प्राप्तकर्ता "यह" होता है तो उपर्युक्त वाक्यविन्यास अधिक संक्षिप्त और समतुल्य होता है। दो कनेक्ट हैं, एक कनेक्ट इंस्टेंस विधि (जिसे मैंने उपयोग किया) और एक स्थिर विधि है। अधिक जानकारी के लिए दस्तावेज़ देखें। –

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