【问题标题】:PyGTK Change Window Dimensions from Two Entry'sPyGTK 从两个条目更改窗口尺寸
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 2015-12-01
    • 2012-11-19
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多