MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Qtの基礎 - プロセスのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Qtの基礎 - プロセス
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Qtにおいて、<code>QProcess</code>クラスを使用して、プロセスを制御する手順を記載する。<br> <br><br> == サンプルコード == プロセスを非同期で実行する場合は<code>QProcess::start()</code>、同期して実行する場合は<code>QProcess.execute()</code>を使用する。<br> また、非同期で実行する場合、標準出力や標準エラー出力を取得してウィンドウに表示することもできる。<br> <br> 以下の例は、プロセスを非同期で実行して、プロセスの標準出力と標準エラー出力をウィンドウに表示している。<br> <syntaxhighlight lang="c++"> // MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QProcess> QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT private: QProcess m_proc; public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private slots: // プロセス用のスロット void ProcessFinished(int exitCode, QProcess::ExitStatus exitStatus); void UpdateOutput(); void UpdateError(); }; #endif // MAINWINDOW_H </syntaxhighlight> <br> <syntaxhighlight lang="c++"> // MainWindow.cpp #include <QApplication> #include <QProcess> #include "Mainwindow.h" #include "ui_Mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // プロセス用のシグナルとスロットを接続する QObject::connect(&m_proc, SIGNAL(readyReadStandardOutput()), this, SLOT(UpdateOutput())); QObject::connect(&m_proc, SIGNAL(readyReadStandardError()), this, SLOT(UpdateError())); QObject::connect(&m_proc, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(ProcessFinished(int, QProcess::ExitStatus))); } MainWindow::~MainWindow() { delete ui; } // スロット : 標準出力を表示する void MainWindow::UpdateOutput() { // 標準出力を取得して文字列にする QByteArray output = m_proc.readAllStandardOutput(); QString str = QString::fromLocal8Bit(output); } // スロット : 標準エラー出力を表示する void MainWindow::UpdateError() { // 標準エラー出力を取得して文字列にする QByteArray output = m_proc.readAllStandardError(); QString str = QString::fromLocal8Bit(output); } // スロット : プロセス終了時 void MainWindow::ProcessFinished(int exitCode, QProcess::ExitStatus exitStatus) { if(exitStatus == QProcess::CrashExit) { QMessageBox::warning(this, tr("Error"), tr("Crashed")); } else if(exitCode != 0) { QMessageBox::warning(this, tr("Error"), tr("Failed")); } else { // 正常終了時の処理 } } // プロセスの起動 void MainWindow::ProcessStart() { QStringList strlArgs; listArgs << "<引数1>" << "<引数2>"; m_proc.start("<実行するプログラムのパス>", listArgs); } </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:Qt]]
Qtの基礎 - プロセス
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse