Demo entry 6761529

1

   

Submitted by anonymous on Sep 28, 2018 at 11:07
Language: C++. Code size: 26.5 kB.

#pragma once

#include <QtWidgets/QMainWindow>
#include <QFileDialog>
#include <QMessageBox>
#include "ui_graduate_design.h"

#include "3dPoint.h"
#include "data_handle.h"



class graduate_design : public QMainWindow
{
	Q_OBJECT

public:
	graduate_design(QWidget *parent = Q_NULLPTR);

private:
	Ui::graduate_designClass ui;
	/*usr data*/
	QFile* g_check_file;
	QFile* g_test_file;

	double deep_err_fate;

	std::vector<point_3d> check_data;	//record data of check data
	std::vector<point_3d> test_data;	//record data of test data

	std::vector<point_3d> err_data;

	QBarSeries *fate_err_bar_series;
	QBarSet *fate_err_bar_set;
	QPieSeries *pie_err_series;

	QChart *chart;


	//QVector<QPoint> check_point_info;
	//QVector<QPoint> test_point_info;
public:
	//double get_usr_thr(void);

private:
	/*usr func*/
	void init(void);
	QString get_file_path(void);
	QString get_file_name(void);

private slots:
	void open_test_file_handle(void);
	void open_check_file_handle(void);
	void combox_handle(int);
	void usr_thr_change(void);
	void generate_err_fate_handle(void);
	void generate_test_data_handle(void);
};
#pragma once


#include "graduate_design.h"
#include <vector>

using namespace std;

#define USR_DIS_THR	(1.0f)

extern double usr_scale;
extern double usr_err_thr;
/*
read line str and transmit to point_3d data
*/
point_3d handle_usr_txt_str(std::string str_input);
vector<point_3d>& handle_usr_point_data(vector<point_3d> check_data_vec, vector<point_3d> test_data_vec, vector<point_3d>& tmp_data);
#pragma once
/*
simple point 3d realize by donce 
*/
class point_3d
{
public:
	double x;
	double y;
	double z;

public:
	point_3d(void);
	point_3d(double, double, double);

public:
	double get_x(void);
	double get_y(void);
	double get_z(void);

	static double get_xy_dis(point_3d a, point_3d b);

	void clear(void);
};

#include "graduate_design.h"
#include <QtWidgets/QApplication>

#pragma execution_character_set("utf-8")

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	graduate_design w;
	w.setWindowTitle("Ö÷¼ì²âÐÔÄÜÆÀ¹Àϵͳ");
	w.show();
	return a.exec();
}
#include "graduate_design.h"
#include <QDebug>
#include <fstream>
#pragma execution_character_set("utf-8")

graduate_design::graduate_design(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	
	this->init();
}

