Files
Renderive/YSGraphic_Core/Qt/File_Gather_Widget.h
T
2026-06-29 09:40:54 +08:00

69 lines
1.7 KiB
C++

#pragma once
#include <string_view>
#include "Message.h"
#include "File_Tool.h"
#include "Text_Shower.h"
#include "Value_Select.h"
#include <QTextEdit>
#include <QWidget>
#include "Core/Base/File_Helper.h"
#include "Core/Base/JSON.h"
namespace Psc {
// 这个是用来采集文件使用的控件
class File_Gather_Widget : public QWidget, public Base_Cache {
public:
void append(const std::uint8_t* data, size_t size);
struct Config{
std::size_t buffer_size;
std::string log_path;
Config();
Psc::JSON to_json();
void from_json(Psc::JSON* that_json);
};
// 初始化参数
Byte_Select *size_select;
File_Tool *path_select;
QPushButton *confirm_button{};
Text_Shower *value;
Text_Shower *speed;
void save();
void save(Config& config);
File_Gather_Widget(std::string_view id); // 一个名称用于标识 他会在可执行文件所在目录存储一些路径信息
File_Gather file_gather;
protected:
void contextMenuEvent(QContextMenuEvent *event) override;
};
class Test_File_Gather_Widget : public QWidget {
public:
File_Gather_Widget *file_gather_widget;
Test_File_Gather_Widget() {
auto layout = new QVBoxLayout(this);
file_gather_widget = new File_Gather_Widget("Test_File_Gather_Widget");
layout->addWidget(file_gather_widget);
auto content = new QLineEdit("测试输入内容123");
auto confirm = new QPushButton("确定");
layout->addWidget(content);
layout->addWidget(confirm);
QObject::connect(confirm, &QPushButton::clicked, [this, content]() {
auto str = "123";
auto text = content->text().toStdString();
file_gather_widget->append((uint8_t*)text.data(), text.size());
});
}
};
}