① 如何在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