#include "WindowAppLogView.h" #include "DebugManager.h" #include "Preferences.h" WindowAppLogView::WindowAppLogView(const QString& strTitle, QWidget* parent) : QWidget(parent) , m_strTitle(strTitle) { ui.setupUi(this); ui.textEdit->setStyleSheet("background-color:#464646;"); //关联Debug信息,显示到文本框 //注意,如果槽函数为lambda或者其他没有接收者的情况,需要保证槽函数中的变量有效性 //因为static变量的生命周期更长,可能槽函数所在模块已经释放资源,最好connect加上接收者 connect(DebugManager::getInstance(), &DebugManager::newDebug, this, [this](int msgType, const QString& log) { Q_UNUSED(msgType); ui.textEdit->append(log); ui.textEdit->moveCursor(QTextCursor::End); }); //关联信号和槽 QObject::connect(ui.logMode, SIGNAL(currentIndexChanged(int)), this, SLOT(ChangeShowMode(int))); ChangeShowMode(0); // 窗口禁止软键盘输入 ui.textEdit->setProperty("noinput", true); } WindowAppLogView::~WindowAppLogView() { } void WindowAppLogView::ChangeShowMode(int index) { ui.textEdit->clear(); for (int i = 0; i < DebugManager::getInstance()->m_AllDebugMsg.size(); i++) { DEBUGMSG msg = DebugManager::getInstance()->m_AllDebugMsg[i]; if (msg.msgType == QtDebugMsg && index == 1) { ui.textEdit->append(msg.strMsg); ui.textEdit->moveCursor(QTextCursor::End); } if (msg.msgType == QtInfoMsg && index == 2) { ui.textEdit->append(msg.strMsg); ui.textEdit->moveCursor(QTextCursor::End); } if (msg.msgType == QtWarningMsg && index == 3) { ui.textEdit->append(msg.strMsg); ui.textEdit->moveCursor(QTextCursor::End); } if (msg.msgType == QtCriticalMsg && index == 4) { ui.textEdit->append(msg.strMsg); ui.textEdit->moveCursor(QTextCursor::End); } if (msg.msgType == QtFatalMsg && index == 5) { ui.textEdit->append(msg.strMsg); ui.textEdit->moveCursor(QTextCursor::End); } if (index == 0) { ui.textEdit->append(msg.strMsg); ui.textEdit->moveCursor(QTextCursor::End); } } } /// /// 调整大小的消息中改变表格栏的宽度 /// /// void WindowAppLogView::resizeEvent(QResizeEvent* event) { Q_UNUSED(event); //ui.textEdit->resize(this->frameGeometry().size()); ui.textEdit->resize(this->frameGeometry().size()); }