0

編集
解決済み、初期化するのを忘れただけですfound_users

1 つのウィンドウに 2 つの 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()

私が提供した情報で十分だったと思います。

4

1 に答える 1

0

connect()表示されるエラー メッセージに、呼び出しが失敗した理由が示されます。

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

QListWidget* found_userscall に渡された送信者connect()が null であることを示しています。

おそらく初期化を忘れているはずfound_usersです。

于 2015-09-04T10:05:15.250 に答える