我无法在python中正确使用Gtk.get-text指令 [英] I can't use the Gtk.get-text instruction correctly in python

查看:82
本文介绍了我无法在python中正确使用Gtk.get-text指令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm writing a small program in Python with Gtk3 and this is part of the code:

#!/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()

当点击搜索按钮时,点击!并且我想将七个入口的内容放入尽可能多的变量中,但是,尽管进行了所有的试验,但是,请原谅我的无知,我无法得到我想要的结果。

When the "Search" button is clicked I print "Button has been clicked"! and I would like to put in as many variables the content of the seven "entry" but, forgive my ignorance, despite all the trials, I can't get the result I want.

我收到的错误是:

The error I receive is:

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翻译。

Thank you and apologize for the bad English: translated with PC.

翻译为www.DeepL.com/Translator

Translated with www.DeepL.com/Translator

推荐答案

您可能需要阅读 Python classes 。无论如何,你正在从第一堂课进入一个新班级,导致你的错误。这里是正确的代码:

You may want to read up on Python classes sometime. Anyway, you were accessing a new class from inside the first class, leading to your error. Here is the proper code:

#!/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()

这篇关于我无法在python中正确使用Gtk.get-text指令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