① 如何在linux下使用Clion开发Qt的Gui程序
准备工作:已安装好的QtCreator环境,但是觉得QtCreator不好用,转用其他开发工具
第一步,使用Clion创建一个C++项目,如下图:
第二步,修改CMakeLists.txt和main.cpp文件:
1). CMakeLists.txt修改如下:
cmake_minimum_required(version 3.3)
project(Widget)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
#打开Qt的MOC功能和UI文件处理功能
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin)
#查找Qt的库
find_package(Qt5Widgets)
set(SOURCE_FILES main.cpp Widget.cpp Widget.h)
add_executable(Widget ${SOURCE_FILES})
target_link_libraries(Widget Qt5::Widgets)
2). main.cpp文件修改如下:
#include <QtWidgets/QApplication>
#include <QtWidgets/QLabel>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QMainWindow>
int main(int argc, char* argv[]) {
QApplication a(argc, argv);
QMainWindow *window = new QMainWindow;
window->setFixedSize(500, 500);
// window->setLayout(vbLayout);
window->show();
return a.exec();
}
第三步,如何使用Qt的ui文件并生成.h文件
1). 配置ui-designer, 打开Clion的External-Tools配置项,Program参数请填写你的QtDesigner位置,其他参数可参照图上所示填写
2). 配置UIC,生成.h文件,Program参数请填写你的UIC应用,QtDesigner同目录下,
其他参数可参照图上所示填写
3). 在项目中新建一个ui文件,选中文件,使用右键我们添加的扩展工具编辑UI,然后保存后,再使用UIC
生成我们需要的.h文件。
第四步: 其他的我就不多说了,各位请尽享Clion带来的开发乐趣吧!
② 通过 X11 在你的 Windows 上显示 Linux 服务器里的 GUI 程序
平时进行实验操作时,通过 VSCode 远程连接服务器,所有代码、环境、运行环境都在服务器上。然而,有时需要使用 GUI 程序,比如使用 Matplotlib 或 OpenCV 进行中间过程绘图。尽管可以寻找替代方案,但最理想的解决方法是在个人电脑上直接显示服务器上的 GUI 程序。
若采用 Scoop,MobaXterm 可以直接在电脑上弹出窗口显示结果。这是因为 X11 是 Linux 系统上的一种采用 Client-Server 架构的图形界面协议。通常,服务器上的客户端与 Windows 上的服务器端结合使用。以实现 GUI 程序在 Windows 系统上的显示。
想象您作为 X11 开发人员,需要实现的功能是:客户端显示需要显示的区域,实际运行 GUI 程序的区域安装客户端。SSH 作为端口转发工具,即 X11Forwarding 的用途。Linux 系统中的桌面环境(如 GNOME、KDE)通常在本地安装客户端和服务器端,满足显示需求。
Windows 系统上,使用了如 Xming X Server for Windows 和 VcXsrv Windows X Server 等工具,但通常需要手动配置。相比之下,MobaXterm 自带的 X11 服务器能自动配置,方便使用。
通过 X11 在 Windows 系统上运行 Linux 服务器上的 GUI 程序,看起来似乎可行。然而,这种方式可能不如使用 VSCode 的远程开发功能体验佳。JetBrains 的 Gateway 实际上就是通过类似方法运作,尽管其当前体验可能仍逊于 VSCode。
参考资料:Difference between Xorg and Gnome/KDE/Xfce