全局theme

This commit is contained in:
taynpg 2025-06-07 10:22:08 +08:00
parent 2d7fd92013
commit 491402f7bb
6 changed files with 302 additions and 283 deletions

5
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,5 @@
{
"files.associations": {
"qapplication": "cpp"
}
}

View File

@ -43,12 +43,13 @@ set(PROJECT_SOURCES
src/xml_opr.h src/xml_opr.cpp src/xml_opr.h src/xml_opr.cpp
src/config.h src/config.cpp public_def.cpp public_def.h src/config.h src/config.cpp public_def.cpp public_def.h
resource/ico.rc src/attribute_edit.ui src/attribute_edit.h resource/ico.rc src/attribute_edit.ui src/attribute_edit.h
src/attribute_edit.cpp flatgray.qrc src/attribute_edit.cpp
src/data_edit.h src/data_edit.cpp src/data_edit.ui src/data_edit.h src/data_edit.cpp src/data_edit.ui
src/QCustomQLineEdit.h src/QCustomQLineEdit.cpp src/QCustomQLineEdit.h src/QCustomQLineEdit.cpp
form/qformatset.h form/qformatset.cpp form/qformatset.ui form/qformatset.h form/qformatset.cpp form/qformatset.ui
resource/QtTheme.qrc resource/QtTheme.qrc
resource.qrc resource.qrc
#flatgray.qrc
) )
if (MSVC) if (MSVC)

View File

