使用python的黑屏

2024-05-14 02:32:19 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我正在为类做一个实验室,我的代码似乎很好,但当我运行程序时,框架只产生一个白色屏幕

我试着从头开始重新编写代码。奇怪的是,当我复制到一个模板微风文件,我有我可以让它工作

(卡片脚本)

import random

class Card(object):

    RANKS = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
    SUITS = ('Spades', 'Diamonds', 'Hearts', 'Clubs')
    def __init__(self, rank, suit):
        self.rank = rank
        self.suit = suit
        self.faceup = False

    def __str__(self):
        if self.rank == 1:
            rank = 'Ace'
        elif self.rank == 11:
            rank = 'Jack'
        elif self.rank == 12:
            rank = 'Queen'
        elif self.rank == 13:
            rank = 'King'
        else:
            rank = self.rank
        return str(rank) + ' of ' + self.suit
    def turn(self):
        self.faceup = not self.faceup


import random


class Deck(object):
    def __init__(self):
        self.cards = []
        for suit in Card.SUITS:
            for rank in Card.RANKS:
                c = Card(rank, suit)
                self.cards.append(c)
    def shuffle(self):
        random.shuffle(self.cards)
    def deal(self):
        if len(self) == 0:
            return None
        else:
            return self.cards.pop(0)
    def __len__(self):
        return len(self.cards)
    def __str__(self):

        result = ''
        for c in self.cards:
            result = self.result + str(c) + '\n'
            return result
def main():
    deck = Deck()
    print("A new deck, cards face down:")
    while len(deck) > 0:
        card = deck.deal()
        print(card, card.faceup)
    deck = Deck()
    deck.shuffle()
    print("A deck shuffled once, cards face up:")
    while len(deck) > 0:
        card = deck.deal()
        card.turn()
        print(card, card.faceup)

if __name__ == "__main__":
    main()

GUI脚本

from breezypythongui import EasyFrame
from tkinter import PhotoImage
from cards import Deck

class CardsGUI(EasyFrame):
    def __int__(self):
        EasyFrame.__int__(self, title = "cards Demo")
        self.deck = Deck()

        self.imageLabel = self.addLabel("", row = 0, column = 0, sticky = "NSEW", columnspan = 3)
        self.stateLabel = self.addLabel("", row = 1, column = 0,sticky = "NSEW",columnspan = 3)
        self.dealBtn = self.addButton(row = 2, column = 0,text = "Deal",command = self.deal)
        self.addButton(row = 2, column = 1,text = "Shuffle",command = self.shuffle)
        self.addButton(row = 2, column = 2,text = "New deck",command = self.newDeck)

        self.refreshimage("G:/Cis 202(Python)/DECK/b.gif")

    def deal(self):
        card = self.deck.deal()
        self.stateLabel["text"] = str(card)
        fileName = "Deck/" + str(card.rank) + card.suit[0] + ".gif"
        self.refreshimage(fileName)
        if len(self.deck) == 0:
            self.dealBtn["state"] = "disabled"

    def shuffle(self):
        self.deck.shuffle()

    def newDeck(self):
        self.deck = Deck()
        self.stateLabel["text"] = ""
        self.refreshimage("G:/Cis 202(Python)/DECK/b.gif")
        self.dealBtn["state"] = "normal"

    def refreshimage(self, fileName):
        self.image = PhotoImage(file = fileName)
        self.imageLabel["image"] = self.image

def main():
    CardsGUI().mainloop()

if __name__ == "__main__":
    main()

我期待一个弹出窗口,生成一张卡片,但却一无所获


Tags: importselflenmaindefcardcardsdeck