qt

1.控制台开关

CMakelists.txt控制开关

1
2
3
#关闭控制台
add_executable(FirstConsole WIN32 main.cpp)
#开启控制台

2.控制台输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <QApplication>
#include <QDebug>
#include <QString>
#include <QPoint>

void demonstrateQtLogging() {
// 准备一些 Qt 特有的数据类型进行演示
QString name = "Gemini";
QPoint pos(100, 200);

// 1. qDebug : 调试信息(最常用,默认颜色)
qDebug() << "Debug:" << "程序正在运行,当前坐标:" << pos;

// 2. qInfo : 状态信息(通常用于记录程序流程)
qInfo() << "Info:" << "系统初始化完成,用户:" << name;

// 3. qWarning : 警告信息(非致命问题,通常在 IDE 输出窗口显示为黄色)
qWarning() << "Warning:" << "检测到网络波动,重试中...";

// 4. qCritical : 严重错误(功能失效,通常显示为红色)
qCritical() << "Critical:" << "无法打开数据库文件!";

// 5. qFatal : 致命错误(输出后程序会立即强制退出)
// 注意:执行这一行后,后面的代码将不会运行
// qFatal("Fatal: 内存溢出,程序必须终止!");
}

int main(int argc, char *argv[]) {
QApplication a(argc, argv);

qDebug() << "--- 开始输出测试 ---";
demonstrateQtLogging();
qDebug() << "--- 测试结束 ---";

return a.exec();

}

3.控制台输入

qt没有,可以用c/cpp或者系统函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <QApplication>
#include <iostream>
#include <string>
#include <QDebug>


void testBlockingInput() {
qDebug() << ">>> [阻塞测试] 请在控制台输入一段文字,然后按回车:";

std::string userInput;
// 程序停在这里,直到你输入内容并敲回车
std::cin >> userInput;

qDebug() << ">>> [结果] 你输入的是:" << QString::fromStdString(userInput);
}


int main(int argc, char *argv[]) {
QApplication a(argc, argv);

// 跑阻塞测试 (这会导致 main 函数卡在这里)
testBlockingInput();

return a.exec();
}