我在现有的 Ubuntu 14.04 上开发了一个 GTK3 应用程序,并将其移植到 Windows 上没有任何重大问题。但是,该应用程序在 Ubuntu 上的外观与 Windows 完全不同(在 Windows 上更丑陋)。然而,同样使用 GTK 的 GIMP 在 Windows 和 Ubuntu 上具有一致的外观。
我不太了解 Ubuntu 如何改变 GTK 应用程序的外观,我想知道我需要为 Windows 上的 GTK 应用程序做些什么才能使它看起来像 Ubuntu 上的?
最佳答案
GIMP 使用 GTK+-2.x。 GTK+-2.x 主题复杂而奇怪。
GTK+-3.0 在所有平台上使用 Adwaita 主题。
您可以安装不同的 GTK+-3.x 主题。
您可以通过编辑 settings.ini 更改当前的 GTK+-3.x 主题,位于(当使用当前的 glib 时)
并将 gtk-theme-name=yourthemename 添加到 [Settings] 部分。
(settings.ini 也适用于各种其他设置,请查找!)
GTK+-3.x 主题是用 CSS 编写的。
关于主题安装,GTK+-3.22文档是这样说的:
In addition, certain files will be read when GTK+ is initialized. First, the file
$XDG_CONFIG_HOME/gtk-3.0/gtk.cssis loaded if it exists. Then, GTK+ loads the first existing file amongXDG_DATA_HOME/themes/theme-name/gtk-VERSION/gtk.css,$HOME/.themes/theme-name/gtk-VERSION/gtk.css,$XDG_DATA_DIRS/themes/theme-name/gtk-VERSION/gtk.cssandDATADIR/share/themes/THEME/gtk-VERSION/gtk.css, whereTHEMEis the name of the current theme (see the #GtkSettings:gtk-theme-name setting),DATADIRis the prefix configured when GTK+ was compiled (unless overridden by theGTK_DATA_PREFIXenvironment variable), andVERSIONis the GTK+ version number. If no file is found for the current version, GTK+ tries older versions all the way back to 3.0.
在 Windows 上,使用当前的 glib,这将转换为(考虑到 3.0 在这里意味着 从 3.x 开始一直计数到 3.0) :
请注意此路径中缺少 themes 和 themename。
您还可以为主题的 dark 变体提供 gtk-dark.css。
默认的 Adwaita 主题被烘焙到 GTK+ 库中,因此您不会在上面列出的任何目录中找到 Adwaita 主题 css 文件。如果您想查看 Adwaita 的 CSS 代码,您必须下载 GTK+ 源代码 - 主题位于 gtk/theme/ 子目录中。
关于windows - 在 Windows 上更改 GTK+3 外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36464010/
如何正确创建Rails迁移,以便将表更改为MySQL中的MyISAM?目前是InnoDB。运行原始执行语句会更改表,但它不会更新db/schema.rb,因此当在测试环境中重新创建表时,它会返回到InnoDB并且我的全文搜索失败。我如何着手更改/添加迁移,以便将现有表修改为MyISAM并更新schema.rb,以便我的数据库和相应的测试数据库得到相应更新? 最佳答案 我没有找到执行此操作的好方法。您可以像有人建议的那样更改您的schema.rb,然后运行:rakedb:schema:load,但是,这将覆盖您的数据。我的做法是(假设
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我尝试使用不同的ssh_options在同一阶段运行capistranov.3任务。我的production.rb说:set:stage,:productionset:user,'deploy'set:ssh_options,{user:'deploy'}通过此配置,capistrano与用户deploy连接,这对于其余的任务是正确的。但是我需要将它连接到服务器中配置良好的an_other_user以完成一项特定任务。然后我的食谱说:...taskswithoriginaluser...task:my_task_with_an_other_userdoset:user,'an_othe
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
假设我有一个FireNinja我的数据库中的对象,使用单表继承存储。后来才知道他真的是WaterNinja.将他更改为不同的子类的最干净的方法是什么?更好的是,我很想创建一个新的WaterNinja对象并替换旧的FireNinja在数据库中,保留ID。编辑我知道如何创建新的WaterNinja来self现有FireNinja的对象,我也知道我可以删除旧的并保存新的。我想做的是改变现有项目的类别。我是通过创建一个新对象并执行一些ActiveRecord魔法来替换行,还是通过对对象本身做一些疯狂的事情,或者甚至通过删除它并使用相同的ID重新插入来做到这一点,这是问题的一部分。
如何将send与+=一起使用?a=20;a.send"+=",10undefinedmethod`+='for20:Fixnuma=20;a+=10=>30 最佳答案 恐怕你不能。+=不是方法,而是语法糖。参见http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_expressions.html它说Incommonwithmanyotherlanguages,Rubyhasasyntacticshortcut:a=a+2maybewrittenasa+=2.你能做的最好的事情是:
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的