一、前言
使用QT进行开发的过程中,经常发现一些实用的小技巧,有时候能给开发带来不少便捷。因此,写下此文积累一些这方面的知识,便于自己查阅以及给广大开发者提供一些参考。
二、正文
1.整形和QString互转,以及格式化的问题
1)整形转QString
10进制
int a = 100;
QString str = QString::number(a);
16进制
int a = 100;
QString str = QString::number(a, 16);
保留指定位数,不足补0,实现类似printf()函数的功能
// 输出"001"
int a=1;
QString str0 = QString::number(a).sprintf("%03d",a) // 方法1
QString str1 = QString("%1").arg(a, 3, 10, QChar('0')); // 方法2
2)QString转整形
QString num_str = "123";
int num = num_str.toInt(); // 10进制
QString hex_str = "30FF";
bool ret;
int num2 = hex_str.toInt(&ret, 16); // 16进制,第一个参数也可以填NULL
2.QString的截取
QString str = "abc123";
str.letf(2); // "ab"
str.right(4); // "c123"
str.mid(1, 3); // "bc1"
str.remove(0, 2); // "c123"
str.remove("abc"); // "123"
3.文本编辑框和行编辑框强制英文输入法
有些场景下输入框只需要输入英文,如果输入中文则会引起错误,这个时候可以通过如下方法设置编辑框的属性,使之输入时强制系统输入法为英文输入法。
QTextEdit *te = new QTextEdit();
te->setAttribute(Qt::WA_InputMethodEnabled, false);