bambooflow Note

外部コマンド実行

最終更新:

bambooflow

- view
メンバー限定 登録/ログイン

Qt4で外部コマンド実行

外部コマンド(たとえば、"ls -lrt")を実行するようなプログラムを残しておきます。
QProcessを使ってみました。

画面イメージ


ソースコード

external_exec.tgz
MainForm.ui Designerで作成
MainForm.h
MainForm.cpp
main.cpp

  • MainForm.cppコード一部抜粋
// コマンドライン上でEnterキーを押した時点で呼ばれます。
void MainForm::slot_commandExec()
{
    QString cmd;
 
    cmd = cmdLine->text();           // コマンドライン読み込み
 
    proc->start( cmd );              // 外部コマンド実行開始
    msgView->append( "> " + cmd );   // コマンドをメッセージビューへ
 
    cmdLine->clear();                // コマンドラインクリア
}
 
// QObject::connect( proc, SIGNAL(readyReadStandardOutput()), this, SLOT(slot_appendView()) )
void MainForm::slot_appendView()
{
    QTextCodec *codec = QTextCodec::codecForName( "EUC-JP" ); // 文字コード変換
    QString str( codec->toUnicode(proc->readAllStandardOutput()) );  // 標準出力取り出し
    msgView->append( str );          // 標準出力をメッセージビューへ
    msgView->append( "------------------" );
}
 

QProcessの使いかたは、Qt3に比べて大きく変わっています。
そのため使いかたには注意する必要があります。

タグ:

Qt Qt4 QProcess
記事メニュー
目安箱バナー