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<XClient> *pList;
};
//cpp文件前面必须要加这个要不然编译过不去;
  QList<XClient>* 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()<<pList->count();
    for(  i=0;i<pList->count();i++);
    {
        qDebug()<<"pList->count()";
        XClient xc = pList->at(i);//注意这里是全局的静态的指针;在任何地方用这个指针不出错。就这么搞定; 
         qDebug()<<xc.ID;
        strGroupName = xc.strGroupName;
          qDebug()<<strGroupName;
        if(!mlist.contains(strGroupName))
        {
            mlist.append(strGroupName);

        }
    }
    return mlist.size();
}




原文地址:https://www.cnblogs.com/zhoujgssp/p/7560589.html