Класс
Мы кратко рассмотрим программный код небольшого приложения, обеспечивающего интерфейс пользователя для внешней программы преобразования изображений. В нашем случае мы используем программу
Интерфейс пользователя приложения Image Converter (конвертор изображений) был создан при помощи
01 #ifndef CONVERTDIALOG_H
02 #define CONVERTDIALOG_H
03 #include
04 #include
05 #include "ui_convertdialog.h"
06 class ConvertDialog : public QDialog,
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 }