Ubuntu 安装最新版本 Cutecom

Cutecom 是 Linux 下一款比较常用的图形化串口调试工具,但是在 Ubuntu 20.04 LTS 系统中,APT 默认安装的是 0.30.3 版本,这是比较旧的一个版本,有一些不完善的地方。目前 Cutecom 最新的版本是 0.51.0,本文就来介绍如何在 Ubuntu 上安装最新版本的 Cutecom。

下面是使用 apt 包管理器下载的命令:

sudo apt install cutecom

如果需要使用最新版本,最直接的做法是自行编译,Cutecom 是一个开源软件,目前托管在 Gitlab 上。

安装依赖

Cutecom 是一个基于 Qt 实现的程序,支持 CMake 编译,因此在编译之前需要安装一些必要的依赖。

sudo apt install apt-transport-https git dh-make build-essential 
                 autoconf autotools-dev qt5-default libssl-dev 
                 qt5keychain-dev devscripts

因为 Cutecom 用到了 Qtserial,所以还需要安装 libqt5serialport5 库。

apt install libqt5serialport5-dev

下载编译

使用 Git 下载 Cutecom 源代码:

git clone https://gitlab.com/cutecom/cutecom.git

切换到 cutecom 目录

cd cutecom

执行 cmake 生成 Makefile

cmake .

编译工程

make

编译完成后在同一目录下可以看到 cutecom 的可执行文件,执行 ./cutecom 即可启动。

Ubuntu 安装最新版本 Cutecom

源码分析

Cutecom 是一个标准的 Qt 项目,很适合阅读其源码学习 Qt 程序的设计。

项目文件 CuteCom.pro

项目文件 CuteCom.pro 中定义了项目包含的 .cpp、.h 文件、.ui 后缀的界面文件和 resources.qrc 资源文件等。

QT       += core gui serialport

greaterThan(QT_MAJOR_VERSION, 4){
  QT += widgets network
  CONFIG += c++11
}

TARGET = CuteCom
TEMPLATE = app


SOURCES += main.cpp \
    mainwindow.cpp \
    settings.cpp \
    devicecombo.cpp \
    serialdevicelistmodel.cpp \
    statusbar.cpp \
    sessionmanager.cpp \
    datadisplay.cpp \
    datahighlighter.cpp \
    searchpanel.cpp \
    timeview.cpp \
    ctrlcharacterspopup.cpp \
    plugin.cpp \
    pluginmanager.cpp \
    macroplugin.cpp \
    macrosettings.cpp \
    netproxyplugin.cpp \
    netproxysettings.cpp \
    counterplugin.cpp \
    controlpanel.cpp

HEADERS  += mainwindow.h \
    controlpanel.h \
    settings.h \
    devicecombo.h \
    serialdevicelistmodel.h \
    statusbar.h \
    sessionmanager.h \
    datadisplay.h \
    datahighlighter.h \
    searchpanel.h \
    timeview.h \
    ctrlcharacterspopup.h \
    plugin.h \
    pluginmanager.h \
    macroplugin.h \
    macrosettings.h \
    netproxyplugin.h \
    netproxysettings.h \
    counterplugin.h


FORMS    += mainwindow.ui \
    controlpanel.ui \
    statusbar.ui \
    sessionmanager.ui \
    searchpanel.ui \
    macroplugin.ui \
    netproxyplugin.ui \
    macrosettings.ui \
    netproxysettings.ui \
    counterplugin.ui

RESOURCES += \
    resources.qrc

DISTFILES += \
    qt.astylerc

RC_ICONS = images/cutecom.ico

启动入口 main.cpp

可以看到,使用 QCoreApplication::translate 支持国际化,然后基于 MainWindow 创建主界面。

#include "mainwindow.h"
// version.h is generated via cmake
// if you use qmake, please cp version.h.in to version.h
#include "version.h"
#include <QApplication>
#include <QCommandLineParser>
#include <QIcon>

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

    QCommandLineParser parser;
    parser.setApplicationDescription(
        QCoreApplication::translate("main", "CuteCom - Serial Terminal %1").arg(CuteCom_VERSION));
    parser.addHelpOption();
    QCommandLineOption sessionOption(QStringList() << "s"
                                                   << "session",
                                     QCoreApplication::translate("main", "Open a named <session>"),
                                     QCoreApplication::translate("main", "session"));
    parser.addOption(sessionOption);

    // Process the actual command line arguments given by the user
    parser.process(a);
    QString session = parser.value(sessionOption);

    MainWindow w(0, session);
    QIcon appIcon;
    appIcon.addFile(QStringLiteral(":/images/terminal.svg"));
    w.setWindowIcon(appIcon);
    w.show();

    return a.exec();
}

这里就不一一分析了,感兴趣的小伙伴可以自行阅读 Cutecom 的源代码。

Leave a Reply