/*
init class func
*/
void graduate_design::init()
{
	g_check_file = NULL;
	g_test_file = NULL;

	check_data.resize(0);
	test_data.resize(0);

	/*
		QSplineSeries *series = new QSplineSeries();
		for (int i = 0; i < 10; i++)
		{
			series->append(i,sin(0.5*i));
		}
		QChart *chart = new QChart();
		chart->addSeries(series);
		chart->createDefaultAxes();

		ui.chart_view->setChart(chart);
		*/

	//fate_err_bar_series = new QBarSeries();
	chart = new QChart();

	pie_err_series =new QPieSeries();
	pie_err_series->append(">0.2:50%", 0.5);
	pie_err_series->append("¡Ü0.2:50%", 0.5);
	pie_err_series->setLabelsVisible();

	QPieSlice *slice_red = pie_err_series->slices().at(0);
	QPieSlice *slice_blue = pie_err_series->slices().at(1);

	slice_blue->setColor(QColor(0, 0, 255, 255));
	slice_red->setColor(QColor(255, 0, 0, 255));
	chart->legend()->hide();
	chart->addSeries(pie_err_series);
	chart->setTitle("Îó²î·Ö²¼:");
	ui.chart_view->setChart(chart);


	ui.err_thr_text->setValidator(new QDoubleValidator(0.0, 1.0, 3,this));

	connect(ui.open_check_data_button, SIGNAL(clicked()), this, SLOT(open_check_file_handle()));
	connect(ui.open_test_data_button, SIGNAL(clicked()), this, SLOT(open_test_file_handle()));
	connect(ui.usr_scale_comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(combox_handle(int)));
	connect(ui.err_thr_text, SIGNAL(returnPressed()), this, SLOT(usr_thr_change()));
	connect(ui.generate_test_txt_button, SIGNAL(clicked()), this, SLOT(generate_test_data_handle()));
	connect(ui.generate_err_fate_txt_button, SIGNAL(clicked()), this, SLOT(generate_err_fate_handle()));
}
/*
slot:handle open_test button
*/
void graduate_design::open_test_file_handle(void)
{
	if (g_test_file != NULL && g_test_file->isOpen()) {
		g_test_file->close();
		QMessageBox::information(this,
			tr("close!"),
			tr("history data close!"));
		ui.info_label->setText("history test data close!");
	}
	g_test_file = new QFile(get_file_path());

	if (!g_test_file->open(QIODevice::ReadOnly | QIODevice::Text)) {
		QMessageBox::information(this,
			tr("open!"),
			tr("open data fail !"));
		ui.info_label->setText("open fail!");
		return;
	}
	else
	{
		ui.info_label->setText(g_test_file->fileName() + " handling...");
		test_data.clear();

		while (!g_test_file->atEnd())
		{
			QByteArray line = g_test_file->readLine();
			QString str(line);
			point_3d data = handle_usr_txt_str(str.toStdString());
			test_data.push_back(data);
		}

		handle_usr_point_data(test_data, check_data, err_data);

		g_test_file->close();
		ui.info_label->setText(g_test_file->fileName() + " handle ok!");
	}
}
/*
slot:handle open_check button
*/
void graduate_design::open_check_file_handle(void)
{
	if (g_check_file != NULL && g_check_file->isOpen()) {
		g_check_file->close();
		QMessageBox::information(this,
			tr("close!"),
			tr("history data close!"));
		ui.info_label->setText("history check data close!");
	}
	g_check_file = new QFile(get_file_path());

	if (!g_check_file->open(QIODevice::ReadOnly | QIODevice::Text)) {
		QMessageBox::information(this,
			tr("open!"),
			tr("open data fail !"));
		ui.info_label->setText("open fail!");
		return;
	}
	else
	{
		ui.info_label->setText(g_check_file->fileName() + " handling...");
		check_data.clear();

		while (!g_check_file->atEnd())
		{
			QByteArray line = g_check_file->readLine();
			QString str(line);
			point_3d data = handle_usr_txt_str(str.toStdString());
			check_data.push_back(data);
		}
	
		handle_usr_point_data(test_data, check_data, err_data);

		g_check_file->close();
		ui.info_label->setText(g_check_file->fileName() + " hand ok!");
	}
}
/*
usr thr change
*/
void graduate_design::usr_thr_change()
{
	qDebug() << ui.err_thr_text->text().toDouble();
	usr_err_thr = ui.err_thr_text->text().toDouble();

	handle_usr_point_data(test_data, check_data, err_data);
}
/*
SLOT handle of test generate
*/
void graduate_design::generate_test_data_handle()
{
	if (test_data.size() > 0 && check_data.size() > 0)
	{
		QString file_name = get_file_name();
		std::ofstream examplefile(file_name.toStdString());
		if (examplefile.is_open()) {
			ui.info_label->setText("generate test text file...");
			examplefile << "				±íÒ»: Ö÷¼ì²âÏßͳ¼Æ±í		\n";
			examplefile << "ÐòºÅ		Ö÷²âÉîÏß		¼ì²âÏß		ƽ¾ùÖµ		²îÖµz1-z2\n";
			for (int i = 0; i < err_data.size(); i++) {
				examplefile << i << "		" << err_data.at(i).x << "		" << err_data.at(i).y \
					<< "		" << (err_data.at(i).x + err_data.at(i).y) / 2 << "		" << err_data.at(i).z << endl;
			}
			examplefile.close();
			ui.info_label->setText("generate test text file ok \npath is " + file_name);
		}
		else
		{
			ui.info_label->setText("text file open fail");
			QMessageBox::information(this,
				tr("err!"),
				tr("text file open fail!"));
		}
	}
	else
	{

		QString info = "ERR: ²âÊÔÎļþÊäÈëδÍê³É£¡\n";
		//ui.info_label->setText("ERR: ÎļþÊäÈëδÍê³É£¡");
		if (test_data.size() == 0)
			info += "²âÊÔÎļþ ";
		if (check_data.size() == 0)
			info += "¿¼ºËÎļþ ";
		info += "δÊäÈë";
		ui.info_label->setText(info);

		QMessageBox::information(this,
			tr("err!"),
			tr("no data input!"));
	}
}
/*
SLOT handle of err txt generate
*/
void graduate_design::generate_err_fate_handle()
{
	
	float over_cnt = 0;
	usr_err_thr = ui.err_thr_text->text().toDouble();

	if (test_data.size() > 0 && check_data.size() > 0)
	{
		QString file_name = get_file_name();
		std::ofstream examplefile(file_name.toStdString());
		if (examplefile.is_open()) {
			ui.info_label->setText("generate err text file!");

			ui.generate_err_fate_txt_button->setEnabled(false);

			examplefile << "		±í¶þ: Îó²îͳ¼Æ±í		\n";
			for (int i = 0; i < err_data.size(); i++) {
				if (fabs(err_data.at(i).x - err_data.at(i).y) > usr_err_thr)
				{
					over_cnt++;
				}
			}
			if (err_data.size() > 0) {
				examplefile << "	²îÖµ|Z1 - Z2| >	" << usr_err_thr <<  "	±ÈÀýÊÇ:" << over_cnt * 100 / err_data.size() << "%" << endl;
				examplefile << "	²îÖµ|Z1 - Z2| <=	" << usr_err_thr << "	±ÈÀýÊÇ:" << (1 - (over_cnt / err_data.size())) * 100 << "%" << endl;
			}

			if (pie_err_series != NULL)
			{
				float percent = over_cnt / (float)(err_data.size());
				pie_err_series->clear();
				pie_err_series->append(">"+ \
					QString::number(usr_err_thr)+":"+ QString::number(percent*100)+"%",percent);
				pie_err_series->append("¡Ü" +\
					QString::number(usr_err_thr) + ":" + QString::number((1-percent) * 100) + "%", 1-percent);
				pie_err_series->setLabelsVisible();

				QPieSlice *slice_red = pie_err_series->slices().at(0);
				QPieSlice *slice_blue = pie_err_series->slices().at(1);

				slice_blue->setColor(QColor(0, 0, 255, 255));
				slice_red->setColor(QColor(255, 0, 0, 255));
				/*
				
				
				fate_err_bar_set = new QBarSet("Îó²î·Ö²¼Õ¼±È£º");

				*fate_err_bar_set << (over_cnt  / (float)(err_data.size())) << (1 - (over_cnt / (float) err_data.size()));
				
				fate_err_bar_series->append(fate_err_bar_set);
				ui.rate_show->setText(">=" + QString::number(usr_err_thr)+":"+ \
					QString::number((over_cnt *100/ (float)(err_data.size()))) + "%\n" + \
					"<" + QString::number(usr_err_thr) + ":" + \
					QString::number( (1- (over_cnt / (float)(err_data.size())))* 100) + "%") ;

				QStringList categories;
				categories << tr("> ")+ QString::number(usr_err_thr) << tr("¡Ü")+QString::number(usr_err_thr);
				QBarCategoryAxis *axis = new QBarCategoryAxis();
				axis->append(categories);
				//chart->addSeries(fate_err_bar_series);
				chart->createDefaultAxes();
				chart->setAxisX(axis, fate_err_bar_series);
				//fate_err_bar_set->deleteLater();		
				*/
			}
			
			examplefile.close();
			ui.generate_err_fate_txt_button->setEnabled(true);
			ui.info_label->setText("generate err text file ok \n path is " + file_name);
		}
		else
		{
			ui.info_label->setText("text file open fail");
			QMessageBox::information(this,
				tr("err!"),
				tr("text file open fail!"));
		}
	}
	else {

		QString info = "ERR: ²âÊÔÎļþÊäÈëδÍê³É£¡\n";

		if (test_data.size() == 0)
			info += "²âÊÔÎļþ ";
		if (check_data.size() == 0)
			info += "¿¼ºËÎļþ ";
		info += "δÊäÈë";
		ui.info_label->setText(info);

		QMessageBox::information(this,
			tr("err!"),
			tr("no data input!"));	
	}
	
}
/*
usr scale change
*/
void graduate_design::combox_handle(int index)
{
	//ui.info_label->setText(QString::in(index));
	qDebug() << index;
	switch (index)
	{
	case 0:
		usr_scale = 5;
		break;
	case 1:
		usr_scale = 10;
		break;
	case 2:
		usr_scale = 20;
		break;
	case 3:
		usr_scale = 50;
		break;
	case 4:
		usr_scale = 100;
		break;
	case 5:
		usr_scale = 200;
		break;
	default:
		usr_scale = 5;
		break;
	}
//handle_flag = false;

	handle_usr_point_data(test_data, check_data, err_data);
}
/*
get file path name
*/
QString graduate_design::get_file_path()
{
	QString filename;
	filename = QFileDialog::getOpenFileName(this,
		tr("Chose Your Txt File!"),
		"",
		tr("txt (*.txt)")); //Ñ¡Ôñ·¾¶
	if (filename.isEmpty())
		return "NULL";
	else
		return filename;
}
/*
get file name
*/
QString graduate_design::get_file_name()
{
	QString file_full, file_name, file_path;
	QFileInfo fi;//Îļþ·¾¶
				 //    file_full = QFileDialog::getOpenFileName(this);
				 //      ´ò¿ªÎļþ        »ñÈ¡Îļþ·¾¶
	file_full = QFileDialog::getSaveFileName(this, tr("Save File"), tr("*.txt"));
	//      ±£´æÎļþ        »ñÈ¡Îļþ·¾¶  ¡°Save File¡± ¶Ô»°¿òÃû        ¡°*.txt¡± ĬÈÏÎļþÃû
	fi = QFileInfo(file_full);


	//      ÏÔʾÎļþ·¾¶
	file_name = fi.fileName();
	file_path = fi.absolutePath();

	return file_path + "/" + file_name;
}
/*
data handle by donce
*/
#include "graduate_design.h"
#include <vector>
#include <QDebug>
using namespace std;

