2011-07-17 1 views
0

これは私がここで達成しようとしているものはかなり簡単です。PyGTKウィンドウを2つのエントリから変更する

左のテキストボックスに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() 
+0

なぜエントリの代わりにスピンボタンを使用しないのですか? SpinButtonは整数ではなく浮動小数点数を返すので、int型(この場合のように)にする必要がある場合を除いて、数値のインタフェースが優れています。 – saeedgnu

答えて

1
get_textが文字列を返すためです

が、set_size_requestは整数が必要です。簡単な修正:

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

今、私は気が気になりません。ありがとう兄貴! –

関連する問題