PyGTK从两个条目改变窗口尺寸

时间:2011-07-17 14:09:07

标签: window size pygtk dimensions

我想在这里完成的事情非常简单。

假设您在左侧文本框中放下了320。这意味着窗口的宽度将是320px。同样适用于高度,右侧文本框除外。

然而,当我调试时,我收到此错误。

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 个答案:

答案 0 :(得分:1)

那是因为get_text返回一个字符串,但set_size_request需要整数。简单修复:

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