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

  1. 安装 Qt 和 Qt Creator
    确保你已经安装了 Qt 和 Qt Creator。如果没有,按以下步骤安装:
cpp 复制代码
在 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,它不依赖图形界面,因此更适合做后台、服务类等无界面的任务。

示例代码:

cpp 复制代码
修改 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)。此时,程序将运行,并且控制台中会显示输出内容:

cpp 复制代码
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
    输出将类似于:
cpp 复制代码
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 提供的日志输出函数。
cpp 复制代码
qWarning() << "This is a warning message.";
qCritical() << "This is a critical message.";

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

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

示例:使用 QTimer 定时器

cpp 复制代码
#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 环境中运行,并通过控制台输出日志或结果。你可以根据需要扩展任务逻辑,使用定时器或线程等功能来进行后台处理。

相关推荐
feing.2 分钟前
-bash: ./run.sh: /bin/bash^M: bad interpreter: No such file or directory 报错解决方法
linux
假客套4 分钟前
2024 同一个网段,反弹shell四种方法【linux版本】bash、python、nc、villian反弹shell图解步骤
linux·运维·服务器·网络安全·反弹shell
A阳俊yi8 分钟前
SQL练习(2)
数据库·sql·oracle
F l e9 分钟前
Linux基础(十四)——BASH
linux·chrome·bash
SAP学习成长之路11 分钟前
【翻译】伯明翰市议会因 Oracle 系统崩溃而面临 £216.5M 的损失
数据库·oracle·sap
夏微凉.23 分钟前
【JavaEE进阶】Spring 事务和事务传播机制
java·数据库·sql·mysql·spring·java-ee
激流丶1 小时前
【Mysql 底层原理】MySQL 查询优化器的工作原理:如何生成最优执行计划
数据库·mysql·explain·执行计划
脱了格子衬衫1 小时前
linux安装ansible
linux·运维·ansible
雷神乐乐1 小时前
Sqoop学习
数据库·sqoop
小丑西瓜6661 小时前
MySQL库操作
linux·服务器·数据库·mysql