14-4 为 GTK 应用配置主题(部分待定)

本文详细介绍了如何在GTK环境中更改默认主题,使其呈现Windows和Mac风格。通过修改配置文件、放置主题文件以及局部修改程序设置,实现全局和局部的样式变化。同时,文中探讨了不同修改方法的适用场景和效果。
摘要由CSDN通过智能技术生成

        GTK 默认的主题风格是 Linux,可以将其设定为 Windows 和 Mac 相应的主题。主题设定完成后,窗口、按钮等构件的样式会发生变化。

1. 全局修改

       将所有样式(包括 glade 内部所有样式)进行一次性修改。修改流程如下:

        1)修改配置文件,将 GTK 样式设置为 Windows 样式。前往 msys 的安装路径,找到 msys\mingw64\etc\gtk-3.0 目录,打开 settings.ini 文件(如果没有就创建),写入如下内容。

[Settings]
gtk-theme-name=Windows10
gtk-font-name=Segoe UI 9

        2)将配置文件中的样式对应的主题文件放置到指定路径下,供 GTK 调用。前往 msys 安装路径,找到 msys\mingw64\share\themes 文件夹,将主题文件放置其中。图中新增了 Mac 的 Desert-1.2 样式和 Windows10 样式。

        3)运行程序,查看窗口样式是否发生变化。与上一节相比,窗口背景色和 Hello World 按钮样式都发生了变化,说明样式修改成功。

2.  局部修改

        全局修改的副作用较大,会导致后续每个程序都是 Windows 样式。若仅仅修改一个程序的样式,全局修改不如局部修改,后者不会影响其他程序的样式

        局部修改的流程如下:

        1)将全局修改的配置文件进行注释,恢复默认程序样式。前往 msys\mingw64\etc\gtk-3.0\settings.ini,将内容进行注释。

        2)在程序编译后的文件夹下,移动可执行程序及新增主题文件。例如,在 cmake-build-debug-mingw 文件夹下,新建 test/bin 文件夹,将应用程序( 04.config_themes.c.exe 文件)移至此处;新建 test/share 文件夹,将主题文件复制此处。

        3)在 powershell 中设定环境变量,将 bin 目录下的应用程序设置为 share 目录下的主题样式。在 powershell 中输入以下代码,并执行该程序,可以发现样式已经发生了变化。其中 'Windows10' 为 test/share/themes 下主题文件的名称。

$env:GTK_THEME='Windows10'

        此外,将主题设置为 Mac 时,可以发现窗口上方样式并没有被修改(例如右上角的 x 号)。原因在于 Windows 系统默认设置了程序窗口自身的样式。       

         在 powershell 中输入以下代码,阻止 Windows 系统设置程序窗口样式。其最终结果如下所示。

$env:GTK_CSD=1

3. 局部修改方法二

        仿照全局修改,利用 settings.ini 文件进行程序主题设置。不同之处在于此时配置文件不放在 mingw 文件夹下,而在程序编译后的目录中。具体修改流程如下:

        1)将 mingw/bin/libgtk-3.0.dll 复制到执行程序目录下。原因在于并非执行程序读取配置文件,而是 libgtk-3.0.dll。 

         2)模仿全局修改时 settings.ini 的文件路径,创建 etc/gtk-3.0/settings.ini 文件。内容为:

[Settings]
gtk-theme-name=Desert-1.2
gtk-font-name=Segoe UI 9

        3)运行程序,可发现主题成功修改。

4. 待定

        局部修改还可以通过修改后台代码进行设置,暂且待定

在 Dev-C++ 中配置 GTK+ 需要以下步骤: 1. 下载和安装 MinGW 安装 MinGW 后,需要将 MinGW 的 bin 目录路径添加到系统环境变量中。 2. 下载 GTK+ 开发包 可以从 GTK+ 的官方网站下载最新版本的开发包,下载地址:https://www.gtk.org/download/windows.php。 3. 解压缩 GTK+ 开发包 将下载的 GTK+ 开发包解压缩到任意目录中。 4. 配置 Dev-C++ 编译器 打开 Dev-C++,选择“Tools”菜单下的“Compiler Options”,在“Directories”标签页中,添加如下路径: - MinGW 的 bin 目录 - GTK+ 的 bin 目录 - GTK+ 的 lib 目录 - GTK+ 的 include 目录 5. 创建一个新的 Dev-C++ 工程 在 Dev-C++ 中创建一个新的工程,选择“Project”菜单下的“New Project”,选择“Empty Project”。 6. 添加需要的库文件 在“Project Options”中,选择“Parameters”标签页,添加如下参数: `pkg-config --cflags gtk+-3.0` 在“Linker”标签页中,添加如下参数: `pkg-config --libs gtk+-3.0` 7. 编写 GTK+ 代码 现在可以在 Dev-C++ 中编写 GTK+ 代码了。例如,可以创建一个简单的窗口来测试是否已经成功配置: ```c #include <gtk/gtk.h> int main(int argc, char *argv[]) { GtkWidget *window; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "Hello, world!"); gtk_widget_show(window); gtk_main(); return 0; } ``` 8. 编译和运行 编译代码并运行程序。如果一切顺利,应该会弹出一个简单的窗口,上面显示着“Hello, world!”。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值