bool handle_flag = false;
double usr_scale = 5.0;
double usr_err_thr = 0.2;
/*
read line str and transmit to point_3d data
*/
point_3d handle_usr_txt_str(string str_input)
{
	vector<double> nums;

	char *s_input = (char *)str_input.c_str();
	const char * split = ",";
	// ÒÔ¶ººÅΪ·Ö¸ô·û²ð·Ö×Ö·û´®
	char strbuf[200];
	char *p;

	double a = 1000000.001111;

	p = strtok_s(s_input, split, (char **)(&strbuf));
	a = atof(p);
	//printf_s("%lf", a);

	nums.push_back(a);//ѹÈëµÚÒ»¸öÊý×Ö

	while ((p = strtok_s(NULL, split, (char **)(&strbuf))) != NULL)
	{
		//sscanf_s(p, "%lf", &a);
		a = atof(p);
		//printf_s("%lf", a);
		nums.push_back(a);
	}

	return point_3d(nums.at(0), nums.at(1), nums.at(2));
}


vector<point_3d>& handle_usr_point_data(vector<point_3d> check_data_vec, vector<point_3d> test_data_vec, vector<point_3d>& tmp_data)
{
	

	if(check_data_vec.size() == 0 || test_data_vec.size() == 0)
		return tmp_data;

	tmp_data.resize(0);

	const vector<point_3d>::iterator check_start_iter = check_data_vec.begin();
	const vector<point_3d>::iterator check_end_iter = check_data_vec.end();

	const vector<point_3d>::iterator test_start_iter = test_data_vec.begin();
	const vector<point_3d>::iterator test_end_iter = test_data_vec.end();

	vector<point_3d>::iterator check_iter = check_data_vec.begin();

	double dis = 0;

	int cnt_t = 0, cnt_c = 0;

	handle_flag = true;
	while (check_iter != check_end_iter)
	{
		vector<point_3d>::iterator test_iter = test_data_vec.begin();
		
		cnt_c = 0;
		while (test_iter != test_end_iter)
		{
			dis = point_3d::get_xy_dis(*test_iter, *check_iter);
			

			if (dis <= (USR_DIS_THR * usr_scale))
			{
				printf_s("h:%d,l:%d,dis:%lf,z1:%lf,z2:%lf,err:%lf\n", cnt_c,cnt_t, dis, test_iter->z, check_iter->z,(test_iter->z - check_iter->z));
				tmp_data.push_back(point_3d(test_iter->z, check_iter->z, test_iter->z - check_iter->z));//push data
			}

			test_iter++;
			cnt_c++;
		}
		cnt_t++;
		check_iter++;
	}

	//printf_s("%d\n", cnt);

	return tmp_data;
}
#include "3dPoint.h"
#include <iostream>
/*
init 
*/
point_3d::point_3d()
{
	this->x = 0;
	this->y = 0;
	this->z = 0;
}
/*
init by x,y,z
*/
point_3d::point_3d(double x, double y, double z)
{
	this->x = x;
	this->y = y;
	this->z = z;
}

