PyGTK Изменить размеры окна из двух записей - PullRequest
0 голосов
/ 17 июля 2011

Это довольно просто, что я пытаюсь сделать здесь.

Скажем, вы положили 320 в левом текстовом поле.Это означает, что ширина окна будет 320 пикселей.То же относится и к высоте, за исключением правого текстового поля.

Однако при отладке я получаю эту ошибку.

Traceback (most recent call last):
  File "./app.py", line 37, in change_size
    self.win.set_size_request(width,height)
TypeError: an integer is required

Вот код.

#!/usr/bin/env python

import gtk

class app:

  def __init__(self):
    self.win = gtk.Window(gtk.WINDOW_TOPLEVEL)
    self.win.set_title("Change Dimensions")
    self.win.set_default_size(235, 60)
    self.win.connect("destroy", gtk.main_quit)
    vbox = gtk.VBox(spacing=4)
    hbox = gtk.HBox(spacing=4)

    self.entry = gtk.Entry()
    self.entry2 = gtk.Entry()
    hbox.pack_start(self.entry)
    hbox.pack_start(self.entry2)

    hbox2 = gtk.HBox(spacing=4)
    ok = gtk.Button("OK")
    ok.connect("clicked", self.change_size)
    hbox2.pack_start(ok)
    exit = gtk.Button("Exit")
    exit.connect("clicked", gtk.main_quit)
    hbox2.pack_start(exit)

    vbox.pack_start(hbox)
    vbox.pack_start(hbox2)

    self.win.add(vbox)
    self.win.show_all()

  def change_size(self, w):
    width = self.entry.get_text()
    height = self.entry2.get_text()
    self.win.set_size_request(width,height)

app()
gtk.main()

1 Ответ

1 голос
/ 17 июля 2011

Это потому, что get_text возвращает строку, но set_size_request требует целых чисел.Простое исправление:

    width = int(self.entry.get_text())
    height = int(self.entry2.get_text())
...