获取绝对路径
#include<QFileInfo>
QString path = "/home/user/file.txt"
QFileInfo fi = QFileInfo(path);
QString absPath = fi.absolutePath(); // 提取绝对路径
获取文件名称
#include<QFileInfo>
QString path = "/home/user/file.txt"
QFileInfo fi = QFileInfo(path);
QString absPath = fi.fileName(); // 提取绝对路径
QString file = "/home/user/file.txt"
if (QFile::exists(file)) {
qDebug()<<"file is exists";
}
QString path = "/home/user"
if (QDir::exists(path )) {
qDebug()<<"dir is exists";
}
typedef struct {
int name;
int id;
} StuInfo;
qRegisterMetaType<StuInfo>("StuInfo");
QString -> string:
string str = "test";
QString qstr = QString::fromStdString(str);
string -> QString
QString qstr = "test";
string str = qstr.toStdString();
QString -> char *
QString qstr = "test";
string str = qstr.toStdString().c_str();
char * -> QString
QVector<QString> vec;
QVector<QString>::iterator itor;
for (itor = vec.begin(); itor != vec.end(); itor++) {
QString tmp = *itor; // 记得用*itor。
qDebug()<<tmp << (*itor)<<endl;
}
TestClass *obj = new TestClass();
QThread *thd = new QThread;
obj->moveToThread(thd);
thd->start();
QString str = "12345678";
QString left3str = str.left(3); // 结果: “123”
QString right3str = str.right(3); // 结果:“678”
通过ldd命令进行打包
ldd exeName > dependLibs.txt
awk '{print $3}' dependLibs.txt > libsPath.txt
cat libsPath.txt | while read line
do
echo "line->${line}"
cp $line ./
done
相关链接:https://blog.csdn.net/my393661/article/details/83502540
1) echo 当前用户密码 | sudo -S 你的命令
2) echo "PASSWORD" | sudo -S sh -c " CMD1; CMD2;..."
QString cmd = "echo 123456 | sudo -S apt-get install";
相关链接:https://blog.csdn.net/qq_34207847/article/details/89029592
QString 转int : toInt()
QString 转float: toFloat()
QString 转double: toDouble()
QString 转short: toShort()
QString 转long: toLong()
QString 转long long: toLongLong()
int, float, double, short, long, long long 转 QString:QString::number()
QString str = "100";
int t = str.toInt(); // QString -> int
t = 200;
str = QString::number(t); // int -> QString;
QJsonDocument、QJsonParseError、QJsonObject、QJsonArray、QJsonValue
相关链接
相关链接2
QString str = "aaaa";
QByteArray bytes = str.toUtf8();
QString s = QString::fromUtf8(bytes);
QProcess::startDetached("/home/test");
QSettings *m_setting;
m_setting = new QSettings("./test.ini",QSettings::IniFormat);
m_setting->setValue("mac", "aa:bb:cc:dd:ee:ff"); // 写入值
QString value = m_setting->value("mac").toString(); // 获取值
创建:
QFile file("/home/test.txt");
if (!file.exists()) {
file.open(QIODevice::WriteOnly|QIODevice::Text); // 创建文件
}
删除:
if (file.exists()) {
file.remove();
}
QStateMachine、QState、QEventTransition
QThread::sleep(seconds)
QThread::sleep(3); // 秒级等待
QThread::msleep(3000) // 毫秒级等待
read:
QFile file("/home/test.txt");
if (file.exists()) {
if (file.open(QIODevice::ReadWrite)) {
QByteArray ba;
ba = file.readAll();
file.close();
}
}
write:
if (file.exists()) {
if (file.open(QIODevice::WriteOnly)) {
QString str = "test";
file.write(str.toStdString().data());
file.close();
}
}
1 QCoreApplicaton::exec()
2 QApplication::exec()
3 QDialog::exec()
4 QThread::exec()
5 QDrag::exec()
6 QMenu::exec()
QDateTime current_date_time =QDateTime::currentDateTime();
QString current_date =current_date_time.toString(“yyyy.MM.dd hh:mm:ss.zzz ddd”);
获取日期加时间
QDateTime current_date_time =QDateTime::currentDateTime();
QString current_date =current_date_time.toString("yyyy.MM.dd hh:mm:ss.zzz ddd");
获取时分秒
QTime curTime =QTime::currentTime();
int hour = curTime.hour();//当前的小时
int minute = curTime.minute();//当前的分
int second = curTime.second();//当前的秒
int msec = curTime.msec();//当前的毫秒
参考链接
void dataCopy(vector<int> &src, int *dst, int dstLen) {
int len = src.length();
int threadNum = 4;
future<void> futureList[threadNum]; // 定义一个future 数组,用来存放async返回值,这里的void是异步函数的返回类型。
for (int i = 0; i < threadNum; i++) { // for循环对每个线程启动async处理
futureList[i] = std::async(std::launch::async, [&](int start, int end) { // policy是async,代表程序运行到这个地方,就已经开始运行后面的lamda表达式了
for (int j = start; j < end; j++) {
dst.at(j) = src.at(j);
}
}, i * len / threadNum, (i + 1) * len / threadNum); // 后面这两个是lamda表达式的输入参数。
}
for (int i = 0; i < threadNum; i++) {
futureList[i].wait(); // 等待所有线程结束
}
return;
}
参考链接
typedef std::function<void(int, int)> FUN
class BindFunc{
public:
void func(int start, int end) {
cout<<start<<"--"<<end;
}
BindFunc() {
m_func = std::bind(&BindFunc::func, this, placeholders::_1, placeholders::_2);
}
private:
FUN m_func;
}
(未完待续)