#include "MainWidget.h" #include "./ui_MainWidget.h" MainWidget::MainWidget(QWidget* parent) : QWidget(parent), ui(new Ui::MainWidget) { ui->setupUi(this); setWindowTitle("打包Qt工具"); connect_operator(); } MainWidget::~MainWidget() { delete ui; } void MainWidget::connect_operator() { 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; } }