在Glade中制作一个GtkLabel填充宽度

朱利安·戈尔德(Julian Gold)

在Glade(我以gtk 2.24为目标的版本3.8.5)中,我创建了一个标签,该标签位于vbox的一行中。我已经将标签的背景色(在“属性”中)设置为蓝色,并且标签似乎填满了整个行。但是蓝色背景仅延伸到文本范围,而不延伸到标签的整个宽度。见附件图片

如何使蓝色条延伸到面板的边缘?

李小博

我前一阵子读到,Gtk标签实际上没有自己的颜色,但是它们使用背景小部件所具有的任何颜色。我不记得这些信息的来源,但我确实记得解决方案,即将标签放在Gtk EventBox中并更改所述EventBox的颜色。我在gtk项目中测试了此解决方案,并取得了良好的效果。

这是我用来更改EventBox颜色的函数,顺便说一下,我使用的是较旧版本的Gtk和Glade,而我使用的是C ++,因此,如果您使用的是C,则必须找到每个函数的C等效项:

void GuiUtil::changeColor(Gtk::Widget* widget, double r, double g, double b) {
    Glib::RefPtr<Gdk::Colormap> colormap = widget->get_colormap();
    Glib::RefPtr<Gtk::Style> style = widget->get_style()->copy();

    // STATE_NORMAL (most of the time)
    {
        Gdk::Color color;
        color.set_rgb_p(r,g,b);
        colormap->alloc_color(color);
        style->set_bg(Gtk::STATE_NORMAL, color);
    }

    // STATE_PRELIGHT (when mouse hovers)
    {
        Gdk::Color color;
        color.set_rgb_p(r*0.9,g*0.9,b*0.9);
        colormap->alloc_color(color);
        style->set_bg(Gtk::STATE_PRELIGHT, color);
    }

    // STATE_ACTIVE (when clicked)
    {
        Gdk::Color color;
        color.set_rgb_p(r*0.8,g*0.8,b*0.8);
        colormap->alloc_color(color);
        style->set_bg(Gtk::STATE_ACTIVE, color);
    }

    widget->set_style(style);
}

据我所知,只有Glade不能做到这一点。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Mobile View中获得一个按钮来填充页脚的整个宽度?

来自分类Dev

XlsxWriter:制作一个实心填充的数据栏

来自分类Dev

XlsxWriter:制作一个实心填充的数据栏

来自分类Dev

制作一个容器来填充内容?

来自分类Dev

标尺每5个像素追加一个元素以填充其宽度

来自分类Dev

制作一个文本区域,使每个字符的宽度始终相同

来自分类Dev

如何制作一个Ruby方法,使宽度为'n'的星号钻石?

来自分类Dev

如何制作一个永不换行且为自动宽度的表格列?

来自分类Dev

D3 v4 - 制作一个固定宽度的水平条形图

来自分类Dev

设置一个div来填充宽度为百分比的另一个div

来自分类Dev

如何获得一个div来填充整个页面的宽度?

来自分类Dev

在一个CSS类中设置动画最大宽度

来自分类Dev

如何在FXML中给TableColumns一个相对宽度?

来自分类Dev

如何创建一个滑动菜单,该菜单将填充除拉手按钮宽度以外的窗口宽度?

来自分类Dev

Qt制作一个QPushButton填充布局单元格

来自分类Dev

制作一个自定义的UIView子视图来填充其超级视图

来自分类Dev

在Eclipse中制作一个C ++项目

来自分类Dev

制作一个好的Json文件以在highchart中显示

来自分类Dev

在Flutter中制作一个TextFormField全局小部件

来自分类Dev

在python中制作一个简单的Clicker程序

来自分类Dev

在Eclipse中制作一个C ++项目

来自分类Dev

制作一个程序来计算python中的总和

来自分类Dev

在Spritekit中制作一个弹力带式弹弓

来自分类Dev

在Python中制作if else语句一个衬里

来自分类Dev

在Swift中制作一个JSON对象

来自分类Dev

如何在Winforms中制作一个圆形按钮

来自分类Dev

在Swift中,如何制作一个对象的多个副本?

来自分类Dev

如何从捆绑包中制作一个ListView?

来自分类Dev

试图在R中制作一个简单的频率表

Related 相关文章

  1. 1

    如何在Mobile View中获得一个按钮来填充页脚的整个宽度?

  2. 2

    XlsxWriter:制作一个实心填充的数据栏

  3. 3

    XlsxWriter:制作一个实心填充的数据栏

  4. 4

    制作一个容器来填充内容?

  5. 5

    标尺每5个像素追加一个元素以填充其宽度

  6. 6

    制作一个文本区域,使每个字符的宽度始终相同

  7. 7

    如何制作一个Ruby方法,使宽度为'n'的星号钻石?

  8. 8

    如何制作一个永不换行且为自动宽度的表格列?

  9. 9

    D3 v4 - 制作一个固定宽度的水平条形图

  10. 10

    设置一个div来填充宽度为百分比的另一个div

  11. 11

    如何获得一个div来填充整个页面的宽度?

  12. 12

    在一个CSS类中设置动画最大宽度

  13. 13

    如何在FXML中给TableColumns一个相对宽度?

  14. 14

    如何创建一个滑动菜单,该菜单将填充除拉手按钮宽度以外的窗口宽度?

  15. 15

    Qt制作一个QPushButton填充布局单元格

  16. 16

    制作一个自定义的UIView子视图来填充其超级视图

  17. 17

    在Eclipse中制作一个C ++项目

  18. 18

    制作一个好的Json文件以在highchart中显示

  19. 19

    在Flutter中制作一个TextFormField全局小部件

  20. 20

    在python中制作一个简单的Clicker程序

  21. 21

    在Eclipse中制作一个C ++项目

  22. 22

    制作一个程序来计算python中的总和

  23. 23

    在Spritekit中制作一个弹力带式弹弓

  24. 24

    在Python中制作if else语句一个衬里

  25. 25

    在Swift中制作一个JSON对象

  26. 26

    如何在Winforms中制作一个圆形按钮

  27. 27

    在Swift中,如何制作一个对象的多个副本?

  28. 28

    如何从捆绑包中制作一个ListView?

  29. 29

    试图在R中制作一个简单的频率表

热门标签

归档