kra*_*jic 13 gtk gtkmm gtk3 msys2 gtkmm3
我试图将我的应用程序从linux移植到Windows,我有一个主题问题.在Linux中,这是一个盒子,只需编译它,应用程序使用良好的主题,看起来像本机.
我在MSYS2中安装了gtkmm3和gtk3,我正在用CMake构建它.这没关系,我不得不将所有dll复制到二进制目录以便能够执行它.我没有复制任何其他内容.我正在尝试创建"解压缩和执行"包.
我的问题是,该应用程序看起来不合适.它看起来并不原生.窗口周围有阴影,这在Windows10中很好,但在Windows 7中它看起来不是原生的.还缺少几个图标.
甚至gitk3-demo也以相同的方式看起来非原生(但它至少有最小化/最大化/关闭图标正确).
所以问题是:如何在Windows上实现GTK3应用程序的原生外观?或者至少是原生的窗户装饰品?
谢谢
kra*_*jic 12
Thera是两个子问题:缺少图标和设置正确的主题.
对于缺少图标,只需复制这些图标即可
来自:C:\ msys64\mingw32\share\icons\Adwaita\22x22\actions
to:"您的可执行文件夹"\ share\icons\Adwaita\22x22\actions
在GTK3中实际上有一个内置的原生主题.对于使用天然样的主题只需创建文件"的可执行文件夹" \等\ GTK的3.0 \的Settings.ini本在它
[Settings]
gtk-theme-name=win32
Run Code Online (Sandbox Code Playgroud)
win32主题内置于GTK3中,似乎只需要前一步中的三个图标.
在Windows 7上,这看起来如下:
问题是,即使在Windows 10(包括窗口装饰)上,装饰看起来也一样.
来自@andlabs的评论:GTK + 3使用uxtheme.dll API来获得它的Windows外观和感觉,不幸的是,微软已经保留了类似Windows 7的窗口边框.(更多评论)
您可以win32在此处查看带有主题的Windows 10 Gtk3应用程序:
如果您对默认或win32主题不满意,可以使用互联网上的自定义主题(如此Flat-Pat).:)为了做到这一点,你需要创建配置文件:
"你的可执行文件夹"\ etc\gtk-3.0\settings.ini中有这个
[Settings]
gtk-theme-name=Flat-Plat
Run Code Online (Sandbox Code Playgroud)
并且您需要将主题文件复制到可执行文件路径中的目录
"您的可执行文件夹"\ share\themes\Flat-Plat
在该文件夹中,index.theme文件和gtk-x.x文件夹应该存在.显然gtk-theme-name,文件夹名称应该匹配.
运行可执行文件后,您应该能够获得不同的主题.
编辑:所以内置了一个win32主题,谢谢@andlabs
EDIT2:添加了截图
EDIT3:添加了Windows 10屏幕截图并更正了事实.
| 归档时间: |
|
| 查看次数: |
8669 次 |
| 最近记录: |