From fa0b08c548c59ade58a37d51c78205f504269618 Mon Sep 17 00:00:00 2001 From: taynpg Date: Thu, 11 Apr 2024 13:08:05 +0800 Subject: [PATCH] =?UTF-8?q?ui=E9=80=BB=E8=BE=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MainWidget.cpp | 82 +++++++++++++++++++++++++++++++++++++++++++++++--- MainWidget.h | 25 ++++++++++++--- MainWidget.ui | 12 ++++---- 3 files changed, 104 insertions(+), 15 deletions(-) diff --git a/MainWidget.cpp b/MainWidget.cpp index 06dd49a..b7727f7 100644 --- a/MainWidget.cpp +++ b/MainWidget.cpp @@ -1,15 +1,87 @@ #include "MainWidget.h" #include "./ui_MainWidget.h" -MainWidget::MainWidget(QWidget *parent) - : QWidget(parent) - , ui(new Ui::MainWidget) +MainWidget::MainWidget(QWidget* parent) : QWidget(parent), ui(new Ui::MainWidget) { ui->setupUi(this); + setWindowTitle("打包Qt工具"); + connect_operator(); } -MainWidget::~MainWidget() +MainWidget::~MainWidget() { delete ui; } + +void MainWidget::connect_operator() { - delete ui; + connect(ui->btnSelcetBinary, &QPushButton::clicked, this, [=]() { SelectFile(this, ui->edBinary, "请选择Qt二进制文件", "所有文件 (*)"); }); + connect(ui->btnSelectOut, &QPushButton::clicked, this, [=]() { SelectDirectory(this, ui->edOutDir); }); + connect(ui->btnSelectQt, &QPushButton::clicked, this, [=]() { SelectDirectory(this, ui->edQtDir); }); + connect(ui->btnAddEnv, &QPushButton::clicked, this, [=]() { add_env_btn(); }); + connect(ui->btnDelEnv, &QPushButton::clicked, this, [=]() { del_env_btn(); }); + connect(ui->btnGenerate, &QPushButton::clicked, this, [=]() { generate(); }); } +void MainWidget::add_env_btn() +{ + QString env = SelectDirectory(this, nullptr); + if (env.isEmpty()) { + return; + } + ui->listWidget->addItem(env); +} + +void MainWidget::generate() +{ + +} + +void MainWidget::del_env_btn() +{ + QListWidgetItem* item = ui->listWidget->currentItem(); + if (!item) { + return; + } + delete ui->listWidget->takeItem(ui->listWidget->currentRow()); +} + +QString MainWidget::SelectDirectory(QWidget* parent, QLineEdit* pEdit, const QString& pre_path) +{ + QString start_path = pre_path; + QDir folder(start_path); + if (start_path.isEmpty() || !folder.exists()) { + start_path = QDir::homePath(); + } + QString selectedDirectory = QFileDialog::getExistingDirectory(parent, u8"选择文件夹", start_path); + + if (selectedDirectory.isEmpty()) { + return ""; + } + if (pEdit) { + pEdit->setText(selectedDirectory); + } + return selectedDirectory; +} + +QString MainWidget::SelectFile(QWidget* parent, QLineEdit* pEdit, const QString& info, const QString& filter) +{ + QString filePath = QFileDialog::getOpenFileName(parent, info, QDir::homePath(), filter); + if (!filePath.isEmpty() && !pEdit) { + pEdit->setText(filePath); + } + return filePath; +} + +bool MainWidget::isOk(QWidget* parent, const QString& title, const QString& content) +{ + QMessageBox questionBox(parent); + questionBox.setText(content); + questionBox.setWindowTitle(title); + questionBox.setIcon(QMessageBox::Question); + questionBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + int result = questionBox.exec(); + + if (result != QMessageBox::Yes) { + return false; + } else { + return true; + } +} \ No newline at end of file diff --git a/MainWidget.h b/MainWidget.h index 81834b3..c643223 100644 --- a/MainWidget.h +++ b/MainWidget.h @@ -1,10 +1,16 @@ #ifndef MAINWIDGET_H #define MAINWIDGET_H +#include +#include +#include +#include #include QT_BEGIN_NAMESPACE -namespace Ui { class MainWidget; } +namespace Ui { +class MainWidget; +} QT_END_NAMESPACE class MainWidget : public QWidget @@ -12,10 +18,21 @@ class MainWidget : public QWidget Q_OBJECT public: - MainWidget(QWidget *parent = nullptr); + MainWidget(QWidget* parent = nullptr); ~MainWidget(); private: - Ui::MainWidget *ui; + void connect_operator(); + void add_env_btn(); + void del_env_btn(); + void generate(); + +private: + static QString SelectDirectory(QWidget* parent, QLineEdit* pEdit, const QString& pre_path = ""); + static QString SelectFile(QWidget* parent, QLineEdit* pEdit, const QString& info, const QString& filter); + static bool isOk(QWidget* parent, const QString& title, const QString& content); + +private: + Ui::MainWidget* ui; }; -#endif // MAINWIDGET_H +#endif // MAINWIDGET_H diff --git a/MainWidget.ui b/MainWidget.ui index ac2c35e..13bce06 100644 --- a/MainWidget.ui +++ b/MainWidget.ui @@ -6,7 +6,7 @@ 0 0 - 760 + 1026 739 @@ -87,7 +87,7 @@ - + @@ -125,7 +125,7 @@ - + @@ -148,14 +148,14 @@ - + 添加 - + 删除 @@ -177,7 +177,7 @@ - +