#include "runapplet.h" #include "ui_runapplet.h" #include #include #include RunApplet::RunApplet(QWidget *parent) : QDialog(parent) , ui(new Ui::RunApplet) { ui->setupUi(this); ui->label->setPixmap(QIcon::fromTheme("system-run-symbolic").pixmap(42, 42)); // https://forum.qt.io/post/291563 ui->cancelBtn->setIcon(style()->standardIcon(QStyle::SP_DialogCancelButton)); ui->okBtn->setIcon(style()->standardIcon(QStyle::SP_DialogOkButton)); ui->browseBtn->setIcon(style()->standardIcon(QStyle::SP_DialogOpenButton)); connect(ui->cancelBtn, &QPushButton::clicked, this, [&]() { qApp->quit(); }); connect(ui->okBtn, &QPushButton::clicked, this, &RunApplet::runApp); } void RunApplet::runApp() { QString command = ui->comboBox->currentText(); QStringList args = command.split(" "); QProcess *process = new QProcess; process->setProgram(args[0]); args.remove(0); process->setArguments(args); bool status = process->startDetached(); if (status) { qApp->quit(); } // QString errorMessage = process->errorString(); QMessageBox messageBox; messageBox.critical(0, process->program(), QString(tr("Windows cannot find '%1'. Make sure you typed the name correctly, and then try again.")).arg(process->program())); messageBox.setFixedSize(500,200); } RunApplet::~RunApplet() { delete ui; }