Gtk.CssProvider() 基于 ID 的选择器在 Gtk3 中如何工作?

2024-01-12

我已经断断续续地摆弄这个问题好几天了,但似乎无法解决可能出现的问题。

本质上,我正在尝试使用 CSS 样式声明在 Gtk3 中设置一些 Gtk Widget 的样式,没有什么复杂的,只是尝试通过其 id/名称来定位特定元素。 Gtk.CssProvider() 的 Gtk 文档说

#widgetname { background-color: #333333; }

应该作为名称设置为“widgetname”的小部件的有效选择器,但我似乎无法使其工作。我最初以为是 CSS 未加载,但我可以像这样定位一个顶级小部件:

GtkWindow { background-color: #333; }

它将把样式应用到窗口,我可以看到背景颜色已经改变。我尝试过使用该名称作为几种不同类型的小部件(GtkEventBox、GtkTextView、GtkStatusBar、GtkBox)的 ID,但基于 ID 的选择器似乎不起作用。

这是我如何加载 css 的简短片段:

css = Gtk.CssProvider()

# css.load_from_file(file)
css.load_from_data('''

GtkWindow {
    background-color: #333;
}

GtkEventBox {
    background-color: #333;
}

#statusbarwrap, #textview_event_wrap, #box1 {
     background-color: #333;
}

''')

style_context = self.get_style_context()
style_context.add_provider(
    css,
    Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

这是 GtkCssProvider 的文档https://developer.gnome.org/gtk3/3.7/GtkCssProvider.html https://developer.gnome.org/gtk3/3.7/GtkCssProvider.html

该页面上的示例 24(只需向下滚动一两页)显示 #ID 选择器有效,并且我正在 Glade 中设置小部件的名称。

任何帮助将不胜感激。


我们可以使用“gtk_widget_set_name()”来给这个小部件一个名称(ID)。

win = Gtk.Window()
win.set_name('main_window')

那么'#main_window'可以用作CSS3中的ID选择器:

#main_window {
  background-color: ...
}

如果你使用文本编辑器打开一个glade文件,你可以发现,widget的名称实际上被标记为id,如下所示:

<object class="GtkWindow" id="window1">

请注意,小部件的名称不应包含特殊字符,例如 *、# 或 >,这些字符是 CSS 语法的一部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gtk.CssProvider() 基于 ID 的选择器在 Gtk3 中如何工作? 的相关文章

  • 如何使用 imaplib 获取“消息 ID”

    我尝试获取一个在操作期间不会更改的唯一 ID 我觉得UID不好 所以我认为 Message ID 是正确的 但我不知道如何获取它 我只知道 imap fetch uid XXXX 有人有解决方案吗 来自 IMAP 文档本身 IMAP4消息号
  • 将数据帧行转换为字典

    我有像下面的示例数据这样的数据帧 我正在尝试将数据帧中的一行转换为类似于下面所需输出的字典 但是当我使用 to dict 时 我得到了索引和列值 有谁知道如何将行转换为像所需输出那样的字典 任何提示都非常感激 Sample data pri
  • 如何创建一个语句来打印以特定单词开头的单词? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在 python 中打印从特定字母开始的单词 而不使用函数 而是使用方法或循环 1 我有一个字符串 想要打印以 m 开头的单词 S
  • Pandas 数据帧到 numpy 数组 [重复]

    这个问题在这里已经有答案了 我对 Python 很陌生 经验也很少 我已经设法通过复制 粘贴和替换我拥有的数据来使一些代码正常工作 但是我一直在寻找如何从数据框中选择数据 但无法理解这些示例并替换我自己的数据 总体目标 如果有人真的可以帮助
  • 切片 Dataframe 时出现 KeyError

    我的代码如下所示 d pd read csv Collector Output csv df pd DataFrame data d dfa df copy dfa dfa rename columns OBJECTID Object ID
  • 如何更改 Bootstrap 3 div 列顺序

    正在做我的第一个响应式设计 在 Bootstrap 3 中可能会出现类似的情况 在 lg 上更改此设置 a b c sm 上的这个 a c b 您可以使用两个 div 一个用于第一类型的布置 另一个用于第二类型的布置 第一个仅在 lg 中显
  • 如何通过在 Python 3.x 上按键来启动和中断循环

    我有这段代码 当按下 P 键时会中断循环 但除非我按下非 P 键 否则循环不会工作 def main openGame while True purchase imageGrab if a sum gt 1200 fleaButton ti
  • TensorFlow的./configure在哪里以及如何启用GPU支持?

    在我的 Ubuntu 上安装 TensorFlow 时 我想将 GPU 与 CUDA 结合使用 但我却停在了这一步官方教程 http www tensorflow org get started os setup md 这到底是哪里 con
  • 从 python 发起 SSH 隧道时出现问题

    目标是在卫星服务器和集中式注册数据库之间建立 n 个 ssh 隧道 我已经在我的服务器之间设置了公钥身份验证 因此它们只需直接登录而无需密码提示 怎么办 我试过帕拉米科 它看起来不错 但仅仅建立一个基本的隧道就变得相当复杂 尽管代码示例将受
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • Jquery 中的动态滚动位置

    请帮助我解决以下情况 我有 3 个页面 当滚动到达第二页时 用户滚动页面 它必须找到特定的 ID 然后触发一个函数 一旦第三页开始 另一个函数就会触发 根据要求我不应该使用任何插件
  • 如何从Python中的字符串中提取变量名称和值

    我有一根绳子 data var1 id 12345 name John White python中有没有办法将var1提取为python变量 更具体地说 我对字典变量感兴趣 这样我就可以获得变量的值 id和name python 这是由提供
  • Numpy 过滤器平滑零区域

    我有一个 0 及更大整数的 2D numpy 数组 其中值代表区域标签 例如 array 9 9 9 0 0 0 0 1 1 1 9 9 9 9 0 7 1 1 1 1 9 9 9 9 0 2 2 1 1 1 9 9 9 8 0 2 2 1
  • 按元组分隔符拆分列表

    我有清单 print L I WW am XX newbie YY ZZ You WW are XX cool YY ZZ 我想用分隔符将列表拆分为子列表 ZZ print new L I WW am XX newbie YY ZZ You
  • 将 matplotlib 颜色图集中在特定值上

    我正在使用 matplotlib 颜色图 seismic 绘制绘图 并且希望白色以 0 为中心 当我在不进行任何更改的情况下运行脚本时 白色从 0 下降到 10 我尝试设置 vmin 50 vmax 50 但在这种情况下我完全失去了白色 关
  • 如何在背景剪辑中包含文本装饰:文本;影响?

    我在用 webkit background clip text border and color transparent在锚标记上 下划线似乎永远不可见 我想要的是将文本装饰包含在背景剪辑中 这是我的CSS background clip
  • 使用yield 进行字典理解

    作为一个人为的例子 myset set a b c d mydict item yield join item s for item in myset and list mydict gives as cs bs ds a None b N
  • 迭代 my_dict.keys() 并修改字典中的值是否会使迭代器失效?

    我的例子是这样的 for my key in my dict keys my dict my key mutate 上述代码的行为是否已定义 假设my dict是一本字典并且mutate是一个改变其对象的方法 我担心的是 改变字典中的值可能
  • 迭代 pandas 数据框的最快方法?

    如何运行数据框并仅返回满足特定条件的行 必须在之前的行和列上测试此条件 例如 1 2 3 4 1 1 1999 4 2 4 5 1 2 1999 5 2 3 3 1 3 1999 5 2 3 8 1 4 1999 6 4 2 6 1 5 1
  • 带显示块的SPAN

    和默认有什么区别 div 元素和默认值 span 元素与display block HTML 元素的有效性和语义存在差异 否则它们是相同的 div and span两者都被定义为通用容器 在 HTML 方面没有更深层次的含义 一个默认为块显

随机推荐

  • Entity Framework 7 Code First 中的一对一关系

    如何使用数据注释或 Fluent Api 在 Entity Framework 7 Code First 中配置一对一或零或一对一关系 您可以使用 Entity Framework 7 中的 Fluent API 定义 OneToOne 关
  • 在 Python 中从 opencv 3 创建类 Rect 的实例

    我想知道如何通过提供两个点来获取 opencv 矩形对象 C 版本提供了这个数据结构 http docs opencv org java 2 4 9 org opencv core Rect html http docs opencv or
  • 如何在 sbt 启动时运行命令并保持会话活动?

    如果我们定义initialCommands in console 1 1 这将在控制台执行后运行 是否可以在 sbt 启动后运行命令 例如initialCommands in sbtStartup console 自动进入控制台 我想保持会
  • Azure 个人访问令牌 API 中的 subjectDescriptor 是什么

    我正在尝试编写一个脚本来自动化 Azure DevOps 环境的某些方面 但我很难为特定用户返回 PAT 以便能够授权他们执行 API 调用 有人能给我一个关于 subjectDescriptor 是什么以及在哪里可以找到它的示例吗 我已读
  • VueJS - 模型绑定不适用于使用 jQuery 插件的输入

    我正在努力转换表单以利用 VueJS 该表单有一个使用 eonasdan bootstrap datetimepicker 的出生日期输入 http eonasdan github io bootstrap datetimepicker h
  • 为什么 Divi 短代码不能在 wp-json 中呈现?

    我正在尝试使用the content过滤器来处理 Divi 短代码 但短代码仍然出现 特别是 et pb section et pb column et pb text 如果有的话 add action rest api init func
  • 从 zip 文件加载 pickle 文件

    由于某种原因 我无法让 cPickle load 处理 ZipFile open 返回的文件类型对象 如果我对 ZipFile open 返回的文件类型对象调用 read 我可以使用 cPickle loads 例子 import zipf
  • Firebase 本地通知

    当 Firebase 回调时是否有可能触发本地通知 我猜我的线程有问题 Firebase setDispatchQueue dispatch get global queue DISPATCH QUEUE PRIORITY DEFAULT
  • 持久化 sha256 哈希对象?

    我需要一个 Python C C Java 实现 它可以暂停散列进度 and store文件的进度以这样的方式进行 可恢复的稍后从该文件中获取 无论上面列出的语言是用什么语言编写的 它都应该在 Python 中正常工作 建议您提供它以便与
  • 如何在 Flash 应用程序中创建退出按钮

    我正在创建一个 Flash 应用程序 该应用程序将导出到exe格式 它不会在浏览器中运行 我想在舞台内添加一个退出按钮 但我不知道如何使用 ActionScript 3 来做到这一点 我记得这是可能的fscommand在 ActionScr
  • Chef 中的动态角色属性

    我想要厨师食谱network interfaces为我的每个节点提供 IP 地址 网络掩码等的动态值 对我有用的是以下内容 db role rb 块1 override attributes network interfaces gt de
  • XBMC/KODI 添加插件时出错“结构不正确”

    我正在关注 KODI XBMC hello world 插件教程here http kodi wiki view HOW TO HelloWorld addon我从下载了完成的项目here https github com zag2me p
  • 实际 javascript 练习的资源 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 python 中精确复制 R 文本预处理

    我想使用 Python 预处理文档语料库 就像在 R 中一样 例如 给定一个初始语料库 corpus 我希望最终得到一个与使用以下 R 代码生成的语料库相对应的预处理语料库 library tm library SnowballC corp
  • 图像加载不适用于 IE 8 或更低版本

    我的目的是检查图像是否已成功加载 它在现代浏览器中运行良好 但在 IE8 或 7 中这是一个可怕的问题 这是示例代码 var img new Image url http something com images something gif
  • 按名称获取角色(discord.py 重写)

    我的 Discord 机器人有问题 我想创建一个具有支持者角色读取权限的文本通道 但我不想使用role id 因此 我尝试使用以下代码 但无法创建任何频道 supporter role discord utils get Supporter
  • 有没有办法观察 i18n 当前语言环境的变化?

    使用 i18n 时 当语言 区域设置发生变化时 如何调用函数 我应该使用 Vuex 还是vue i18n https kazupon github io vue i18n 有一种方法可以让我这样做吗 你可以看 i18n locale对于任何
  • Google Chrome:垂直滚动条在某些网页上消失,可能是由于奇怪的工具栏

    我的一位客户在查看我们网站上的某些页面时遇到问题 具体来说 它是垂直滚动条 在某些页面上消失 她使用的是 Google Chrome 正如下面的截图所示 Chrome 还有一个奇怪的工具栏 在第一张图片上 滚动没有问题 http i45 t
  • 仅显示上周创建的帖子

    我希望能够显示帖子并按几个标准对它们进行排序 首先是它们的投票数量 其次是它们的创建日期 我不希望显示一周以上的帖子 因此只显示上周的帖子 我尝试这样做 但它给了我一个 NilClass 与 2 比较失败的错误 我知道代码的工作原理只是按投
  • Gtk.CssProvider() 基于 ID 的选择器在 Gtk3 中如何工作?

    我已经断断续续地摆弄这个问题好几天了 但似乎无法解决可能出现的问题 本质上 我正在尝试使用 CSS 样式声明在 Gtk3 中设置一些 Gtk Widget 的样式 没有什么复杂的 只是尝试通过其 id 名称来定位特定元素 Gtk CssPr