Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-如何使每行的所有按钮对齐,使其看起来像按钮墙_Python_Linux_Python 2.7_Gtk_Pygtk - Fatal编程技术网

Python-如何使每行的所有按钮对齐,使其看起来像按钮墙

Python-如何使每行的所有按钮对齐,使其看起来像按钮墙,python,linux,python-2.7,gtk,pygtk,Python,Linux,Python 2.7,Gtk,Pygtk,如何使大文本的每行按钮固定,使其看起来像预期的输出,几乎所有按钮都像墙一样对齐 不工作: 预期产出: 代码:无法对齐 import gobject, gtk gobject.threads_init() class rightclick(object): def __init__(self): self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.modify_bg(gtk.STATE_NORMAL, gtk

如何使大文本的每行按钮固定,使其看起来像预期的输出,几乎所有按钮都像墙一样对齐

不工作:

预期产出:

代码:无法对齐

import gobject, gtk
gobject.threads_init()

class rightclick(object):
  def __init__(self):
    self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    self.window.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(0, 0, 0))
    self.window.set_size_request(630, 480)
    self.window.set_border_width(1)
    self.window.set_title("PIPTPT")
    self.window.move(0,720 /3 - 200 )
    self.window.set_name("main window")
    self.window.connect("delete-event", gtk.main_quit)
    self.vbox = gtk.VBox()
    self.vbox.set_border_width(0)
    self.vbox.pack_start(self.create_bbox(True, "",5, gtk.BUTTONBOX_START), True, True, 0)
    self.window.add(self.vbox)

  def create_bbox(self, horizontal, title, spacing, layout):
      frame = gtk.Frame(title)
      frame.set_label_align( 0, 0)
      frame.set_shadow_type( gtk.SHADOW_NONE)
      frame.set_border_width(2)
      if horizontal:
          bbox = gtk.HButtonBox()
      else:
          bbox = gtk.VButtonBox()

      bbox.set_border_width(0)
      frame.add(bbox)
      bbox.set_layout(layout)
      bbox.set_spacing(0)
      button_height= 22
      for x in range(0, 35):
        button = gtk.Button()
        button.props.relief = gtk.RELIEF_NONE
        label = gtk.Label()
        label.set_markup('<span color="#bbbbbb"><small>Long Long Long</small></span>');
        button.add(label)
        button.set_size_request(48, button_height)
        button.connect("clicked" , self.button_quit , None)
        bbox.add(button)

      return frame

  def run(self):
    self.window.show_all()
    self.window.set_keep_above(True)
    if(self.window.get_window().get_state() == gtk.gdk.WINDOW_STATE_MAXIMIZED):
      self.window.unmaximize()
    gtk.main()

  def button_quit(self, widget, event):
    gtk.main_quit()

if __name__=='__main__':
    s=rightclick()
    s.run()
gobject.MainLoop.run()
导入gobject,gtk
gobject.threads_init()
类右键单击(对象):
定义初始化(自):
self.window=gtk.window(gtk.window\u顶层)
self.window.modify_bg(gtk.STATE_NORMAL,gtk.gdk.Color(0,0,0))
self.window.set\u size\u请求(630480)
self.window.set_border_width(1)
self.window.set_title(“PIPTPT”)
自动窗口移动(0720/3-200)
self.window.set_名称(“主窗口”)
self.window.connect(“删除事件”,gtk.main\u退出)
self.vbox=gtk.vbox()
self.vbox.set_border_width(0)
self.vbox.pack_start(self.create_bbox(True,”,5,gtk.BUTTONBOX_start),True,True,0)
self.window.add(self.vbox)
def create_bbox(自身、水平、标题、间距、布局):
框架=gtk.框架(标题)
框架。设置标签对齐(0,0)
帧设置阴影类型(gtk.shadow无)
框架。设置边框宽度(2)
如果水平:
bbox=gtk.HButtonBox()
其他:
bbox=gtk.VButtonBox()
bbox.set_border_width(0)
帧。添加(bbox)
bbox.set_布局(布局)
bbox.set_间距(0)
按钮高度=22
对于范围(0,35)内的x:
button=gtk.button()
button.props.relief=gtk.relief\u无
label=gtk.label()
label.set_标记('Long');
按钮。添加(标签)
按钮。设置大小请求(48,按钮高度)
按钮连接(“单击”,self.button\u退出,无)
bbox.add(按钮)
回程架
def运行(自):
self.window.show_all()
self.window.set\u keep\u高于(True)
如果(self.window.get_window().get_state()==gtk.gdk.window_state_最大化):
self.window.unmaxize()文件
gtk.main()
def按钮退出(自我、小部件、事件):
gtk.main_quit()
如果“名称”=“\uuuuuuuu主要”:
s=右键单击()
s、 运行()
gobject.MainLoop.run()

好的-这个例子就是我想要的,它很有效

#!/usr/bin/python
import gtk

class PyApp(gtk.Window):

    def __init__(self):
        super(PyApp, self).__init__()

        self.set_title("Calculator")
        self.set_size_request(250, 230)
        self.set_position(gtk.WIN_POS_CENTER)

        vbox = gtk.VBox(False, 2)
        table = gtk.Table(5, 4, True)

        table.attach(gtk.Button("Cls"), 0, 1, 0, 1)
        table.attach(gtk.Button("Bck"), 1, 2, 0, 1)
        table.attach(gtk.Label(), 2, 3, 0, 1)
        table.attach(gtk.Button("Close"), 3, 4, 0, 1)

        table.attach(gtk.Button("7"), 0, 1, 1, 2)
        table.attach(gtk.Button("8"), 1, 2, 1, 2)
        table.attach(gtk.Button("9"), 2, 3, 1, 2)
        table.attach(gtk.Button("/"), 3, 4, 1, 2)

        table.attach(gtk.Button("4"), 0, 1, 2, 3)
        table.attach(gtk.Button("5"), 1, 2, 2, 3)
        table.attach(gtk.Button("6"), 2, 3, 2, 3)
        table.attach(gtk.Button("*"), 3, 4, 2, 3)

        table.attach(gtk.Button("1"), 0, 1, 3, 4)
        table.attach(gtk.Button("2"), 1, 2, 3, 4)
        table.attach(gtk.Button("3"), 2, 3, 3, 4)
        table.attach(gtk.Button("-"), 3, 4, 3, 4)

        table.attach(gtk.Button("0"), 0, 1, 4, 5)
        table.attach(gtk.Button("."), 1, 2, 4, 5)
        table.attach(gtk.Button("="), 2, 3, 4, 5)
        table.attach(gtk.Button("+"), 3, 4, 4, 5)

        #vbox.pack_start(gtk.Entry(), False, False, 0)
        vbox.pack_end(table, True, True, 0)

        self.add(vbox)

        self.connect("destroy", gtk.main_quit)
        self.show_all()


PyApp()
gtk.main()