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

时间:2018-09-09 09:26:57

标签: python tkinter

+ '\n'

关卡课程

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)

主要

from GUI import *

g = GUI(schermata)

class Livelli():

  def __init__(self): pass

  def cicloLivelli(self):

        self.presentazione()

  def presentazione(self):

        scrivere("Salve avventuriero, qual e' il tuo nome?")

如您所见,我将函数称为[[scrivere]],但解释器不会让字符串出现在“文本”小部件中。我刚刚发布了我希望用于创建GUI的类和“关卡”的类,当然,这是我正在创建的游戏的关卡。我正在寻找答案,但找不到答案,希望大家能提供帮助。

1 个答案:

答案 0 :(得分:0)

要在屏幕上获取内容,您需要在类GUI中的self.config(width=700, heigh=800)之前包含self.pack()(宽度和高度完全是任意的:)!),并将所有schermata更改为{{1} }(因为您已将GUI实例定义为主框架)。 我使程序在屏幕上显示以下版本,并且我不得不定义一些变量,例如selfscreen_height,以证明这一概念。 我还定义了方法screen_width。无论如何,它正在渲染某些东西,因此希望您可以继续。祝你好运。

scrivere