zoukankan      html  css  js  c++  java
  • 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();
    }


    
    
    
    
  • 相关阅读:
    Java内存模型与volatile
    Struts2验证框架的注意事项
    利用Java编写简单的WebService实例
    加速Java应用开发速度1——加速spring/hibernate应用调试时启动速度
    Java关键字synchronized详解
    JAVA对象的序列化与反序列化
    加速Java应用开发速度3——单元/集成测试+CI
    java程序性能优化之找出内存溢出元凶
    加速Java应用开发速度2——加速项目调试启动速度
    java实现动态切换上网IP (ADSL拨号上网)
  • 原文地址:https://www.cnblogs.com/zhoujgssp/p/7560589.html
Copyright © 2011-2022 走看看