Qt君


  • 首页

  • 关于

  • 归档

  • 搜索

Doxygen文档系统简单使用

发表于 2019-02-05

按照规范的格式注释源代码,用工具处理注释过的源代码产生文档.便于代码和文档保持同步,可以对文档做版本管理.

注释风格

1
2
3
4
5
6
/**
* ...多行注释...
*
*/

/** ...单行注释... */

文件注释

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
* @file xxx
* @author xxx
* @version xxx
* @date xxxx/xx/xx
*
* @section LICENSE
*
* Copyright(c) yyyy-yyyy XXX
* All rights reserved
*
* @brief xxx
*/

函数注释

1
2
3
4
5
6
7
8
/** 
* @brief xxx
* @param[in] param1 param2
* @param[out] param1 param2
* @return xxx
* @retval true success
* @retval false failed
*/

一般简易注释

1
2
3
/**
* @brief xxx
*/

C++中异常处理的使用见解

发表于 2019-02-04

C++内置的异常处理语法try catch用法,在某种情况下使用异常处理可以使代码更加简洁.

  • 不使用异常的伪代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if (file.read(userName) == 0) {
    processUserName(userName);
    if (file.read(number) == 0) {
    processNumber(number);
    }
    else {
    errorCode = ERROR_READ;
    }
    }
    else {
    errorCdoe = ERROR_READ;
    }
  • 使用异常的伪代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    try {
    file.read(userName);
    processUserName(userName);
    file.read(number);
    processNumber(number);
    }
    catch (...) {
    errorCdoe = ERROR_READ;
    }
  • 在这种情况可以使用异常机制,使得控制流操作更加清晰.

Qml之别名引用

发表于 2019-02-03

import的别名引用

  • 使用as引用,将import QtQuick.Window 2.0 as My的QtQuick.Window 2.0别名为My引用.

属性的别名引用

  • 使用alias别名引用,将property alias rectWidth: rect.width的rect.width别名为rectWidth引用.

例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import QtQuick 2.5
import QtQuick.Window 2.0 as My

My.Window {
property alias rectWidth: rect.width

visible: true
width: 640
height: 480
title: qsTr("Hello World")

Rectangle {
id: rect
width: 100; height: 200
color: "red"
}
}

CSV逗号分隔值格式文件(示例分析)

发表于 2019-01-31

CSV全称Comma Separated Values是”逗号分隔值”的英文缩写.通常是纯文本文件,可以被文本编辑软件,Excel或WPS表格打开.

基本规则

  1. 开头不留空,以行为单位;
  2. 列名(标题)放在第一行(可忽略不加列名);
  3. 每一行数据以换行结束,无空行;
  4. 以半角逗号作分隔符,列为空也要表达其存在;
  5. 列内容如存在半角逗号则用半角引号(“”)将该字段值包含起来;
  6. 列内容如存在半角引号则需要使用半角双引号(“”)转义,并用半角引号(“”)将该字段值包含起来;
  7. 文件读写时引号,逗号操作规则互逆;
  8. 内码格式不限,可为 ASCII、Unicode 或者其他;
  9. 不支持特殊字符.

示例

  • 商品.csv
1
2
3
4
5
商品,分类,备注
西红柿,"水果, 蔬菜",有营养的水果蔬菜
苹果,水果,"当地瓜农""吴大妈""都说好"
哈密瓜,水果,"来自新疆新鲜的哈密瓜,
当地瓜农""刘大爷""都说好"
  • 解析结果
商品 分类 备注
西红柿 水果,   蔬菜 有营养的水果蔬菜
苹果 水果 当地瓜农”吴大妈”都说好
哈密瓜 水果         来自新疆新鲜的哈密瓜,
当地瓜农刘大爷”都说好”

总结

  • 包含逗号,双引号,或是换行符的字段必须放在引号内;
  • 字段内部的引号必须在其前面增加一个引号来实现文字引号的转码,如苹果商品这一行;
  • 分隔符逗号前后的空格可能不会被修剪掉(RFC 4180要求),如西红柿商品这一行.
  • 元素中的换行符将被保留下来,如哈密瓜商品这一行.

发布QtCsv文件转语言翻译文件工具

发表于 2019-01-31

将Csv格式文件转换为qm翻译文件,中间无需干预手动干预ts文件即可完成翻译文件的制作。

直接生成qm文件的工具

  1. 我们做Qt翻译文件时候一般使用lupdate xx.pro生成ts文件,再根据翻译使用Qt Linguist Manual工具修改ts后再使用lrelease *.ts生成对应的qm文件。这一过程略显繁琐,作者的本意是简化该流程并能提供一个通用的翻译文本格式(csv)给翻译人员使用;
  2. 本工具是通过csv翻译文件翻译到qm文件的工具,简单易用;
  3. 文尾附部分源码与源码地址。
阅读全文 »

Qt多语言翻译示例

发表于 2019-01-30

一个基础的翻译示例和一些注意事项


示例目录

1
2
3
4
5
6
7
8
9
QtTranslation/
├── Languages
│   ├── en.qm
│   ├── en.ts
│   ├── Languages.qrc
│   ├── zh_CN.qm
│   └── zh_CN.ts
├── main.cpp
└── QtTranslation.pro

阅读全文 »

Qml/js验证IP合法性

发表于 2019-01-29

使用正则表达式验证

1
2
3
4
function isValidIP(ip) {
var reg = /((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))/
return reg.test(ip);
}

解决Linux错误:"too many open files"问题

发表于 2019-01-28

该问题主要是进程打开过多的文件导致的问题

解决方法

修改打开文件的限制

查看打开文件的最大限制命令ulimit -a, open files (-n) 1024即为最大打开的文件数,修改限制使用命令ulimit -n 2048,2048为修改到最大打开文件数为2048;

  • ulimit -a

    1
    2
    3
    4
    root@ubuntu:~$ ulimit -a
    ...
    open files (-n) 1024
    ...
  • 部分Arm板的输出为,也是同样使用ulimit -n 数量命令修改

    1
    2
    3
    4
    root@ubuntu:~$ ulimit -a
    ...
    -n: file descriptors 1024
    ...
  • 查看某用户进程的已打开的文件描述符数量可使用一下命令

    1
    ls /proc/pid/fd | wc -w //pid为进程号
  • 查看某用户进程文件操作详情

    1
    lsof -p pid // pid为进程号

检查程序是否存在以下问题

  • 检查open, fopen, popen打开的文件描述符有没有关闭的操作;
  • 检查socket通讯有没有正常关闭,没有则关闭。

断言宏assert

发表于 2019-01-27
  • assert()宏主要用于辅助测试程序;
  • assert()宏当表达式求值为假(非零)时,assert()宏就在标准错误流(stderr)写入一条错误信息(包括出错文件与行号)并调用abort()函数终止程序;
  • 头文件assert.h
  • 源代码

阅读全文 »

Linux关机与重启命令

发表于 2019-01-26

关机命令

关机命令 解释
halt 立即关机
init 0 立即关机
poweroff 立即关机
shutdown -h now 立刻关机
shutdown -h 5 5分钟后自动关机
shutdown -h 00:00 当时间在00:00时自动关机
阅读全文 »
1…29303132
Qt君

Qt君

313 日志
41 标签
© 2019 Qt君
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4
粤ICP备 - 16070052号