Hi����ӭ����Ƕ��ʽ��ѵ�߶�Ʒ�� - ����Զ����������<�����ܲ�����>��רעǶ��ʽ����ʦ����15�꣡
��ǰλ��: > ����Զ���������� > Ƕ��ʽѧϰ > ��ʦ���� > ��ϣ����QT�е�Ӧ�þ���
��ϣ����QT�е�Ӧ�þ���
ʱ�䣺2017-01-05���ߣ�����Զ��

��ϣ����Ǹ��ݹؼ���ֵ(Key value)��ֱ�ӽ��з��ʵ����ݽṹ��Ҳ����˵����ͨ���ѹؼ���ֵӳ�䵽����һ��λ�������ʼ�¼���Լӿ���ҵ��ٶȡ�

QHash��QT����е�һ�������࣬�ڲ�ά����һ�Ź�ϣ���QHash���ڲ���ϣ��ÿ�η���������ͬʱ���е��ڲ�Ԫ�ض����·��䵽Ͱ�ڡ����㹫ʽΪqHash(key)%QHash::capacity() (Ͱ�ĸ���)������ͨ��һ�����ӣ���˵��QHash���ʹ�á�

��������е������ڣ�����QQ�ĺ����б��˫��һ�����ѣ���������Ի��򣬱�����ʾchat with +�б���е����ݡ����˫��ͬһ�����ѣ�Ӧ��ֻ�е�һ�ε��Ի���

������

QString id = ui->listWidget->currentItem()->text();
        ChatDialog *dialog = new ChatDialog(id, this);
        dialog->show();

�����˫��ͬһ���б���ʱ������ͼ��ʾ��ͬ���Ĵ��ڵ����˶�����߼��ϲ������

Ϊ�˽��������⣬��Ҫ�õ���ϣ����õ�QHash�ࡣ

ʵ�ֹ������£�

1) ���ȣ���Ҫ�ڽ������У�����ͷ�ļ�.

#include <QHash>

2) �����м���һ��˽�г�Ա:

QHash<QString, ChatDialog *> chatFormHash;

3) ���źźͲ۵Ĺ���

QObject::connect(ui->listWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)),this, SLOT(newWindow()));

4) ʵ��newWindow()����

QString id = ui->listWidget->currentItem()->text();
        ChatDialog *dialog;
        if (this->chatFormHash.contains(id))
        {
                dialog = chatFormHash.value(id);
        }
        else
        {
                dialog = new ChatDialog(id, this);
                this->chatFormHash.insert(id, dialog);
        }
        dialog->show();

�б���е��б����ַ�������Ϊ��ϣ���е�keyֵ�����촰�ڵĵ�ַ��Ϊ��ϣ���value.����ϣ����û��ij��keyʱ������һ���´��ڡ����ڶ��Σ�˫��ͬһ���б���ʱ��ֱ�Ӵӹ�ϣ���в��Ҵ��ڵĵ�ַ���ɣ�����Ҫ�ٴδ������ͽ������������⡣�������£�

��������
�����б���������۽������ѱ����˿���������������վͬ����۵��֤ʵ��������