Qt 小技巧

来源:互联网 发布:淘宝有什么免费推广 编辑:程序博客网 时间:2024/06/05 16:44
  1. 打印系统本地的时间长格式显示
qDebug() << QDateTime::currentDateTime().toString(Qt::SystemLocaleLongDate);//中文环境下  "2016年6月21日 13:41:11"//英文环境下 "Tuesday, June 21, 2016 1:42:19 PM CST"
  1. 使用类静态成员变量

    1. 在类头文件中声明静态成员变量
      public: static Map<QByteArray,int> g_map
    2. 在类源文件中初始化静态成员变量
      QMap<QByteArray,int>TcpServer::g_map;
  2. 使用静态局部

    1. 只需要在函数内部声明并初始化即可。下次进入函数是,不会被重复初始化。static int i=0;
    2. 使用QByteArray截取指定数据,如:截取一条数据中0x7E~0x7E之间的数据
  3. 使用indexOf获取0x7E第二次出现的位置
    int pos=ba.indexOf(tmp,2);
    使用mid截取数据mid(0,pos),返回的字节数组即为目标数据
    tmp = ba.mid(0,pos);
    还可以使用remove来删除对应的数据 //remove 删除[0-pos]区间中的数据
    ba.remove(0,pos);
  4. 使用qDeleteAll某个区间内的所有项。这个项的类型必须是指针类型(如QWidget*),而普通的clear只能用于释放项所在的内存
QList<Employee *> list;list.append(new Employee("Blackpool", "Stephen"));list.append(new Employee("Twist", "Oliver"));qDeleteAll(list.begin(), list.end());list.clear();
  1. 使用系统默认程序打开对应的文件
 QDesktopServices::openUrl(QUrl("file:///C:/HaxLogs.txt")); //打开文本QDesktopServices::openUrl(QUrl("www.163.com")); //打开网站
  1. 错误:ui_mainwindow.h:No such file or directory
    • 此时需要自己手动的使用uic工具来创建ui_**.h的文件。
    • 如果需要创建的文件过多的话,那就毁掉pro,Makefile等文件,重新走一遍qmake的流程
  2. 控件覆盖问题
    ui->checkBox->raise();
  3. 可以将一个类做成转换为另一个类。使用这玩意,推广类
    这里写图片描述
  4. 使用布局以主窗口为父对象,可是控件自动适应主窗口
1. QVBoxLayout * layout = new QVBoxLayout(this);2. layout->addWidget(ui->qwt);
  1. time_t 与 QDateTime的转换
1. QDateTime::currentDateTime().toTime_t()2. QDateTime::fromTime_t(Current_time_t).time().toString();
  1. 避免编译器的变量未使用警告 Avoid “unused parameter” warnings的方法
    • 使用Q_UNUSED ( name )宏
    • 使用 void ( name )
    • 在pro工程文件最后加入如下代码:未用过,但认为也可以QMAKE_CXXFLAGS += -Wno-unused-parameter
  2. 当不能返回一个NULL指针是,就返回一个空的函数类型的值。
    函数返回值为,CustomClass类型,那么可以返回一个CustomClass()
  3. 调色板:QPalette,可以在其他的地方在新建一个调色板类来调整颜色,如果单纯的使用颜色配置就会造成硬编码的存在
QPalette canvasPaltte(QColor("Plum"));//使用调色板的好处是,可以动态的调整控件的颜色,单纯的使用颜色配置就会导致硬编码的存在。canvasPaltte.setColor(QPalette::Foreground,QColor("Indigo"));canvas->setPalette(canvasPaltte);
  1. 使用QtCreator自动补全是,只需要输出驼峰规则中的峰即可。即大写字母。
0 0