去掉gtk.button的边框

2 投票
3 回答
5873 浏览
提问于 2025-04-15 22:46

我想去掉gtk.button的边框,但我不知道该怎么做。

我试过这个:

button = gtk.Button()
button.set_style("inner-border",0)

但是我遇到了一个错误:这个属性不存在。我也试着创建一个新的gtk.Style来给按钮使用,但结果还是同样的错误。

有没有人知道该怎么解决?

谢谢!

3 个回答

1

简短版本:

import gtk
window = gtk.Dialog()
button = gtk.Button('Click Me')
button.props.relief = gtk.RELIEF_NONE
window.vbox.pack_start(button)
window.show_all()
window.run()
1

在编程中,我们常常会遇到一些问题,特别是在使用某些工具或库的时候。比如,有时候我们想要实现一个功能,但发现文档写得不够清楚,或者代码示例不太适合我们的需求。这时候,我们就需要在网上寻找帮助,比如在StackOverflow这样的平台上提问。

在提问时,最好能把自己的问题描述得清楚明了,包括你遇到的具体情况、你尝试过的解决办法,以及你希望达到的目标。这样,其他人才能更好地理解你的问题,并给出有效的建议。

另外,查看别人提问和回答的问题也是一个很好的学习方式。通过阅读这些内容,我们可以了解到不同的解决方案和思路,这对我们提升编程能力非常有帮助。

总之,遇到问题时,不要害怕寻求帮助,记得把问题描述清楚,积极参与讨论,这样才能更快地找到解决方案。

label_box = Gtk::HBox.new(false, 0) 
label = Gtk::Label.new('Page1') 
label_box.pack_start(label, false, false, 0) 

btn = Gtk::Button.new 
btn.relief = Gtk::RELIEF_NONE 
btn.focus_on_click = false 
style = btn.modifier_style 
style.xthickness = 0 
style.ythickness = 0 
btn.modify_style(style) 
btn.set_tooltip_text("Close page1") 
wim,him = Gtk::IconSize.lookup(Gtk::IconSize::MENU) 
btn.set_size_request(wim+2,him+2) 
btn.signal_connect('clicked') do 
  $notebook.remove_page($notebook.children.index(treeview)) 
  store.clear 
  label_box.destroy 
  treeview.destroy 
end 

image = Gtk::Image.new(Gtk::Stock::CLOSE, Gtk::IconSize::MENU) 
btn.add(image) 

align = Gtk::Alignment.new(1.0, 0.0, 0.0, 0.0) 
align.add(btn) 
label_box.pack_start(align, false, false, 0) 

label_box.spacing = 3 
label_box.show_all 

page = $notebook.append_page(treeview, label_box) 
treeview.show_all 
$notebook.page = $notebook.n_pages-1 
2

设置按钮的 relief 属性:

button.props.relief = gtk.RELIEF_NONE

完整的测试程序:

import gtk

window = gtk.Window ()
box    = gtk.VButtonBox ()

for k in range (10):
    button = gtk.Button ('button %d' % k)
    if k % 2 == 0:
        button.props.relief = gtk.RELIEF_NONE

    box.add (button)

window.add (box)
window.show_all ()

gtk.main ()

如果这样做对你没有效果,那可能是你的 GTK+ 主题不支持 RELIEF_NONE

撰写回答