2015-09-03 38 views
0

編輯
解決了,我只是忘了初始化found_users連接一個QListWidget選擇與另一個QListWidget

我有兩個QListWidget成一個單一的窗口。 左邊那個是我數據庫所有用戶的列表。
右側顯示與查詢結果相關的帳戶子集。
我希望右側的選擇反映在左側。
例如,如果我有左側

USR1
USR2
USR3
usr4

,我選擇右側列表 「USR3」,它應該是觸發的選擇「usr3」在左邊。

下面的代碼:
.H

class win_admin : public QWidget{ 
    Q_OBJECT 
private: 
    QListWidget* all_users; 
    QListWidget* found_users; 
public: 
[...] 
public slots: 
    void send_to_main_list(); 
[...] 
} 

的.cpp

connect (found_users, SIGNAL(itemSelectionChanged()), this, SLOT(send_to_main_list())); 
[...] 
void win_admin::send_to_main_list() { 
    QString usn=found_users->currentItem()->text(); 
    int i=0; 
    while (i<all_users->count() && all_users->item(i)->text()!=usn) { 
     ++i; 
    } 
    if (i<all_users->count()) if (i<all_users->count()) all_users->setCurrentRow(i); 
} 

,這不是爲我工作,當我選擇右邊的東西,他們說:

QObject::connect: Cannot connect (null)::itemSelectionChanged() to win_admin::send_to_main_list() 

我希望,我提供的信息足夠了。

+3

你初始化了'found_users'嗎? –

+0

哦,你是對的,我只是忘了那個。 使用該解決方案進行編輯。謝謝。 – Pado

回答

0

你得到的錯誤消息說明了爲什麼connect()調用失敗的原因。

QObject::connect: Cannot connect (null)::itemSelectionChanged() to win_admin::send_to_main_list()

這表明發件人QListWidget* found_users傳遞給connect()電話爲空。

你或許應該忘了初始化found_users