当前位置: 首页 > article >正文

qt creator开发一个Linux 下运行的无界面的程序

  1. 安装 Qt 和 Qt Creator
    确保你已经安装了 Qt 和 Qt Creator。如果没有,按以下步骤安装:
在 Ubuntu 上安装 Qt 和 Qt Creator:
sudo apt update
sudo apt install qtcreator qtbase5-dev

在其他 Linux 系统上:
请参考 Qt 官网 或系统的包管理器进行安装。

  1. 创建一个无界面程序
    打开 Qt Creator,点击 文件 -> 新建文件或项目。
    在弹出的对话框中选择 应用程序 -> Qt 控制台应用程序,然后点击 选择。
    输入项目名称,选择存储路径,点击 下一步。
    选择合适的 Qt 版本(确保你选择的是 Qt 5 或 Qt 6,取决于你的安装版本),点击 下一步。
    在构建套件中选择你正在使用的 Linux 环境配置,然后点击 完成。

  2. 修改项目代码为无界面程序
    Qt 控制台应用程序通常会包含一个 QApplication 对象,而这个对象通常是用于 GUI(图形界面)应用。如果你要创建一个无界面程序,我们将使用 QCoreApplication,它不依赖图形界面,因此更适合做后台、服务类等无界面的任务。

示例代码:

修改 main.cpp 文件,使其成为一个无界面的程序:

#include <QCoreApplication>
#include <QDebug>
#include <QDateTime>  // 添加这个头文件
int main(int argc, char *argv[])
{
    // 使用 QCoreApplication 而不是 QApplication
    QCoreApplication a(argc, argv);

    // 你的程序逻辑
    qDebug() << "Hello, this is a headless Qt application running on Linux.";

    // 模拟一个后台任务
    for (int i = 0; i < 5; ++i) {
        qDebug() << "Running task" << i;
        QThread::sleep(1);  // 模拟任务执行
    }

    // 退出应用
    return a.exec();
}

在这个例子中,我们使用了 QCoreApplication,它不需要窗口管理,因此更适合无界面程序。qDebug() 用于在控制台输出日志信息,QThread::sleep(1) 模拟了一个简单的任务延迟。

  1. 构建并运行
    4.1 构建项目
    点击 Qt Creator 的绿色 构建按钮(或者按 Ctrl + R),构建你的项目。确保没有错误,并且编译成功。

4.2 运行项目
在 Qt Creator 中点击 运行按钮(或者按 Ctrl + R)。此时,程序将运行,并且控制台中会显示输出内容:

Hello, this is a headless Qt application running on Linux.
Running task 0
Running task 1
Running task 2
Running task 3
Running task 4
  1. 如何在终端中运行
    构建项目后,你会在 build 目录下找到可执行文件(通常是 项目名)。
    在终端中切换到该目录,然后运行你的程序:
    bash
    复制代码
    ./your_project_name
    输出将类似于:
Hello, this is a headless Qt application running on Linux.
Running task 0
Running task 1
Running task 2
Running task 3
Running task 4
  1. 如何调试和日志输出
    如果你想查看更多的调试信息,可以在代码中增加更多的 qDebug() 语句,或者使用 qWarning()、qCritical() 等 Qt 提供的日志输出函数。
qWarning() << "This is a warning message.";
qCritical() << "This is a critical message.";

如果程序没有图形界面,调试信息会直接输出到 Qt Creator 的调试输出窗口 或者你运行程序的终端窗口。

  1. 背景任务和定时器
    如果你希望程序在后台运行并定时执行任务,可以使用 QTimer 或 QThread 来管理后台任务。

示例:使用 QTimer 定时器

#include <QCoreApplication>
#include <QDebug>
#include <QTimer>
#include <QDateTime>  // 添加这个头文件

void task() {
    qDebug() << "Task is running at" << QDateTime::currentDateTime().toString();
}

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

    // 设置定时器,每隔 5 秒执行一次任务
    QTimer timer;
    QObject::connect(&timer, &QTimer::timeout, &task);
    timer.start(5000);  // 5000 毫秒(即 5 秒)

    // 开始事件循环
    return a.exec();
}

该示例使用 QTimer 每 5 秒执行一次任务。QTimer 通过信号和槽机制触发任务,类似于传统的定时器功能。

  1. 无界面程序的常见应用场景
    无界面程序常用于以下场景:

后台服务:例如守护进程(Daemon)或定时任务。
日志采集器:收集系统或应用程序的日志。
数据处理程序:例如自动化的数据分析、批处理任务等。
网络服务器:如一个简单的 TCP/UDP 服务器。
嵌入式系统开发:为没有图形界面的设备(如路由器、传感器等)编写程序。

  1. 部署和发布
    对于没有图形界面的程序,你的发布过程会更加简单,只需要将可执行文件传输到目标 Linux 系统,确保目标系统上安装了必要的 Qt 库(例如通过 apt install qt5-base 安装)。没有界面时,程序不需要 GUI 相关的库,因此依赖较少。

总结
通过 Qt Creator 创建一个 无界面程序 其实非常简单,你只需要使用 QCoreApplication 替代 QApplication,然后根据需要编写程序的逻辑。该程序可以在 Linux 环境中运行,并通过控制台输出日志或结果。你可以根据需要扩展任务逻辑,使用定时器或线程等功能来进行后台处理。


http://www.kler.cn/a/392410.html

相关文章:

  • 51c视觉~CV~合集10
  • 人类心智逆向工程:AGI的认知科学基础
  • 2024美团秋招硬件开发笔试真题及答案解析
  • 企业商业秘密百问百答之三十八【商务保密协议签订】
  • sql表的增删改、替换
  • 嵌入式知识点总结 操作系统 专题提升(四)-上下文
  • 力扣617:合并二叉树
  • Cesium基础-(Entity)-(label )
  • 如何快速开发一套MES系统?
  • SpringBoot(八)使用AES库对字符串进行加密解密
  • 每日计划-1109
  • Git - 日志
  • Python+Appium编写脚本
  • TCP(上):成熟可靠的传输层协议
  • MySQL中指定字段的某个值排在前面
  • PET-文件包含-FINISHED
  • LeetCode每日一题1547---切棍子的最小成本
  • [Docker#6] 镜像 | 常用命令 | 迁移镜像 | 压缩与共享
  • ElegantRL:高效、稳定的深度强化学习开源框架
  • 力扣872:叶子相似的树
  • 架构师考试 五大架构风格
  • Diffusion Policy——斯坦福机器人UMI所用的扩散策略:从原理到其编码实现(含Diff-Control、ControlNet详解)
  • Android 默认科大讯飞语音包 即 默认文字转语音TTS包
  • 借助Aapose.Cells ,在 Node.js 中将 Excel 转换为 JSON
  • Linux基础(十四)——BASH
  • 使用 Web Search 插件扩展 GitHub Copilot 问答