ここで私はその周りに横たわっていたいくつかのコードは、コンソールを作成し、入力と出力を添付します:私はQtのを使用していないが、あなたはそのどこかに固執し、それを動作させることができるはず
#include <Windows.h>
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
void Console::createConsole()
{
AllocConsole();
SetConsoleTitle("Debug console");
int hConHandle;
long lStdHandle;
FILE *fp; // redirect unbuffered STDOUT to the console
lStdHandle = (long)GetStdHandle(STD_OUTPUT_HANDLE);
hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
fp = _fdopen(hConHandle, "w");
*stdout = *fp;
setvbuf(stdout, NULL, _IONBF, 0);
// redirect unbuffered STDIN to the console
lStdHandle = (long)GetStdHandle(STD_INPUT_HANDLE);
hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
fp = _fdopen(hConHandle, "r");
*stdin = *fp;
setvbuf(stdin, NULL, _IONBF, 0);
// redirect unbuffered STDERR to the console
lStdHandle = (long)GetStdHandle(STD_ERROR_HANDLE);
hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
fp = _fdopen(hConHandle, "w");
*stderr = *fp;
setvbuf(stderr, NULL, _IONBF, 0);
}
。
編集:ヘッダは、これは私が推測する作品
Qtでどうやってやっていますか? QApplicationとQCoreApplicationの両方を使用していますか?もしそうでなければ、QApplication * appを試してみましたか? if(argc == 1)app =新しいQCoreApplication(...); else app = new QApplication(...);? – emsr
現在、私はargcをチェックしています。> 1の場合は、show()を呼び出すのではなく、データを設定して基本的にユーザをクリックする別のコンストラクタを使用しています...私は上記のことに慣れていません私はC++とQtの初心者です.2つの完全な別のクラスがあります.1つはGUIであればメインで構築され、もう1つはコンソールアプリケーションであれば別のクラスです。これは、私が避けようとしている重複の多くをやっているように思えます。 – user1341929
QCoreApplicationはQCoreApplicationを継承するQApplicationの基本クラスです。 QCoreApplicationはコンソールアプリケーション向けです。 (私は上記のQCoreApplication * appを宣言していたはずです)。私は上記のようにあなたがargc == 1とGUIアプリケーションのコンソールアプリケーションを取得する必要がありますようにアプリを割り当てる場合は、私は思っている。 – emsr