2010-05-17 101 views
1

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

我试着用:

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

,但我有一个错误:属性不存在。 我也试着创建一个新的gtk.Style,并将它用于按钮,但同样的错误。

任何人有想法?

感谢

回答

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

+0

我试过了,但它不工作,我仍然有缓解。 – spanctus 2010-05-17 16:16:36

+0

@spanctus:在编辑中查看测试程序。 – doublep 2010-05-17 16:56:56

+0

好的,非常感谢! – spanctus 2010-05-17 17:37:46

1
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 
0

短版:

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()