qt开发新问题QList使⽤⼩记
QList应该是很好⽤的。这是理论。实际上也好⽤ 。我要把类放到QList能做到吗?
class XClient{
public:XClient();
XClient (const XClient &xc);
// bool operator<(const XClient& c1, const XClient &c2) const;int operator==(const XClient & c2 )const;//⽐较数组的相等性// int operator!=(const XClient &)const;//⽐较数组的不等性// int &operator[](int);//下标运算符int id;
public: //站点基本信息;
XCommStyle CommStyle ;//主通讯⽅式
XCommStyle BakCommStyle ;//备份通讯⽅式XClientStyle ClientStyle ;//⾃动站采集器的类型bool bManual ;//是否有⼈职守站QString Name ;//站点名称QString ID ;//区站号
double fX ;//台站站点的 经度double fY ;//台站站点的 纬度int nX ;//站点显⽰的 屏幕横坐标int nY ;//站点显⽰的 屏幕纵坐标};
这样⼀个类 ;在头⽂件⾥⾯定义 ;
class XClientGroups{public:
XClientGroups();
static QList *pList;};//cpp⽂件前⾯必须要加这个要不然编译过不去; QList* XClientGroups::pList ; XClient * XClientGroups::ppList ;XClientGroups::XClientGroups(){ppList=NULL;}
通过参数把⼤量的类信息读出来。加到链表
pList⾥⾯去,结果在别的地⽅利⽤这个类可以。反正是static类型的。要⽤的时候先包含头⽂件 ,在直接打类名称两个冒号就能⽤这个pList了 ; 说实在的要把类加到列表⾥⾯。在程序任何地⽅访问这些列表是⾮常常⽤的⼀个问题。要⽤的时候很简单了
int XClientGroups::mGetGroupsNames(QStringList & mlist){
mlist.clear();
if(pList==NULL || pList->count()<=0) {
return 0; }
QString strGroupName = \"\"; int i=0; qDebug()<count(); for( i=0;icount();i++); {qDebug()<<\"pList->count()\";
XClient xc = pList->at(i);//注意这⾥是全局的静态的指针;在任何地⽅⽤这个指针不出错。就这么搞定; qDebug()<strGroupName = xc.strGroupName; qDebug()<mlist.append(strGroupName); } }return mlist.size();}