Как мне сделать отображение элемента Label Tkinter? - PullRequest
0 голосов
/ 15 апреля 2020

В настоящее время я создаю текстовую приключенческую игру. Теперь, чтобы сделать его немного лучше, чем многие из них, использующие консоль python, я использую Tkinter для создания GUI. Только он отображает мое фоновое изображение для стартового экрана, но не текст, который я там поместил! Пожалуйста помоги!

# writes the title as text in the window
titleFont = tkFont.Font(family = "Comic Sans MS", size = 20)
titleText = tkinter.Label(app, text="Gods of This World", font=titleFont)
titleText.pack()

# sets the background image to the games 3 colors (Red, Green, Grey)
C = tkinter.Canvas(app, height=300, width=250)
filename = tkinter.PhotoImage(file = "C:/Users/" + getpass.getuser() + "/Desktop/Gods of This World/net/godsofthisworld/ui/images/backgroundimage.png")
background_label = tkinter.Label(app, image=filename)
background_label.place(x=0, y=0, relwidth=1, relheight=1)
C.pack()

1 Ответ

0 голосов
/ 15 апреля 2020

Вы помещаете изображение после текста - и используете .place(x=0, y=0, relwidth=1, relheight=1) - чтобы текст скрывался за изображением.

Поместите его в другом порядке - первое изображение, следующий текст.

import tkinter as tk

app = tk.Tk()

# first image   
photo = tk.PhotoImage(file="image.png")
background_label = tk.Label(app, image=photo)
background_label.place(x=0, y=0, relwidth=1, relheight=1)

# next text   
titleText = tk.Label(app, text="Gods of This World")
titleText.pack()

app.mainloop()

Кстати: label с текстом будет иметь серый фон - и вы не могу удалить это. Если вам нужен текст без фона, используйте Canvas и canvas.create_image(), canvas.create_text() - без pack() и place()

import tkinter as tk

WIDTH = 800
HEIGHT = 600

app = tk.Tk()

canvas = tk.Canvas(width=WIDTH, height=HEIGHT)
canvas.pack()

photo = tk.PhotoImage(file="image.png")
canvas.create_image((WIDTH/2, HEIGHT/2), image=photo) #, anchor='center')
canvas.create_text((WIDTH/2, HEIGHT/2), text="Gods of This World") #, anchor='center')

app.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...