一句命令替换文本内容。
步骤
- 切换到命令行模式
- 执行命令
:%s/source/dest/g
解释
%
代表指定范围从首行到尾;s
为substitude字符串替换的缩写;source
为原字符串,dest
为替换后字符串;g
为对指定范围内的所有匹配项进行替换。
使用Qt的
qputenv
与qgetenv
接口操作程序环境变量。
1 | QByteArray qgetenv(const char *varName) |
varName
环境变量名字。value
环境变量的值。1 | bool qputenv(const char *varName, const QByteArray &value) |
判断varName
环境变量是否存在。(相当于!qgetenv(varName).isNull()
)
1 | bool qEnvironmentVariableIsSet(const char *varName) |
判断varName
环境变量是否为空。(相当于qgetenv(varName).isEmpty()
)
1 | bool qEnvironmentVariableIsEmpty(const char *varName) |
解决Qml程序中一个非常常见的警告
QML debugging is enabled.Only use this in a safe environment.
DEFINES += QT_QML_DEBUG_NO_WARNING
(只关闭打印输出,并不能关闭QML调试器)。直接关闭QML调试器:
1 | Qt4版本: CONFIG -= declarative_debug |
在界面”项目”->”构建步骤”->”Enable QML debugging and profiling”复选框取消勾选;
字符串字面量(string literal)是指双引号引住的字符,双引号中可以没有字符,也可以有很多个字符。使用字符串字面量可以快速得到需要的一些编码字符。
语法 | 示例 | 解释 | |
---|---|---|---|
“(未转义字符\ | 转义字符)” | “示例” | 窄多字节字符串字面量 |
L”(未转义字符\ | 转义字符)” | L”示例” | 宽字符串字面量, 为了支持汉语等语言。 |
u8”(未转义字符\ | 转义字符)” | u8”示例” | UTF-8 编码的字符串字面量。 (C++11起新增) |
u”(未转义字符\ | 转义字符)” | u”示例” | UTF-16 编码的字符串字面量。 (C++11起新增) |
U”(未转义字符\ | 转义字符)” | U”示例” | UTF-32 编码的字符串字面量。 (C++11起新增) |
前缀(可选)R”分隔符(原始字符)分隔符” | R”prefix(示例)prefix” 或R”(示例)” |
原始字符串字面量。 (C++11起新增) |
L"..."
字面量const wchar_t[N]
,其中N是执行范围编码的代码单元中的字符串大小,包括空终止符。R"..."
字面量R
为原始字符串字面量,用于避免转义任何字符。该字面量分隔符间的任何内容都成为字符串的一部分。例子:
1 | #include <iostream> |
输出:
1 | ===== |
由于R"(
的后面与)"
的前面都使用了换行,所以输出两个空换行。
1 | https://en.cppreference.com/w/cpp/language/string_literal |
介绍Qml子控件(
Main.qml
)重载父控件(Test.qml
)的foo
函数重载的使用方法。
Test.qml
初始化中执行foo
函数,由于子控件重载了该函数即为执行子控件的foo
函数。=====
Main.qml
1 | Test { |
Test.qml
1 | import QtQuick 2.0 |
在gcc编译器中malloc与calloc它们都是实现内存分配。但是也有点小区别,就是malloc分配内存不会将数据清零,而calloc则会将数据清零。
bzero(ptr, nelem * elsize)
是将ptr的前nelem * elsize个字节置为0。1 | /* calloc -- allocate memory which has been initialized to zero. |
利用Qt元对象系统的特性实现对枚举类型与字符串的互相转换功能。
QT += core
;Car
继承于QObject
并使用Q_OBJECT
宏;Color
;Q_ENUM
宏将Color
枚举注册到元对象系统中;QMetaEnum::fromType
获取枚举的QMetaEnum
对象;valueToKey
或keyToValue
进行转换操作。接口:
1 | const char *QMetaEnum::valueToKey(int value) const |
输入: value
为枚举值;
接口:
1 | int QMetaEnum::keyToValue(const char *key, bool *ok = nullptr) const |
输入: key
为枚举字符串;
ok
值为是否转换成功(需要做判断)。Car.h
1 | #include <QObject> |
main.cpp
部分代码
1 | QMetaEnum metaColor = QMetaEnum::fromType<Car::Color>(); |
以示例说明Qml界面按键事件传递方式。
first
对象event.accepted = true
隔断了事件的向上(父控件)传递;1 | Rectangle { |