如何复制小部件的GTK样式并将其应用于另一个?

自由自由

我当前的GTK弹出窗口如下所示-请注意,它采用了深色氛围颜色主题。

图片

在GTK3.8和更高版本中,有GTKMenuButtons-弹出窗口如下所示-请注意,它看起来像是在使用按钮样式提示。

图片

我喜欢这种样式,我希望我的应用程序弹出窗口看起来一样,以便有更好的外观-集成和感觉。

我知道我可以使用以下python代码片段覆盖弹出窗口的背景色:

样式= button.get_style_context()
颜色= style.get_background_color(Gtk.StateFlags.NORMAL)
popup_menu.override_background_color(Gtk.StateFlags.NORMAL,颜色)

如果我应用按钮背景色,它看起来像这样。

图片

我不知道如何将按钮字体颜色应用于弹出窗口。

更重要的是,还有一个令人讨厌的黑色边框-1像素宽?

因此,对于我的问题-我是要尝试这种正确方法(覆盖主题属性),还是可以以某种方式将一个小部件(按钮或按钮弹出窗口)的CSS样式应用于弹出窗口,以便模仿菜单按钮弹出窗口样式?

更多信息-GTKMenuButton源gtkmenubutton.c没有针对弹出窗口的任何主题控件,因此我迷惑于菜单按钮弹出窗口如何获得其主题。

自由自由

经过进一步调查,我发现小部件(或容器)的样式类会影响嵌入式对象的整体样式。

让我进一步举例说明:

构造一个网格并附加包含弹出菜单的MenuButton。

将工具栏样式类添加到网格会影响该网格中的所有对象,包括弹出窗口。

style = grid.get_style_context()
style.add_class(Gtk.STYLE_CLASS_TOOLBAR)

结果是这样的:

伊姆古尔


从gi.repository导入Gtk

类MenuExampleWindow(Gtk.Window):

    def __init __():
        Gtk.Window .__ init __(self,title =“菜单示例”)

        self.set_default_size(200,200)

        网格= Gtk.Grid()
        grid.insert_column(0)

        菜单= Gtk.Menu()
        mitem1 = Gtk.MenuItem(label =“ Item 1”)
        mitem2 = Gtk.MenuItem(label =“ Item 2”)


        menub = Gtk.MenuButton(label ='菜单')
        menub.set_popup(菜单)
        menub.set_align_widget(无)
        menub.show_all()

        menu.append(mitem1)
        menu.append(mitem2)
        menu.attach_to_widget(菜单,无)
        menu.show_all()

        样式= grid.get_style_context()
        style.add_class(Gtk.STYLE_CLASS_TOOLBAR)


        grid.attach(menub,0,0,1,1)
        self.add(网格)

窗口= MenuExampleWindow()       
window.connect(“删除事件”,Gtk.main_quit)
window.show_all()
Gtk.main()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从一个目录复制SELinux上下文并将其应用于另一个目录?

来自分类Dev

PHPExcel:如何从一行或一系列单元格中获取样式并将其应用于另一个

来自分类Dev

PHPExcel:如何从一行或一系列单元格中获取样式并将其应用于另一个

来自分类Dev

如何从一个观测值中获取数据并将其应用于组中的另一个观测值?

来自分类Dev

查找2格的高度值,相加并将其应用于另一个格的顶部位置

来自分类Dev

如何从颜色数组列表中绘制随机颜色并将其应用于另一个数组列表中的按钮背景?

来自分类Dev

您如何将一个表格的表格样式应用于另一个表格?

来自分类Dev

使用CSS将样式/格式从一个WordPress小部件复制到另一个

来自分类Dev

GTK3用另一个小部件替换子小部件

来自分类Dev

使用Jquery将应用于一个元素的CSS类的CSS样式复制到另一个元素

来自分类Dev

如何从小部件获取ui以将其连接到另一个类?

来自分类Dev

如何从数据框中的一个位置复制一个值并将其应用于列的其余部分(循环?是否适用?)?

来自分类Dev

获取背景按钮并将此颜色应用于另一个