@ -2,7 +2,6 @@
#include <QClipboard> #include <QClipboard>
#include <QDateTime> #include <QDateTime>
#include <QFile>
#include <QKeyEvent> #include <QKeyEvent>
#include <QRegularExpression> #include <QRegularExpression>
#include <QScreen> #include <QScreen>
@ -16,7 +15,7 @@
constexpr std::size_t g_OnePage = 100; constexpr std::size_t g_OnePage = 100;
namespace fs = std::filesystem; namespace fs = std::filesystem;
MainWidget::MainWidget(QWidget* parent) : QWidget(parent), ui(new Ui::MainWidget) MainWidget::MainWidget(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWidget)
{ {
ui->setupUi(this); ui->setupUi(this);
@ -140,16 +139,12 @@ MainWidget::MainWidget(QWidget* parent) : QWidget(parent), ui(new Ui::MainWidget
restoreGeometry(settings.value("geometry").toByteArray()); restoreGeometry(settings.value("geometry").toByteArray());
settings.endGroup(); settings.endGroup();
//QFile qss_file("://qss/lightblue.css"); // QFile qss_file("://qss/lightblue.css");
// QFile qss_file("://qss/flatgray.css"); // QFile qss_file("://qss/flatgray.css");
// if (qss_file.open(QFile::ReadOnly)) { // if (qss_file.open(QFile::ReadOnly)) {
// qApp->setStyleSheet(qss_file.readAll()); // qApp->setStyleSheet(qss_file.readAll());
// } // }
QFile file(":/QtTheme/theme/Flat/Light/Blue/Pink.qss");
if (file.open(QFile::ReadOnly)) {
setStyleSheet(file.readAll());
}
init_menu(); init_menu();
// 基本处理 // 基本处理
base_init(""); base_init("");

View File

@ -2,12 +2,13 @@
#define MAINWIDGET_H #define MAINWIDGET_H
#include <QAction> #include <QAction>
#include <QHBoxLayout>
#include <QMainWindow>
#include <QMenu> #include <QMenu>
#include <QMessageBox> #include <QMessageBox>
#include <QTableWidget> #include <QTableWidget>
#include <QWidget> #include <QWidget>
#include <unordered_map> #include <unordered_map>
#include <QHBoxLayout>
#include "conf_setting.h" #include "conf_setting.h"
#include "src/attribute_edit.h" #include "src/attribute_edit.h"
@ -42,7 +43,7 @@ class MainWidget;
QT_END_NAMESPACE QT_END_NAMESPACE
using ump_t = std::unordered_map<int, int>; using ump_t = std::unordered_map<int, int>;
class MainWidget : public QWidget class MainWidget : public QMainWindow
{ {
Q_OBJECT Q_OBJECT
@ -53,8 +54,7 @@ public:
public: public:
void set_work_exe(char* path); void set_work_exe(char* path);
void generate_table_widget(); void generate_table_widget();
void push_content(const std::vector<Element_t*>& eles, std::size_t page = 1, void push_content(const std::vector<Element_t*>& eles, std::size_t page = 1, bool auto_jump_pre = false);
bool auto_jump_pre = false);
private: private:
bool read(const QString& file_path); bool read(const QString& file_path);

View File

@ -1,333 +1,346 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>MainWidget</class> <class>MainWidget</class>
<widget class="QWidget" name="MainWidget"> <widget class="QMainWindow" name="MainWidget">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1139</width> <width>1171</width>
<height>591</height> <height>538</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>MainWidget</string> <string>MainWindow</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_2"> <widget class="QWidget" name="centralwidget">
<item> <layout class="QVBoxLayout" name="verticalLayout_2">
<widget class="QGroupBox" name="groupBox"> <item>
<property name="title"> <widget class="QGroupBox" name="groupBox">
<string>1基本信息</string> <property name="title">
</property> <string>1基本信息</string>
<layout class="QHBoxLayout" name="horizontalLayout_5"> </property>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QPushButton" name="btnHis">
<property name="text">
<string>历史</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnSelectFile">
<property name="text">
<string>选择文件</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnFormat">
<property name="text">
<string>重排版(单独)</string>
</property>
</widget>
</item>
<item>
<widget class="QCustomQLineEdit" name="edStatus"/>
</item>
<item>
<widget class="QComboBox" name="cbConfig"/>
</item>
<item>
<widget class="QPushButton" name="btnRead">
<property name="text">
<string>加载</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnBackup">
<property name="text">
<string>备份</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnResort">
<property name="text">
<string>重排序</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnSave">
<property name="text">
<string>保存</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>2.操作</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rbReplaceSelect">
<property name="text">
<string>所选</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rbAllPage">
<property name="text">
<string>所有页</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rbRepCurPage">
<property name="text">
<string>当前页</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rbRepAll">
<property name="text">
<string>全局</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="edRepPre"/>
</item>
<item>
<widget class="QPushButton" name="btnReplace">
<property name="text">
<string>一般替</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnRxReplace">
<property name="text">
<string>正则替</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="edRepAfter"/>
</item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbCaseSensitive">
<property name="text">
<string>区分大小</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="edSearchKey">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnSearch">
<property name="text">
<string>搜索</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnReset">
<property name="text">
<string>重置</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>3.数据</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="widget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item> <item>
<widget class="QPushButton" name="btnHis"> <widget class="QPushButton" name="btnExit">
<property name="text"> <property name="text">
<string>历史</string> <string>退出</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QPushButton" name="btnSelectFile"> <widget class="QPushButton" name="btnExport">
<property name="text"> <property name="text">
<string>选择文件</string> <string>导出</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QPushButton" name="btnFormat"> <widget class="QPushButton" name="btnImport">
<property name="text"> <property name="text">
<string>重排版(单独)</string> <string>导入</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCustomQLineEdit" name="edStatus"/> <widget class="QComboBox" name="cbUnit"/>
</item> </item>
<item> <item>
<widget class="QComboBox" name="cbConfig"/> <spacer name="horizontalSpacer_3">
</item>
<item>
<widget class="QPushButton" name="btnRead">
<property name="text">
<string>加载</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnBackup">
<property name="text">
<string>备份</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnResort">
<property name="text">
<string>重排序</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnSave">
<property name="text">
<string>保存</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>2.操作</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="Line" name="line">
<property name="orientation"> <property name="orientation">
<enum>Qt::Orientation::Vertical</enum> <enum>Qt::Orientation::Horizontal</enum>
</property> </property>
</widget> <property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item> </item>
<item> <item>
<widget class="QRadioButton" name="rbReplaceSelect"> <widget class="QPushButton" name="btnSet">
<property name="text"> <property name="text">
<string>所选</string> <string>配置设置</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QRadioButton" name="rbAllPage"> <spacer name="horizontalSpacer">
<property name="text">
<string>所有页</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rbRepCurPage">
<property name="text">
<string>当前页</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rbRepAll">
<property name="text">
<string>全局</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="edRepPre"/>
</item>
<item>
<widget class="QPushButton" name="btnReplace">
<property name="text">
<string>一般替</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnRxReplace">
<property name="text">
<string>正则替</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="edRepAfter"/>
</item>
<item>
<widget class="Line" name="line_2">
<property name="orientation"> <property name="orientation">
<enum>Qt::Orientation::Vertical</enum> <enum>Qt::Orientation::Horizontal</enum>
</property> </property>
</widget> <property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="cbCaseSensitive"> <widget class="QLineEdit" name="edCurPage">
<property name="text">
<string>区分大小</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="edSearchKey">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
</widget> <property name="maximumSize">
</item> <size>
<item> <width>50</width>
<widget class="QPushButton" name="btnSearch"> <height>16777215</height>
<property name="text"> </size>
<string>搜索</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QPushButton" name="btnReset"> <widget class="QLabel" name="label">
<property name="text"> <property name="text">
<string>重置</string> <string>/</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>3.数据</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<widget class="QWidget" name="widget" native="true"> <widget class="QLineEdit" name="edAllPage">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="maximumSize">
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>页</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnJump">
<property name="text">
<string>跳转</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnPagePre">
<property name="text">
<string>上一页</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnPageNext">
<property name="text">
<string>下一页</string>
</property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </item>
</item> </layout>
<item> </widget>
<layout class="QHBoxLayout" name="horizontalLayout"> <widget class="QMenuBar" name="menubar">
<item> <property name="geometry">
<widget class="QPushButton" name="btnExit"> <rect>
<property name="text"> <x>0</x>
<string>退出</string> <y>0</y>
</property> <width>1171</width>
</widget> <height>33</height>
</item> </rect>
<item> </property>
<widget class="QPushButton" name="btnExport"> </widget>
<property name="text"> <widget class="QStatusBar" name="statusbar"/>
<string>导出</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnImport">
<property name="text">
<string>导入</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="cbUnit"/>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="btnSet">
<property name="text">
<string>配置设置</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLineEdit" name="edCurPage">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>/</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="edAllPage">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>页</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnJump">
<property name="text">
<string>跳转</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnPagePre">
<property name="text">
<string>上一页</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnPageNext">
<property name="text">
<string>下一页</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget> </widget>
<customwidgets> <customwidgets>
<customwidget> <customwidget>

View File

@ -1,6 +1,6 @@
#include <QApplication> #include <QApplication>
#include <clocale> #include <clocale>
#include <QFile>
#include "MainWidget.h" #include "MainWidget.h"
int main(int argc, char *argv[]) int main(int argc, char *argv[])
@ -16,6 +16,11 @@ int main(int argc, char *argv[])
//a.setStyle("windows"); //a.setStyle("windows");
#endif #endif
QFile file(":/QtTheme/theme/Flat/Light/Blue/Pink.qss");
if (file.open(QFile::ReadOnly)) {
a.setStyleSheet(file.readAll());
}
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif #endif