QT5通讯录管理系统的设计+源代码(4)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

QT5通讯录管理系统的设计+源代码(4)

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); (责任编辑:qin)