boolisExitPeople(constQStringpeopleId);
signals:
voidmodelDataChanged();
private:
QList<People>m_peoples;
};
3。3。1分组模块
分组模块在设计中引用了3个文件,GroupBase类,Group类,GroupWidget类。
GroupBase类是一个基础类,构造了成员编号m_id,m_name两个属性及对此属性的设置参数的方法。
classGroupBase
{
public:
GroupBase();
QStringid()const;
voidsetId(constQString&id);
QStringname()const;
voidsetName(constQString&name);
booloperator==(constGroupBase&base)const;
private:
QStringm_id;
QStringm_name;
};
Group类以GroupBase类为成员数据类型,构造一个分组下联系人的列表
classGroup
{
public:
Group();
GroupBasegroupBase()const;
voidsetGroupBase(constGroupBase&groupBase);
booldeletePeople(constQString&id);
QList<People>peoples()const;
voidsetPeoples(constQList<People>&peoples);
private:
GroupBasem_groupBase;
QList<People>m_peoples;
};
GroupWidget类功能是构造联系人右键目录及相关的方法,比如addGroup()、deleteGroup();。
classGroupWidget:publicQWidget
{
Q_OBJECT
public:
GroupWidget(QWidget*parent=0);
voidinitWidget();
QList<Group>groupInfos()const;
voidsetGroupInfos(constQList<Group>&groupInfos);
private:
voidallGroupBaseInfo();
QList<GroupBase>otherGroupBaseInfo(constGroupBase&info);
voidaddWidgetGroup(constGroup&);
voidupdateGroupBaseInfos(constGroupBase&baseInfo,boolflag);
signals:
voiddeleteCurGroup(constGroupBase&);
privateslots:
voidshowGroupListView(boolflag,constGroupBase&baseInfo);
voiddeleteGroup(constGroupBase&);
voidaddGroup();
voidreNameGroup(constGroupBase&);
voiddeletePeople(constQString&groupId,constQString&peopleId);
voidmoveNewGroup(constQString&fromBaseInfo,constPeople&patient,
constQString&toBaseInfo);
voiddeleteGroupPeople(constQString&patientId,constQString&groupId);
private:论文网
QList<Group>m_groupInfos;
QList<GroupBase>m_groupbaseInfos;
QWidget*m_widget;
QVBoxLayout*m_layoutForList;
QList<GroupTitleWidget*>m_groupTitles;
QList<GroupListView*>m_listViews;
};
3。3。2联系人模块
对联系人的操作共分为两个模块People类和GroupListView类。
People类与Group类相似,都是为基础属性赋值操作
classPeople
{
public:
People();
QStringid()const;
voidsetId(constQString&id);
QStringname()const;
voidsetName(constQString&name);
QStringimage()const;
voidsetImage(constQString&image);
boolisValid()const;
private:
QStringm_id;
QStringm_name;
QStringm_image;
};
GroupListView类
GroupListView类功能是构造联系人右键目录及相关的方法,比如initContentMenu()、movePeopleToOtherGroup()。
classGroupListView:publicQListView
{
Q_OBJECT
public:
explicitGroupListView(QWidget*parent=0);
~GroupListView();
QList<GroupBase>otherGroupInfos()const;
voidsetOtherGroupInfos(constQList<GroupBase>&otherGroupInfos);
GroupBasebaseInfo()const;
voidsetBaseInfo(constGroupBase&baseInfo);