2011-05-10 45 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()