将一个QListWidget选择与另一个QList Widget连接

Connect a QListWidget selection with another QListWidget

本文关键字:另一个 QList Widget 连接 选择 QListWidget 一个      更新时间:2023-10-16

编辑
解决了,我只是忘记初始化found_users

我在一个窗口中有两个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()

我希望,我提供的信息已经足够了。

您得到的错误消息显示connect()调用失败的原因。

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

表明传递给connect()调用的发送方QListWidget* found_users为空。

您可能应该忘记初始化found_users