1、uint8_t转QString
QString add;
uint8_t uuuu[10] = {0x12,0x56.....}
add = (char *)uuuu;
或者
char* a = (char*)uuuu;
add= a;
2、单精度或是双精度数据在进行运算时丢失精度的问题
运算过程中都要使用单精度或是双精度,结果也用单精度或是双精度保存,然后再使用强制转换符转换为整型
3、QString和QUrl互转
#include <QUrl>
QString m_string ;
QUrl m_url = "://wwwwww";
m_string = m_url.toString();//url转换QString
QUrl m_url(m_string);//QString转换url
3、设置只能同时运行一个实例exe
在mian中添加
#include <QSharedMemory>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//添加
QSharedMemory shared("exe在项目管理器中的名称");
if(shared.attach())//共享内存被占用则直接返回
{
QMessageBox::information(NULL,QStringLiteral("Warning"),QStringLiteral("Application is alreadly running!"));
return 0;
}
shared.create(1);//共享内存没有被占用则创建UI
MainWindow w;
w.Show();
return a.exec();
}
4、四舍五入问题
qRound(float);//转换为最靠近的整数
比如:qRound(1.3);//1
qRound(1.7);//2
5、QString操作
QString.left(int n)//返回最左边n个字符,n大于最大值获取小于0,返回整个字符串
QString.right(int n)//最右边同上
QString.mid(int a, int b)//从第a个字符开始位置的b个字符
//判断结尾字符串是否是
QString str = "Bananas";
str.endsWith("anas"); // returns true
str.endsWith("pple"); // returns false
6、修改生成的exe名称和任务栏上面名称
在pro中修改
TARGET = $$quote(exe名称)
沟站函数中添加
this->setWindowTitle(exe名称); //设置标题框文本
7、设置圆角对话框并为模态对话框
loaddlg = new loaddialog(this);
loaddlg->resize(447,243);//大小
loaddlg->show();//中间显示
this->setWindowFlag(Qt::FramelessWindowHint);//去掉标题栏
this->setWindowModality(Qt::WindowModal);//半模态对话框
this->setAttribute(Qt::WA_TranslucentBackground);//背景透明
loaddlg = new loaddialog(this);
loaddlg->resize(447,243);//大小
loaddlg->show();//中间显示
this->setWindowFlag(Qt::FramelessWindowHint);//去掉标题栏
this->setWindowModality(Qt::WindowModal);//半模态对话框
this->setAttribute(Qt::WA_TranslucentBackground);//背景透明
8、获取字符串总某个字符后数据
QString mr_path = "123/456/789/azx/cvbn/mkoiuhn"; int first = mr_path.lastIndexOf ("/"); QString path = mr_path.right (mr_path.length ()-first-1);//path="mkoiuhn"
9、int转枚举类型
int i = 1;
Test val = static_cast<Test>(i);//Test为枚举
10、设置对话框背景
setAttribute(Qt::WA_StyledBackground);
有些需要这行来设置背景接收QSS样式表,才能设置背景图片等