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

        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. 待定

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值