来自分类Dev

如何使用CSS制作一个圆并将其应用于标题?

来自分类Dev

如何创建一个包含方程的函数并将其应用于不同的数据帧?

来自分类Dev

Coq:如何将一个假设应用于另一个

来自分类Dev

将功能应用于DataFrame列中的内容并将其保存到另一个中的最佳方法

来自分类Dev

如何搜索特定模式并将其从文件复制到另一个文件

来自分类Dev

用于在目录中搜索.deb文件并将其复制到另一个位置的脚本

来自分类Dev

用于在目录中搜索.deb文件并将其复制到另一个位置的脚本

来自分类Dev

Git:如何将相同的修改应用于另一个分支?

来自分类Dev

如何将CSS类应用于AngularDart中的另一个组件?

来自分类Dev

Git:如何将相同的修改应用于另一个分支?

来自分类Dev

如何使用按钮的onPressed属性将小部件文本的值复制到另一个

来自分类Dev

如何使用jQuery在div中查找某个字符串,然后将特定样式应用于另一个div(如果存在)?

来自分类Dev

如何在git中修补整个分支/标签,以将其应用于另一个未更新的存储库?

来自分类Dev

如何在git中修补整个分支/标签,以将其应用于另一个未更新的存储库?

来自分类Dev

如何在Flutter中将一个小部件(statefull)的状态从另一个statefull小部件更改?

来自分类Dev

如何将一个数据框的模式应用于另一个?

Related 相关文章

  1. 1

    如何从一个目录复制SELinux上下文并将其应用于另一个目录?

  2. 2

    PHPExcel:如何从一行或一系列单元格中获取样式并将其应用于另一个

  3. 3

    PHPExcel:如何从一行或一系列单元格中获取样式并将其应用于另一个

  4. 4

    如何从一个观测值中获取数据并将其应用于组中的另一个观测值?

  5. 5

    查找2格的高度值,相加并将其应用于另一个格的顶部位置

  6. 6

    如何从颜色数组列表中绘制随机颜色并将其应用于另一个数组列表中的按钮背景?

  7. 7

    您如何将一个表格的表格样式应用于另一个表格?

  8. 8

    使用CSS将样式/格式从一个WordPress小部件复制到另一个

  9. 9

    GTK3用另一个小部件替换子小部件

  10. 10

    使用Jquery将应用于一个元素的CSS类的CSS样式复制到另一个元素

  11. 11

    如何从小部件获取ui以将其连接到另一个类?

  12. 12

    如何从数据框中的一个位置复制一个值并将其应用于列的其余部分(循环?是否适用?)?

  13. 13

    获取背景按钮并将此颜色应用于另一个

  14. 14

    如何使用CSS制作一个圆并将其应用于标题?

  15. 15

    如何创建一个包含方程的函数并将其应用于不同的数据帧?

  16. 16

    Coq:如何将一个假设应用于另一个

  17. 17

    将功能应用于DataFrame列中的内容并将其保存到另一个中的最佳方法

  18. 18

    如何搜索特定模式并将其从文件复制到另一个文件

  19. 19

    用于在目录中搜索.deb文件并将其复制到另一个位置的脚本

  20. 20

    用于在目录中搜索.deb文件并将其复制到另一个位置的脚本

  21. 21

    Git:如何将相同的修改应用于另一个分支?

  22. 22

    如何将CSS类应用于AngularDart中的另一个组件?

  23. 23

    Git:如何将相同的修改应用于另一个分支?

  24. 24

    如何使用按钮的onPressed属性将小部件文本的值复制到另一个

  25. 25

    如何使用jQuery在div中查找某个字符串,然后将特定样式应用于另一个div(如果存在)?

  26. 26

    如何在git中修补整个分支/标签,以将其应用于另一个未更新的存储库?

  27. 27

    如何在git中修补整个分支/标签,以将其应用于另一个未更新的存储库?

  28. 28

    如何在Flutter中将一个小部件(statefull)的状态从另一个statefull小部件更改?

  29. 29

    如何将一个数据框的模式应用于另一个?

热门标签

归档