void point_3d::clear()
{
	this->x = 0;
	this->y = 0;
	this->z = 0;
}
/*
get x point
*/
double point_3d::get_x()
{
	return x;
}
/*
get y point
*/
double point_3d::get_y()
{
	return y;
}
/*
get z point
*/
double point_3d::get_z()
{
	return z;
}
/*
get dis by xy point
*/
double point_3d::get_xy_dis(point_3d a, point_3d b)
{
	return std::sqrtl((a.x - b.x)*(a.x - b.x) + (a.y - b.y)*(a.y - b.y));
}
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>graduate_designClass</class>
 <widget class="QMainWindow" name="graduate_designClass">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>1000</width>
    <height>565</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>graduate_design</string>
  </property>
  <widget class="QWidget" name="centralWidget">
   <property name="minimumSize">
    <size>
     <width>1000</width>
     <height>500</height>
    </size>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QWidget" name="widget" native="true">
      <property name="minimumSize">
       <size>
        <width>0</width>
        <height>0</height>
       </size>
      </property>
      <layout class="QVBoxLayout" name="verticalLayout_2" stretch="3,5,2,0">
       <item>
        <widget class="QLabel" name="label">
         <property name="font">
          <font>
           <family>楷体</family>
           <pointsize>24</pointsize>
          </font>
         </property>
         <property name="styleSheet">
          <string notr="true">color: rgb(85, 0, 127);</string>
         </property>
         <property name="text">
          <string>主检测线性能评估系统</string>
         </property>
         <property name="alignment">
          <set>Qt::AlignCenter</set>
         </property>
        </widget>
       </item>
       <item>
        <widget class="QWidget" name="widget_2" native="true">
         <layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1,1">
          <item>
           <widget class="QWidget" name="widget_5" native="true">
            <layout class="QVBoxLayout" name="verticalLayout_3">
             <item>
              <layout class="QHBoxLayout" name="horizontalLayout_2" stretch="1,1">
               <item>
                <widget class="QLabel" name="label_2">
                 <property name="font">
                  <font>
                   <family>楷体</family>
                   <pointsize>12</pointsize>
                  </font>
                 </property>
                 <property name="text">
                  <string>主测深线:</string>
                 </property>
                 <property name="alignment">
                  <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
                 </property>
                </widget>
               </item>
               <item>
                <widget class="QPushButton" name="open_check_data_button">
                 <property name="font">
                  <font>
                   <family>楷体</family>
                   <pointsize>12</pointsize>
                  </font>
                 </property>
                 <property name="text">
                  <string>导入主测深线</string>
                 </property>
                </widget>
               </item>
              </layout>
             </item>
             <item>
              <layout class="QHBoxLayout" name="horizontalLayout_4" stretch="1,1">
               <item>
                <widget class="QLabel" name="label_3">
                 <property name="font">
                  <font>
                   <family>楷体</family>
                   <pointsize>12</pointsize>
                  </font>
                 </property>
                 <property name="text">
                  <string>检测线:</string>
                 </property>
                 <property name="alignment">
                  <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
                 </property>
                </widget>
               </item>
               <item>
                <widget class="QPushButton" name="open_test_data_button">
                 <property name="font">
                  <font>
                   <family>楷体</family>
                   <pointsize>12</pointsize>
                  </font>
                 </property>
                 <property name="text">
                  <string>导入检测线</string>
                 </property>
                </widget>
               </item>
              </layout>
             </item>
            </layout>
           </widget>
          </item>
          <item>
           <widget class="QWidget" name="widget_4" native="true">
            <layout class="QVBoxLayout" name="verticalLayout_4">
             <item>
              <layout class="QHBoxLayout" name="horizontalLayout_5" stretch="1,1">
               <item>
                <widget class="QLabel" name="label_4">
                 <property name="font">
                  <font>
                   <family>楷体</family>
                   <pointsize>12</pointsize>
                  </font>
                 </property>
                 <property name="text">
                  <string> 差值(m)</string>
                 </property>
                 <property name="alignment">
                  <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
                 </property>
                </widget>
               </item>
               <item>
                <widget class="QLineEdit" name="err_thr_text">
                 <property name="font">
                  <font>
                   <family>楷体</family>
                   <pointsize>12</pointsize>
                  </font>
                 </property>
                 <property name="text">
                  <string>0.2</string>
                 </property>
                 <property name="alignment">
                  <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
                 </property>
                </widget>
               </item>
              </layout>
             </item>
             <item>
              <layout class="QHBoxLayout" name="horizontalLayout_6" stretch="1,1">
               <item>
                <widget class="QLabel" name="label_5">
                 <property name="font">
                  <font>
                   <family>楷体</family>
                   <pointsize>12</pointsize>
                  </font>
                 </property>
                 <property name="text">
                  <string>比例尺:</string>
                 </property>
                 <property name="alignment">
                  <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
                 </property>
                </widget>
               </item>
               <item>
                <widget class="QComboBox" name="usr_scale_comboBox">
                 <property name="font">
                  <font>
                   <family>楷体</family>
                   <pointsize>12</pointsize>
                  </font>
                 </property>
                 <item>
                  <property name="text">
                   <string>1:500</string>
                  </property>
                 </item>
                 <item>
                  <property name="text">
                   <string>1:1000</string>
                  </property>
                 </item>
                 <item>
                  <property name="text">
                   <string>1:2000</string>
                  </property>
                 </item>
                 <item>
                  <property name="text">
                   <string>1:5000</string>
                  </property>
                 </item>
                 <item>
                  <property name="text">
                   <string>1:10000</string>
                  </property>
                 </item>
                 <item>
                  <property name="text">
                   <string>1:20000</string>
                  </property>
                 </item>
                </widget>
               </item>
              </layout>
             </item>
            </layout>
           </widget>
          </item>
          <item>
           <widget class="QChartView" name="chart_view" native="true"/>
          </item>
         </layout>
        </widget>
       </item>
       <item>
        <widget class="QWidget" name="widget_3" native="true">
         <layout class="QHBoxLayout" name="horizontalLayout_3" stretch="0,0,0,0,0">
          <item>
           <widget class="QWidget" name="widget_8" native="true"/>
          </item>
          <item>
           <widget class="QPushButton" name="generate_test_txt_button">
            <property name="font">
             <font>
              <family>楷体</family>
              <pointsize>12</pointsize>
             </font>
            </property>
            <property name="text">
             <string>生成主测表</string>
            </property>
           </widget>
          </item>
          <item>
           <widget class="QWidget" name="widget_9" native="true"/>
          </item>
          <item>
           <widget class="QPushButton" name="generate_err_fate_txt_button">
            <property name="font">
             <font>
              <family>楷体</family>
              <pointsize>12</pointsize>
             </font>
            </property>
            <property name="text">
             <string>差值生成表</string>
            </property>
           </widget>
          </item>
          <item>
           <widget class="QLabel" name="rate_show">
            <property name="font">
             <font>
              <family>楷体</family>
             </font>
            </property>
            <property name="text">
             <string/>
            </property>
            <property name="alignment">
             <set>Qt::AlignCenter</set>
            </property>
           </widget>
          </item>
         </layout>
        </widget>
       </item>
       <item>
        <widget class="QLabel" name="info_label">
         <property name="font">
          <font>
           <family>楷体</family>
           <pointsize>10</pointsize>
           <italic>false</italic>
          </font>
         </property>
         <property name="text">
          <string>INFO</string>
         </property>
         <property name="alignment">
          <set>Qt::AlignCenter</set>
         </property>
        </widget>
       </item>
      </layout>
     </widget>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menuBar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>1000</width>
     <height>26</height>
    </rect>
   </property>
  </widget>
  <widget class="QToolBar" name="mainToolBar">
   <attribute name="toolBarArea">
    <enum>TopToolBarArea</enum>
   </attribute>
   <attribute name="toolBarBreak">
    <bool>false</bool>
   </attribute>
  </widget>
  <widget class="QStatusBar" name="statusBar"/>
 </widget>
 <layoutdefault spacing="6" margin="11"/>
 <customwidgets>
  <customwidget>
   <class>QChartView</class>
   <extends>QWidget</extends>
   <header location="global">qchartview.h</header>
   <container>1</container>
  </customwidget>
 </customwidgets>
 <resources>
  <include location="graduate_design.qrc"/>
 </resources>
 <connections/>
</ui>

This snippet took 0.06 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).