- 打印系统本地的时间长格式显示
qDebug() << QDateTime::currentDateTime().toString(Qt::SystemLocaleLongDate);
//中文环境下 "2016年6月21日 13:41:11"
//英文环境下 "Tuesday, June 21, 2016 1:42:19 PM CST"
使用类静态成员变量
- 在类头文件中声明静态成员变量
public: static Map<QByteArray,int> g_map
- 在类源文件中初始化静态成员变量
QMap<QByteArray,int>TcpServer::g_map;
- 在类头文件中声明静态成员变量
使用静态局部
- 只需要在函数内部声明并初始化即可。下次进入函数是,不会被重复初始化。
static int i=0;
- 使用QByteArray截取指定数据,如:截取一条数据中0x7E~0x7E之间的数据
- 只需要在函数内部声明并初始化即可。下次进入函数是,不会被重复初始化。
- 使用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);
- 使用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();
- 使用系统默认程序打开对应的文件
QDesktopServices::openUrl(QUrl("file:///C:/HaxLogs.txt")); //打开文本
QDesktopServices::openUrl(QUrl("www.163.com")); //打开网站
- 错误:ui_mainwindow.h:No such file or directory
- 此时需要自己手动的使用uic工具来创建ui_**.h的文件。
- 如果需要创建的文件过多的话,那就毁掉pro,Makefile等文件,重新走一遍qmake的流程
- 控件覆盖问题
ui->checkBox->raise();
- 可以将一个类做成转换为另一个类。使用这玩意,推广类
- 使用布局以主窗口为父对象,可是控件自动适应主窗口
1. QVBoxLayout * layout = new QVBoxLayout(this);
2. layout->addWidget(ui->qwt);
- time_t 与 QDateTime的转换
1. QDateTime::currentDateTime().toTime_t()
2. QDateTime::fromTime_t(Current_time_t).time().toString();
- 避免编译器的变量未使用警告 Avoid “unused parameter” warnings的方法
- 使用Q_UNUSED ( name )宏
- 使用 void ( name )
- 在pro工程文件最后加入如下代码:未用过,但认为也可以QMAKE_CXXFLAGS += -Wno-unused-parameter
- 当不能返回一个NULL指针是,就返回一个空的函数类型的值。
函数返回值为,CustomClass类型,那么可以返回一个CustomClass()
- 调色板:
QPalette
,可以在其他的地方在新建一个调色板类来调整颜色,如果单纯的使用颜色配置就会造成硬编码的存在
QPalette canvasPaltte(QColor("Plum"));//使用调色板的好处是,可以动态的调整控件的颜色,单纯的使用颜色配置就会导致硬编码的存在。
canvasPaltte.setColor(QPalette::Foreground,QColor("Indigo"));
canvas->setPalette(canvasPaltte);
- 使用QtCreator自动补全是,只需要输出驼峰规则中的峰即可。即大写字母。