[Qt] 使用qt编写简单的GTK对话框程序

(1)kit套件里的sysroot写/home/yue/buildroot/buildroot-2022.05/output/host/aarch64-buildroot-linux-gnu/sysroot
(2)编译链gcc 和g++选自己生成的编译链

1.新建qt空工程,在pro文件中添加

TEMPLATE = app
CONFIG += console c++11
CONFIG -= qt

# 交叉编译工具链配置
# 请根据你的交叉编译工具链调整这些设置
QMAKE_CC = /home/yue/buildroot/buildroot-2022.05/output/host/bin/aarch64-buildroot-linux-gnu-gcc

QMAKE_CXX = /home/yue/buildroot/buildroot-2022.05/output/host/bin/aarch64-buildroot-linux-gnu-g++
QMAKE_LINK = /home/yue/buildroot/buildroot-2022.05/output/host/bin/aarch64-buildroot-linux-gnu-g++
QMAKE_AR = /home/yue/buildroot/buildroot-2022.05/output/host/bin/aarch64-buildroot-linux-gnu-ar
QMAKE_OBJCOPY = /home/yue/buildroot/buildroot-2022.05/output/host/bin/aarch64-buildroot-linux-gnu-objcopy
QMAKE_STRIP = /home/yue/buildroot/buildroot-2022.05/output/host/bin/aarch64-buildroot-linux-gnu-strip

# GTK 配置
PKGCONFIG = /home/yue/buildroot/buildroot-2022.05/output/host/bin/pkg-config
PKGCONFIG_PATH =/home/yue/buildroot/buildroot-2022.05/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/pkgconfig
PKG_CONFIG_PATH =/home/yue/buildroot/buildroot-2022.05/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/pkgconfig
PKGCONFIG += gdk-pixbuf-2.0
PKGCONFIG += gtk+-3.0
PKGCONFIG += glib-2.0
PKGCONFIG += pango
PKGCONFIG += harfbuzz
PKGCONFIG += cairo
PKGCONFIG += atk
PKGCONFIG += gobject-2.0

QMAKE_LFLAGS = -L /home/yue/buildroot/buildroot-2022.05/output/host/aarch64-buildroot-linux-gnu/sysroot/lib64

# 头文件和库路径(请根据实际路径调整)
INCLUDEPATH += /home/yue/buildroot/buildroot-2022.05/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/gtk-3.0
INCLUDEPATH += /home/yue/buildroot/buildroot-2022.05/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/glib-2.0
INCLUDEPATH += /home/yue/buildroot/buildroot-2022.05/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/glib-2.0/include
INCLUDEPATH += /home/yue/buildroot/buildroot-2022.05/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/pango-1.0
INCLUDEPATH += /home/yue/buildroot/buildroot-2022.05/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/harfbuzz
INCLUDEPATH += /home/yue/buildroot/buildroot-2022.05/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/cairo
INCLUDEPATH += /home/yue/buildroot/buildroot-2022.05/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/gdk-pixbuf-2.0
INCLUDEPATH += /home/yue/buildroot/buildroot-2022.05/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/atk-1.0

#在如下目录中,l代表lib缩写?
LIBS += -L /home/yue/buildroot/buildroot-2022.05/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib \
-lgtk-3 \
-lglib-2.0 \
-lpango-1.0 \
-lharfbuzz \
-lcairo \
-latk-1.0 \
-lgdk_pixbuf-2.0 \
-lgobject-2.0

# 源文件
SOURCES += main.cpp

# 输出文件
TARGET = gtk_example

2.新建cpp文件 main.cpp
#include

int main(int argc, char *argv[]) {
gtk_init(&argc, &argv);

GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), “GTK Example with Qt Creator”);
gtk_window_set_default_size(GTK_WINDOW(window), 400, 200);

g_signal_connect(window, “destroy”, G_CALLBACK(gtk_main_quit), NULL);

gtk_widget_show_all(window);

gtk_main();

return 0;
}

发表评论

邮箱地址不会被公开。 必填项已用*标注