QT 응용 프로그램에서 터미널에서 응용 프로그램을 실행하면 터미널에 일부 실시간 정보가 인쇄되기를 원합니다.qt 터미널에 인쇄
내가 printf ("print this") (주 또는 페인트 이벤트 중에)를 사용하면 GUI를 닫을 때까지 인쇄되지 않습니다.
왜 그런가요? 어떻게 정보를 실시간으로 인쇄 할 수 있습니까? (나는 리눅스를 사용하고있다)
고마워!
QT 응용 프로그램에서 터미널에서 응용 프로그램을 실행하면 터미널에 일부 실시간 정보가 인쇄되기를 원합니다.qt 터미널에 인쇄
내가 printf ("print this") (주 또는 페인트 이벤트 중에)를 사용하면 GUI를 닫을 때까지 인쇄되지 않습니다.
왜 그런가요? 어떻게 정보를 실시간으로 인쇄 할 수 있습니까? (나는 리눅스를 사용하고있다)
고마워!
가 표준 출력에 기록하려면, 당신은 당신의 프로젝트 파일 설정이 CONFIG += console
를 추가하고 원하는대로에 대한 printf
의 cout
를 사용해야합니다. qDebug
은 기본적으로 stderr
으로 인쇄됩니다. 자세한 내용은이 항목을 참조하십시오. - How to print to console when using Qt
기본 메시지 처리기가 출력을 표준 출력으로 보내는 것으로 확신합니다. 나는 항상 그런 식으로 사용합니다. –
@JacobRobbins 예,하지만 CONFIG + = console이 추가되지 않으면 stderr로 전송되기 때문에 qDebug를 제외하고 표시되지 않습니다. – Shf
CONFIG + = console은 Windows에서만 필요합니다. Unix에서 printf, qDebug 등은 항상 콘솔에 출력됩니다 (qdebug가 비활성화되지 않은 경우). –
Qt는 printf 출력을 방해하지 않습니다. (윈도우즈에서 qmake (Qt가 아니라)는 리눅스에 적용되지 않는다). 그러나 stdout에 대한 버퍼링 동작은 버퍼가 플러시 될 때까지 printf("print this")
이 인쇄되지 않는 것으로 간주합니다. 예를 들어보십시오. fflush(stdout)
또는 간단히 버퍼를 플러시하도록 줄 바꿈을 추가하십시오 (printf("print this\n")
). 그것은 Qt와 전혀 관련이 없습니다.
파일에 CONFIG -= app_bundle
을 추가 할 수도 있습니다.
'qDebug() << "some text";'시도 했습니까? – Shf
[Qt를 사용할 때 콘솔로 인쇄하는 방법] 중복 가능 (http://stackoverflow.com/questions/3886105/how-to-print-to-console-when-using-qt) –