Python Tkinter不允许我在文本小部件中插入文本

Python Tkinter不允许我在文本小部件中插入文本,python,tkinter,Python,Tkinter,级别类 from tkinter import * from PIL import Image, ImageTk import time schermata = Tk() screen_width = schermata.winfo_screenwidth() screen_height = schermata.winfo_screenheight() indice = 0 schermata.iconbitmap("immagini\icona.ico") screen_resolutio

级别类

from tkinter import *
from PIL import Image, ImageTk
import time


schermata = Tk()
screen_width = schermata.winfo_screenwidth()
screen_height = schermata.winfo_screenheight()
indice = 0
schermata.iconbitmap("immagini\icona.ico")
screen_resolution = str(screen_width)+'x'+str(screen_height)
large_font = ('Verdana',30)
schermata.geometry(screen_resolution)
schermata.title("Jovan's RPG")





class GUI(Frame):

  def __init__(self, master):

        super(GUI, self).__init__(master)

        self.pack()
        self.bg() 
        self.immagine()
        self.testo()
        self.statistiche()
        self.inserimenti()


  def bg(self):

        load = Image.open("immagini\\background.png")
        render = ImageTk.PhotoImage(load)
        img = Label(schermata, image = render)
        img.image = render
        img.pack()

  def immagine(self):           

        load = Image.open("immagini\\dn.png")
        render = ImageTk.PhotoImage(load)
        img = Label(schermata, image = render)
        img.image = render
        img.place( x = 10, y = 10 )

  def testo(self):

        self.testo = Text(schermata, width = 110, height = 35, border = 5, bg = "black", fg ="white")
        self.testo.place( x = 400, y = 20 )

  def statistiche(self):

        self.stats = Text(schermata, width = 40, height = 10, border = 5, bg = "black", fg ="white")
        self.stats.place( x = 10, y = (screen_height - 200))

  def inserisci(self):

        fraseInserita = self.inserimento.get()
        scrivere(fraseInserita)
        self.inserimento.delete('0', END)

  def inserimenti(self):

        self.inserimento = Entry(schermata,font=large_font, width = 25, border = 5, bg = "black", fg ="white")
        self.inserimento.place( x = 400, y = (screen_height - 100))
        self.bottone = Button(schermata, width = 30, height = 3, border = 5, text = "Inserisci", command = self.inserisci)
        self.bottone.place( x = (screen_width - 300), y = (screen_height - 100))

g = GUI(schermata)

def scrivere(scrittura):

      g.testo.insert('1.0', scrittura)

def cancellaTesti():

      g.testo.delete('0',END)

def wait(secondi):

      time.sleep(secondi)
主要


正如您所看到的,我调用了函数[scrivere],但是解释器不会让字符串出现在文本小部件中。我刚刚发布了GUI类和我希望用于创建的级别类,当然,我正在创建的游戏的级别。我正在搜索答案,但找不到,希望你们能帮忙。

在屏幕上显示需要包含self的内容。configwidth=700,heigh=800宽度和高度完全任意:!在类GUI中添加self.pack之前,将所有schermata更改为self,因为您已将GUI实例定义为主框架。 我让程序用下面的版本在屏幕上显示一些东西,我必须定义一些变量,比如屏幕高度,屏幕宽度,来证明这个概念。 我还定义了scrivere方法。无论如何,它正在呈现一些东西,所以希望您可以继续。祝你好运

from GUI import *

a = GUI(schermata)
l = Livelli()

if __name__ == "__main__":

  a.mainloop()
  l.cicloLivelli()

在哪里初始化root=tkinter.Tk?main中的最后一行应该是root.mainloop。。。正如我看到的,a不是tkinter的对象。TkI编辑了添加整个python文件的代码,现在一切都在那里了。我刚刚看到他在insert self.tk.callself中给了我这个错误。_w,'insert',index,chars+args _tkinter.TclError:无效的命令名。!text注意:如果将.placex=,y=替换为.pack或.grid,则不需要包含self.configwidth=700,height=500行
from GUI import *

a = GUI(schermata)
l = Livelli()

if __name__ == "__main__":

  a.mainloop()
  l.cicloLivelli()
import tkinter as tk

class GUI(tk.Frame):

    def __init__(self):
        super(GUI, self).__init__()
        self.config(width=700, height=500)
        self.pack()
        # self.bg()
        # self.immagine()
        self.testo()
        self.statistiche()
        self.inserimenti()

    def bg(self):
        load = Image.open("immagini\\background.png")
        render = ImageTk.PhotoImage(load)
        img = Label(self, image = render)
        img.image = render
        img.pack()

    def immagine(self):
        load = Image.open("immagini\\dn.png")
        render = ImageTk.PhotoImage(load)
        img = Label(self, image = render)
        img.image = render
        img.place( x = 10, y = 10 )

    def testo(self):
        self.testo = tk.Text(self, width = 110, height = 35, border = 5, bg = "black", fg ="white")
        self.testo.place( x = 400, y = 20 )

    def statistiche(self):
        screen_height = 400
        self.stats = tk.Text(self, width = 40, height = 10, border = 5, bg = "black", fg ="white")
        self.stats.place( x = 10, y = (screen_height - 200))

    def inserisci(self):
        fraseInserita = self.inserimento.get()
        self.scrivere(fraseInserita)
        self.inserimento.delete('0', 'end')

    def inserimenti(self):
        large_font = ('calibri', 12)
        screen_height = 400
        screen_width = 600
        self.inserimento = tk.Entry(self,font=large_font, width = 25, border = 5, bg = "black", fg ="white")
        self.inserimento.place( x = 400, y = (screen_height - 100))
        self.bottone = tk.Button(self, width = 30, height = 3, border = 5, text = "Inserisci", command = self.inserisci)
        self.bottone.place( x = (screen_width - 300), y = (screen_height - 100))

    def scrivere(self, frase):
        print(' you need to define this function when button is pressed')

class Livelli():

    def __init__(self):
        pass

    def cicloLivelli(self):
        self.presentazione()

    def presentazione(self):
        print("Salve avventuriero, qual e' il tuo nome?")


if __name__ == "__main__":
    a = GUI()
    l = Livelli()
    l.cicloLivelli()
    a.mainloop()