在Python中设置Gtk3 HeaderBar的间距?

时间:2017-11-11 23:58:55

标签: python python-3.x gtk gtk3 gnome

根据官方文档(https://developer.gnome.org/gtk3/stable/GtkHeaderBar.html),GtkHeaderBar有间距属性。

要在python中更改字幕和标题属性,您可以使用

headerbar.set_title()
headerbar.set_subtitle()

因此,应该遵循spacing()也遵循相同的规则,但是我被告知以下错误

AttributeError: 'HeaderBar' object has no attribute 'set_spacing'

这是什么原因?我找不到任何具体的例子,文档是唯一涵盖其使用的地方,根据它spacing显然属于GtkHeaderBar

的属性

感谢您在此提供的任何帮助

2 个答案:

答案 0 :(得分:4)

要直接设置GObject属性,每个对象都有一个props属性:

headerbar.props.spacing = 5
headerbar.props.subtitle = 'Habits of the Algorithmic Mind'

我相信这是因为当你错误输入一个属性名称时,它不会无声地失败(例如headerbar.spaing = 5)。虽然GObject的其他语言绑定(例如JS和Ruby)将GObject属性视为对象的属性。

答案 1 :(得分:1)

属性与属性不同。 您可以使用以下命令设置属性:

$ brew install ImageMagick --with-freetype  
Warning: imagemagick: this formula has no --with-freetype option so it will be ignored!
==> Downloading https://homebrew.bintray.com/bottles/imagemagick-7.0.7-10.high_sierra.bottle.tar.gz
Already downloaded: /Users/xflorian/Library/Caches/Homebrew/imagemagick-7.0.7-10.high_sierra.bottle.tar.gz
==> Pouring imagemagick-7.0.7-10.high_sierra.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink etc/ImageMagick-7/coder.xml
/usr/local/etc/ImageMagick-7 is not writable.

You can try again using:
  brew link imagemagick
==> Summary
  /usr/local/Cellar/imagemagick/7.0.7-10: 1,523 files, 23.1MB

$ brew link imagemagick
Linking /usr/local/Cellar/imagemagick/7.0.7-10... 
Error: Could not symlink etc/ImageMagick-7/coder.xml
/usr/local/etc/ImageMagick-7 is not writable. 

或者,您可以在实例化对象时定义间距:

your_bar.set_property("spacing", 5)

(我更喜欢后者 - 您可以在一个语句中设置一堆属性)