07 public Ui::ConvertDialog
08 {
09 Q_OBJECT
10 public:
11 ConvertDialog(QWidget *parent = 0);
12 private slots:
13 void on_browseButton_clicked;
14 void on_convertButton_clicked;
15 void updateOutputTextEdit;
16 void processFinished(int exitCode, QProcess::ExitStatus exitStatus);
17 void processError(QProcess::ProcessError error);
18 private:
19 QProcess process;
20 QString targetFile;
21 };
22 #endif
Этот заголовочный файл создается по тому знакомому образцу, который используется в подклассах форм
01 ConvertDialog::ConvertDialog(QWidget *parent)
02 : QDialog(parent)
03 {
04 setupUi(this);
05 connect(&process, SIGNAL(readyReadStandardError),
06 this, SLOT(updateOutputTextEdit));
07 connect(&process, SIGNAL(finished(int, QProcess::ExitStatus)),
08 this, SLOT(processFinished(int, QProcess::ExitStatus)));
09 connect(&process, SIGNAL(error(QProcess::ProcessError)),
10 this, SLOT(processError(QProcess::ProcessError)));
11 }
Вызов
01 void ConvertDialog::on_browseButton_clicked
02 {
03 QString initialName = sourceFileEdit->text;
04 if (initialName.isEmpty)
05 initialName = QDir::homePath;
06 QString fileName = QFileDialog::getOpenFileName(this,
07 tr("Choose File"), initialName);
08 fileName = QDir::convertSeparators(fileName);
09 if (!fileName.isEmpty) {
10 sourceFileEdit->setText(fileName);
11 convertButton->setEnabled(true);
12 }
13 }
Сигнал
01 void ConvertDialog::on_convertButton_clicked
02 {
03 QString sourceFile = sourceFileEdit->text;
04 targetFile = QFileInfo(sourceFile).path
05 + QDir::separator + QFileInfo(sourceFile).baseName
06 + "." + targetFormatComboBox->currentText.toLower;
07 convertButton->setEnabled(false);
08 outputTextEdit->clear;
09 QStringList args;
10 if (enhanceCheckBox->isChecked)
11 args << "-enhance";
12 if (monochromeCheckBox->isChecked)
13 args << "-monochrome";
14 args << sourceFile << targetFile;