1、添加最大化,最小化窗口
//添加最大化,最小化窗口
this->setWindowFlags(Qt::Dialog | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint);
2、保存窗口
time_t now = time(NULL);
tm *tm_t = localtime(&now);
std::string path = "D:\\a5_JSON\\model_positon\\p_"
+ std::to_string(tm_t->tm_year + 1900)
+ "_" + std::to_string(tm_t->tm_mon + 1)
+ "_" + std::to_string(tm_t->tm_mday)
+ "_" + std::to_string(tm_t->tm_hour)
+ "_" + std::to_string(tm_t->tm_min)
+ ".json";
QString filename = QFileDialog::getSaveFileName(this,QString::fromLocal8Bit("文件另存为"), QString::fromStdString(path),tr("Config Files (*.json)"));
3、vs中需要将ui文件生成ui_XXX.h文件,cmd命令运行uic
uic osgqt.ui -o ui_osgqt.h
4、qt打开文件夹
#include <QFileDialog>
QString filename= getOpenFileName(this,"打开","D:\\","Image file(*.jpg)");
5、弹出提示窗口
#include <QMessageBox>
QMessageBox::information(this, "infomation", "path is NULL");
return;
6、写入txt
#include <iostream>
#include <fstream>
std::ofstream outfile(path, std::ios::trunc);
for (int i = 0; i < pts_vector.size(); i++) {
outfile << pts_vector[i].x<<" "<< pts_vector[i].y << std::endl;
}
outfile.close();
7、写入json文件
Json::Value W1;
Json::Value pts;
for (int i = 0; i < pts_vector.size(); i++) {
Json::Value p;
p.append(pts_vector[i].x);
p.append(pts_vector[i].y);
pts.append(p);
}
W1["data"] = pts;
//获取日期时间
time_t now = time(NULL);
tm *tm_t = localtime(&now);
W1["date"] = std::to_string(tm_t->tm_year + 1900) + "." + std::to_string(tm_t->tm_mon + 1) + "." + std::to_string(tm_t->tm_mday)
+ " " + std::to_string(tm_t->tm_hour) + ":" + std::to_string(tm_t->tm_min) + ":" + std::to_string(tm_t->tm_sec);
W1["mask_path"] = path_mask;
W1["2d points number"] = pts_vector.size();
W1["data_path_txt"] = path_txt;
8、读取json文件
void 读取json文件_2d_Int(std::string path, std::vector<cv::Point>* pts_vector)
{
Json::Reader reader;
Json::Value root;
//从文件中读取,保证当前文件有demo.json文件
std::ifstream in(path, std::ios::binary);
//判断文件是否可以打开
if (!in.is_open())
{
std::cout << "Error opening file\n";
return;
}
//读取文件
if (reader.parse(in, root)){
for (int i = 0; i < root["data"].size(); i++) {
cv::Point p(root["data"][i][0].asInt(), root["data"][i][1].asInt());
(*pts_vector).push_back(p);
}
}
else{
std::cout << "parse error\n" << std::endl;
}
in.close();
}