我有一个脚本,我试图设计初始化带有默认图像和按钮的GUI。当按下按钮时,它会调用getRandomCard函数,并用随机文件替换当前图像(例如:1c,2s,5d等)。它们是扑克牌的GIF文件。
我正在努力获取第一个图像(默认占位符)和运行程序时出现的按钮。我目前正在获得一个空窗口,里面没有小部件。我错过了哪些代码,或者哪些代码没有写好?
import random
from tkinter import *
class randomCards(object):
def __init__(self, rank, suit):
suitlst = ["s", "h", "d", "c"]
self.rank = random.randint(1,13)
self.suit = random.choice(suitlst)
def getRandomCard(self):
fileString = "DECK/" + str(self.rank) + str(self.suit)
userDisplay.imgLabel = Label(window, image = fileString).pack(side= "left")
userDisplay.imgLabel.pack()
class userDisplay(Frame):
def __init__(self, window):
self.master = window
window.title = "Random Images"
self.imgLabel = Label(window, image = "DECK/b.gif")
self.imgLabel.pack(side = "left")
self.cardButton = Button(window, text = 'Show Random Card', command=lambda : randomCards.getRandomCard(self))
self.cardButton.pack()
def main():
root = Tk()
interface = userDisplay(root)
main()
答案 0 :(得分:1)
我正在努力获取第一个图像(默认占位符)和运行程序时出现的按钮。我目前正在获得一个空窗口,里面没有小部件。我错过了哪些代码,或者哪些代码没有写好?
您永远不会在pack
的实例上致电place
,grid
或userDisplay
。由于它是Frame
的一个实例,因此只有在使用其中一个几何管理器将其添加到屏幕后才能看到它。
假设您希望userDisplay
填充整个窗口,请在main
内添加:
interface.pack(fill="both", expand=True)