【问题标题】:I can't use the Gtk.get-text instruction correctly in python我无法在 python 中正确使用 Gtk.get-text 指令
【发布时间】:2018-03-03 08:41:20
【问题描述】:

我正在用 Gtk3 用 Python 编写一个小程序,这是代码的一部分:

#!/usr/bin/env python3

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

class Layout(Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self, title="Ricerca partite")
        self.set_default_size(265, 310)
        self.connect("destroy", Gtk.main_quit)
        layout = Gtk.Layout()
        self.add(layout)
        label = Gtk.Label("Inserisci i TAG della partita che cerchi")
        layout.put(label, 10, 10)

        xlabel = 10 ; ylabel = 50
        xentry = 90 ; yentry = 45
        yy=30

        label = Gtk.Label("    Event    ")
        layout.put(label, xlabel, ylabel)
        Event = Gtk.Entry()
        Event.set_text("---test---")
        layout.put(Event, xentry, yentry)
        ylabel += yy ; yentry += yy

        label = Gtk.Label("    Site    ")
        layout.put(label,xlabel, ylabel)
        Site = Gtk.Entry()
        layout.put(Site, xentry, yentry)
        ylabel += yy ; yentry += yy

        # ...
        # Other 5 labels and entries
        # ...

        button = Gtk.Button(label="  cerca  ")
        layout.put(button, 186, ylabel+10)
        button.connect("clicked", self.on_button_clicked)

        txt=Event.get_text() # I verify "Event" entry
        print(txt)

    def on_button_clicked(self, button):
        print("Button has been clicked!")
        txt=window.Event.get_text()
        print(ddd,type(ddd))

window = Layout()
window.show_all()

Gtk.main()

单击“搜索”按钮时,我会打印“按钮已被单击”!我想在七个“条目”的内容中放入尽可能多的变量,但是,原谅我的无知,尽管经过了所有的试验,我还是无法得到我想要的结果。

我收到的错误是:

Traceback (most recent call last):
  File "scriptName.py", online 75, in on_button_clicked
    txt=window.Event.get_text ()
AttributeError:' Layout' object has no attribute' Event'.

感谢您并为糟糕的英语道歉:用 PC 翻译。

由 www.DeepL.com/Translator 翻译

【问题讨论】:

    标签: python gtk


    【解决方案1】:

    您可能想在某个时候阅读Python classes。无论如何,您正在从第一个类中访问一个新类,从而导致您的错误。这是正确的代码:

    #!/usr/bin/env python3
    
    import gi
    gi.require_version('Gtk', '3.0')
    from gi.repository import Gtk
    
    class Layout(Gtk.Window):
    
        def __init__(self):
            Gtk.Window.__init__(self, title="Ricerca partite")
            self.set_default_size(265, 310)
            self.connect("destroy", Gtk.main_quit)
            layout = Gtk.Layout()
            self.add(layout)
            label = Gtk.Label("Inserisci i TAG della partita che cerchi")
            layout.put(label, 10, 10)
    
            xlabel = 10 ; ylabel = 50
            xentry = 90 ; yentry = 45
            yy=30
    
            label = Gtk.Label("    Event    ")
            layout.put(label, xlabel, ylabel)
            self.Event = Gtk.Entry()
            self.Event.set_text("---test---")
            layout.put(self.Event, xentry, yentry)
            ylabel += yy ; yentry += yy
    
            label = Gtk.Label("    Site    ")
            layout.put(label,xlabel, ylabel)
            Site = Gtk.Entry()
            layout.put(Site, xentry, yentry)
            ylabel += yy ; yentry += yy
    
            # ...
            # Other 5 labels and entries
            # ...
    
            button = Gtk.Button(label="  cerca  ")
            layout.put(button, 186, ylabel+10)
            button.connect("clicked", self.on_button_clicked)
    
            txt=self.Event.get_text() # I verify "Event" entry
            print(txt)
    
        def on_button_clicked(self, button):
            print("Button has been clicked!")
            text=self.Event.get_text()
            print(text,type(text))
    
    window = Layout()
    window.show_all()
    
    Gtk.main()
    

    【讨论】:

    • 谢谢!谢谢!非常感谢你,对不起我的无知!!!
    • @Ave: 永远不要因为不知道而感到遗憾,因为没有人知道一切;)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 2019-02-26
    相关资源
    最近更新 更多