func:添加导入导出数据(未完成)。
This commit is contained in:
73
src/data_edit.cpp
Normal file
73
src/data_edit.cpp
Normal file
@@ -0,0 +1,73 @@
|
||||
#include "data_edit.h"
|
||||
#include "ui_data_edit.h"
|
||||
#include <QScreen>
|
||||
#include <QClipboard>
|
||||
#include <tinyxml2.h>
|
||||
#include "../public_def.h"
|
||||
|
||||
CDataEdit::CDataEdit(QWidget* parent) : QDialog(parent), ui(new Ui::CDataEdit)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
// setMinimumWidth(600);
|
||||
setWindowTitle(u8"源属性编辑");
|
||||
|
||||
connect(ui->btnExit, &QPushButton::clicked, this, [&]() { close(); });
|
||||
connect(ui->btnAdd, &QPushButton::clicked, this, [&]() { import_data(); });
|
||||
connect(ui->btnCopy, &QPushButton::clicked, this, [&]() {
|
||||
QClipboard* clip = QApplication::clipboard();
|
||||
clip->setText(ui->plainTextEdit->toPlainText());
|
||||
});
|
||||
}
|
||||
|
||||
CDataEdit::~CDataEdit()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void CDataEdit::set_data(const QString& data)
|
||||
{
|
||||
data_ = data;
|
||||
}
|
||||
|
||||
void CDataEdit::import_data()
|
||||
{
|
||||
QString data = ui->plainTextEdit->toPlainText();
|
||||
if (data.trimmed().isEmpty()) {
|
||||
CUtil::msg(this, u8"内容为空");
|
||||
return;
|
||||
}
|
||||
QStringList list = data.trimmed().split("\n");
|
||||
for (int i = 0; i < list.size(); ++i) {
|
||||
const QString& item = list[i];
|
||||
if (item.trimmed().isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
tinyxml2::XMLDocument doc;
|
||||
doc.Parse(item.toStdString().c_str());
|
||||
if (doc.Error()) {
|
||||
CUtil::msg(this, u8"不是合法的xml语句。");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CDataEdit::showEvent(QShowEvent* event)
|
||||
{
|
||||
show_before();
|
||||
QDialog::showEvent(event);
|
||||
}
|
||||
|
||||
void CDataEdit::show_before()
|
||||
{
|
||||
QScreen* primaryScreen = QGuiApplication::primaryScreen();
|
||||
QRect screenGeometry = primaryScreen->geometry();
|
||||
setMinimumWidth(screenGeometry.width() * 0.8);
|
||||
if (is_import_) {
|
||||
ui->btnCopy->setVisible(false);
|
||||
} else {
|
||||
ui->btnAdd->setVisible(false);
|
||||
ui->plainTextEdit->clear();
|
||||
ui->plainTextEdit->appendPlainText(data_);
|
||||
}
|
||||
}
|
||||
35
src/data_edit.h
Normal file
35
src/data_edit.h
Normal file
@@ -0,0 +1,35 @@
|
||||
#ifndef DATA_EDIT_H
|
||||
#define DATA_EDIT_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
class CDataEdit;
|
||||
}
|
||||
|
||||
class CDataEdit : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit CDataEdit(QWidget* parent = nullptr);
|
||||
~CDataEdit();
|
||||
|
||||
public:
|
||||
void set_data(const QString& data);
|
||||
void import_data();
|
||||
|
||||
protected:
|
||||
void showEvent(QShowEvent* event) override;
|
||||
void show_before();
|
||||
|
||||
public:
|
||||
bool is_import_{false};
|
||||
bool is_import_sucess_{false};
|
||||
|
||||
private:
|
||||
Ui::CDataEdit* ui;
|
||||
QString data_{};
|
||||
};
|
||||
|
||||
#endif // DATA_EDIT_H
|
||||
62
src/data_edit.ui
Normal file
62
src/data_edit.ui
Normal file
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>CDataEdit</class>
|
||||
<widget class="QDialog" name="CDataEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>643</width>
|
||||
<height>407</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QPlainTextEdit" name="plainTextEdit"/>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnCopy">
|
||||
<property name="text">
|
||||
<string>复制</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnAdd">
|
||||
<property name="text">
|
||||
<string>添加</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnExit">
|
||||
<property name="text">
|
||||
<string>退出</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
Reference in New Issue
Block a user