2011-05-10 60 views
0

我正在嘗試製作一個如下所示的程序。我需要幫助選擇和打印PYGTK中的文本

Image

我該文件被稱爲企鵝image.png和我有另一個叫做文件到use.txt看起來像這樣

微軟 蘋果 HP 戴爾 Linux的 黑莓

我需要使程序看起來像上面那樣,選擇Linux這個詞並將其打印在image.Here是我現在擁有的代碼。

# two underscores 
Class tux: 
    def __init__(self): 
     win = gtk.Window() 
     img = gtk.Image() 
     img.set_from_file(「Tux image.png」) 
     win.add(img) 
     win.show_all() 
     win.connect(‘destroy’,gtk.main_quit) 


tux() 
gtk.main() 

我只需要與文檔的導入幫助,並在底部

回答

0

打印的名字我不知道你需要什麼,但你可以這樣寫的use.txt文件:

fileobj = open("use.txt") 
file_content = fileobj.read() 

'FILE_CONTENT' 現在應該包含:

Microsoft Apple HP Dell Linux Blackberry 

您可以在列表中割裂開來:

choices = file_content.split() 

之後,您可以使用gtk.ComboBox來顯示帶選項的組合框。

還不確定這是你想要的。

編輯:

添加組合及標籤:

class Tux(gtk.Window): 
    def __init__(self): 
     super(Tux, self).__init__() 
     combobox = gtk.combo_box_new_text() 
     combobox.connect("changed", self.on_changed) 
     for choice in choices: 
      combobox.append_text(choice) 
     self.add(combobox) 
     self.label = gtk.Label("No selection") 
     self.add(self.label) 
     img = gtk.Image() 
     img.set_from_file(「Tux image.png」) 
     self.add(img) 
     self.connect("destroy", gtk.main_quit) 
     self.show_all() 

def on_changed(self, widget): 
    self.label.set_label(widget.get_active_text()) 


Tux() 
gtk.main() 
+0

我需要選擇,並在標籤上打印的Linux你知道該怎麼做 – 2011-05-10 14:01:22

+0

@Liam維爾:我剛編輯我的答案。我沒有親自測試代碼,但它應該給你一個想法。 – Matic 2011-05-10 14:24:07

0

你有2種選擇:
1加載鏡像文件到Pixbuff,繪製文本就可以了,在窗口中顯示,這是困難的方式。
2-在窗口中添加gtk.Fixed,並給定文本的特定位置(例如x = 300,y = 750),將gtk.Image(從文件加載)和gtk.Label(包括文本)添加到該gtk.Fixed小部件。事情是這樣的:

class TuxWindow(gtk.Window): 
    def __init__(self): 
     gtk.Window.__init__(self) 
     fixed = gtk.Fixed() 
     #### 
     image = gtk.Image() 
     image.set_from_file('Tux image.png') 
     fixed.put(image, 0, 0) 
     #### 
     text = open('use.txt').read() 
     label = gtk.Label(text) 
     fixed.put(label, 300, 750) 
     self.add(fixed) 
     fixed.show_all() 
     #### 
     self.connect('delete-event', lambda w, e: gtk.main_quit()) 

TuxWindow().present() 
gtk.main()