【发布时间】:2011-07-17 14:09:06
【问题描述】:
我要在这里完成的工作非常简单。
假设您在左侧文本框中输入了 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()
【问题讨论】:
-
为什么不用 SpinButton 而不是 Entry?它具有更好的数字接口,除非您需要将其设为 int(如本例),因为 SpinButton 返回 float,而不是 int。
标签: window size pygtk dimensions