In Qt Creator,I could view the qDebug (,qWarning ),etc.outputdirectlyintheide.howcouldidothisinvisualstudio?
whenyouruntheprogramwithanattacheddebugger,itwillshowintheoutputwindowofvisualstudio, butfordebugpurposesioftenredirectthedebugoutputtosomekindofnicelogwindow,whichyoucandobyusingthefunctionqinstalllmsghandler 3330
the code that i use:
#包含
#包含
#包含
#包含
#包含
#包含
#包含
#包含
#包含
#包含
q构件* debug _ message _ display _构件=null;
qplaintextedit * debug _ message _ display _ textedit=null;
void setupDebugDisplay (;
voiddebugmessagedisplayfunc (qtmsgtypetype,const char *msg );
{
a.setquitonlastwindowclosed (true );
setupDebugDisplay (
//your code here. e.g:
//YourMainWindow mainWindow;
删除调试_ message _ display _构件;
返回;
}
void setupDebugDisplay (
{
有霸气的果汁构件=new q构件();
构件设置窗口标题(debuglog );
构件设置属性(Qt :3360 wa _ quit onclose,false ); //quitonlywhenmainwindowisclosed
ttdtd layout=new QVBoxLayout (;
构件设置布局(layout;
qlaintextedit * textedit=newqplaintextedit (小部件);
font.setstylehint (q font :3360 typewriter;
文本集字体(字体;
文本集就绪(true );
添加到布局构件(文本;
构件- show (;
debug _ message _ display _构件=构件;
debug _ message _ display _ textedit=textedit;
qinstallmsghandler (debugmessagedisplayfunc;
}
voiddebugmessagedisplayfunc (qtmsgtypetype,const char *msg ) ) ) ) ) ) ) ) ) ) )。
{
bool do_abort=false;
const char* msgTypeStr=NULL;
开关(type ) {
case QtDebugMsg:
黑;
case QtWarningMsg:
黑;
case QtCriticalMsg:
黑;
case QtFatalMsg:
do_abort=true;
默认:
资产(0;
返回;
}
. arg (now.tostring (hh : mm : ss : zzz ) )
. arg(msgtypestr ).arg ) msg;
//打印on console :
frintf(stderr,' %sn ',formattedMessage.toLocal8Bit ).constData );
//打印在调试日志窗口
{
boolismainthread=q thread :3360当前读(==qapplication 33603360 instance ) -读);
debug _ message _ display _ textedit ) )。
{
无格式(if ) )。
debug _ message _ display _ textedit-append plaintext (格式消息);
else //additional code,sothatqdebugcallsinthreadswillworkaswell
}
}
}