详见:https://blog.csdn.net/qing666888/article/details/79518499
开启预编译头功能,在预编译头加入如下代码
//源代码编码必须是: UTF-8(BOM)
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
在水平或垂直布局中,如何设置各个控件所占的比例?
选中该LayOut对象,在LayOut属性中,设置layoutStretch。会发现在该layout中有几个控件,这个属性中就有几个数字,默认为0.0.0。改变这些数字比例就可以设置各个控件的填充比例了。
无论是创建的还是添加的项目路径中都不要出现中文路径,否则编译时无法通过的
QT提供了一种默认信号-槽对应关系:on_控件名称_信号函数名称(参数列表).当定义了这样的函数后,QT会将函数自动与界面控件的信号相关联,当控件触发了相关事件后这个函数将会被触发.
另外一种方式是直接使用QObject::connect函数来关联信号和槽.语法为:
connect(发出信号的对象指针,SIGNAL(信号函数原型), 响应信号的对象, SLOT(槽函数原型));
setWindowFlags(windowFlags()& ~Qt::WindowMaximizeButtonHint);
setFixedSize(this->width(), this->height());
../build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name}
修改为
./%{CurrentBuild:Name}
QString osdStr = "明卿出品!";
std::string strName = osdStr.toStdString();
const char *buffer = strName.c_str();
char osdInfo[256];
memset(osdInfo, 0, sizeof(osdInfo));
memcpy(osdInfo, buffer, strlen(buffer));
ANSI 编码表示英文字符时用一个字节,表示中文用两个或四个字节 —— 这带来了存储空间的减少,但却带来的格式的
不统一和混乱。上述三种编码都属于ANSI编码。
ANSI是一种字符代码,为使计算机支持更多语言,通常使用 0x00~0x79 范围的 1 个字节来表示 1 个英文字符。超出此范围的使用 0x80~0xFFFF来编码,即扩展的 ASCII 编码。为使计算机支持更多语言,通常使用 0x80~0xFFFF 范围的 2 个字节来表示 1 个字符。比如:汉字 ‘中’ 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、GB18030、Big5、Shift_JIS 等各自的编码标准。这些使用多个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。
在简体中文 Windows 操作系统中,ANSI 编码代表 GBK 编码;
在繁体中文 Windows 操作系统中,ANSI 编码代表 Big5;
在日文 Windows 操作系统中,ANSI 编码代表 Shift_JIS 编码;
.cpp文件以不同的格式保存,里面的字符串、中文等以不同的格式存储。QtCreator默认以utf-8存储。所以里面的字符串都是utf-8格式的。而virtual studio 则是以GBK格式存储的.cpp。所以里面的字符串是以ANSI(GBK)格式存储的。Qt中各不同编码的字符串,可以通过如下代码进行转换。
QTextCodec *utf8 = QTextCodec::codecForName("UTF-8");
QTextCodec *gb18030 = QTextCodec::codecForName("GB18030");
QString strUnicode;
strUnicode = utf8->toUnicode(strAppPath.toLocal8Bit().data());
QByteArray gb_bytes;
gb_bytes = gb18030->fromUnicode(strUnicode);
char imagePath[256] = {0};
memcpy(imagePath, gb_bytes, gb_bytes.length());
VC:路径使用'\\'(反斜杠) Qt:路径使用 '/'(斜杠)。VC的双斜杠其实是转义字符+\。
/转\(斜杠转反斜杠)
QString path = "C:/temp/test.txt";
path = QDir::toNativeSeparators(path);
"C:\\temp\\test.txt"
\转/(反斜杠转斜杠)
QString path = "C:\\temp\\test.txt";
path = QDir::fromNativeSeparators(path);
C:/temp/test.txt
CONFIG += debug_and_release
CONFIG += build_all
CONFIG(debug, debug|release) {
unix: TARGET = $$join(TARGET,,,_debug)
win32: TARGET = $$join(TARGET,,,d)
}
DESTDIR += $$PWD/bin
1.秒级别:
1)10进制unix时间转换为实际时间:
QDateTime time = QDateTime::fromTime_t(1573394150);//转换为秒级别
2)实际时间转换为unix的10进制时间
QDateTime time = QDateTime::currentDateTime(); //获取当前时间默认到秒
int timeT = time.toTime_t(); //将当前时间转为时间戳
qDebug()<<"timeT="<
2.毫秒 级别:
1)10进制unix时间转换为实际时间:
QDateTime time = QDateTime::fromMSecsSinceEpoch(1573031724139);//转换为毫秒级别
2)实际时间转换为unix的10进制时间
qint64 time = QDateTime::currentMSecsSinceEpoch();
qDebug()<<"time="<