0

行ごとのボタンを大きなテキスト用に固定して、ほぼすべてのボタンが壁のように配置されている場所で期待される出力のように見えるようにする方法。

動作していません:

ここに画像の説明を入力

期待される出力:

ここに画像の説明を入力

コード: 位置合わせがうまくいきません

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

1 に答える 1

0

OK - この例は私が探していたものです。動作します。

#!/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()
于 2013-10-15T10:45:24.357 に答える