2015-09-03 40 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