2010-03-04 20 views
11

QTableView arası bir seçimim var. Bağlantının çalışmasını sağlayamıyorum. Ben:QTableView selectionChanged

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)) 
); 

...

Çalışma zamanında "No Signal Signal" hatası alıyorum.

cevap

14

Sen SİNYAL ve SLOT makrolarından değişken isimleri kaldırmak gerekir: Bağlan esasen işlev imza bakıyor ve değişken adları onu şaşırtmak

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

.

+2

+1 "Bu" ifadesini (SIGNAL ve SLOTS arasındaki parametrede) unutmuş gibi görünüyorsunuz, değil mi? –

+0

Andy, sanırım bunu biraz anlayabiliyorum. Kaleb, teşekkürler efendim! Bir mücevher gibi çalışır :) –

+3

@Andy - Hayır, bilerek bıraktım. Yukarıdaki sözdizimi, alıcı "bu" olduğunda daha kısa ve eşdeğerdir. İki bağlantı vardır, bir bağlantı örneği yöntemi (kullandığım) ve statik bir yöntem. Daha fazla bilgi için dokümanlar bakın. –

İlgili konular