人到中年有點(diǎn)甜
2023-05-09 10:59:22
我在 python 中有一些代碼,主要使用庫 tkinter 進(jìn)行 Hangman 游戲:from tkinter import *from PIL import ImageTk, Imageimport timepause=500class Graphics(Canvas): pics = { '1':'backgrounds/step1.png', '2':'backgrounds/step2.png', '3':'backgrounds/step3.png', '4':'backgrounds/step4.png', '5':'backgrounds/step5.png', '6''backgrounds/step6.png', '7':'backgrounds/step7.png', '8':'backgrounds/step8.png', '9':'backgrounds/step9.png', '10':'backgrounds/step10.png', '11':'backgrounds/step11.png', '12':'backgrounds/step12.png' } def __init__(self, master): self.width=500 self.height=550 Canvas.__init__(self, master, bg='saddle brown', width=self.width, height=self.height, highlightthickness=0) # self.step = '1' # self.createImage(self.step) def createImage(self,picName,size=()): if size==(): size=(self.width,self.height) filename = self.pics[picName] self.im = Image.open(filename) self.resizePic(size) self.img=ImageTk.PhotoImage(self.im) self.pic = self.create_image(self.width/2,self.height/2,anchor=CENTER,\ image=self.img) def resizePic(self,size): self.im = self.im.resize(size,Image.ANTIALIAS) def nextStep(self): if self.step=='6': self.after(pause, self.master.welcome) return self.step = str(int(self.step)+1) self.delete(self.pic) self.createImage(self.step) self.after(pause, self.nextStep)就我的問題而言,不需要圖片。無論如何,我希望在停頓 1/2 秒后出現(xiàn)“歡迎”“到”“劊子手”這些詞。時(shí)機(jī)和一切都是正確的。然而,不是三個(gè)畫布正確地排列在“棕色矩形”旁邊,而是其中一個(gè)奇怪地居中在它的右邊,另外兩個(gè)在它下面。為什么會(huì)這樣?
2 回答

UYOU
TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊
這是因?yàn)槟浄峙?code>master給Canvas.__init__(...)
內(nèi)部TEXT.__init__()
函數(shù)。
更改如下:
class TEXT(Canvas): def __init__(self, master, width, height, text): Canvas.__init__(self, bg='black',width=width,height=height,highlightthickness=0)
到:
class TEXT(Canvas): def __init__(self, master, width, height, text): Canvas.__init__(self, master, bg='black',width=width,height=height,highlightthickness=0)

一只甜甜圈
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
你必須告訴你的框架它將有多少行。
改變:
class Hangman(Frame):
? ? def __init__(self, master):
? ? ? ? Frame.__init__(self, master)
? ? ? ? self.grid()
到:
class Hangman(Frame):
? ? def __init__(self, master):
? ? ? ? Frame.__init__(self, master)
? ? ? ? self.grid(rowspan=10)
原因是網(wǎng)格忽略了空行和空列。
添加回答
舉報(bào)
0/150
提交
取消