首页 > 解决方案 > 在 python 的 GUI 界面中显示记分牌

问题描述

我有一个在终端打印记分牌游戏结果的功能(见下图)。我想修改函数以使用 python -tkinter 或其他技术在 GUI 界面上打印结果。我在使用 python 的 GUI 方面没有任何经验。有人能帮我吗?

这是用户在终端中输入相应帧的分数后打印记分牌结果的函数:

 def print_scoreboard(self):
        print()
        print("Scoreboard")

        # print heading
        print("----------------------------------------------------------------------------")
        heading = self.fixed_width("Frames") + "|"
        for frame in self.frames:
            heading = heading + self.fixed_width(str(frame), 5) + "|"
        print(heading)
        print("----------------------------------------------------------------------------")

        # print results
        for player in self.players:
            results = ''
            for frame, res in player.results.items():
                results = results + self.fixed_width(res['roll_1'] + " " + res['roll_2'] + " " + res['roll_3'], 5) + "|"

            print(self.fixed_width(player.name) + "|" + results)

            scores = ''
            for frame, s in player.scores.items():
                scores = scores + self.fixed_width(str(s['frame_score']), 5) + "|"

            print(self.fixed_width("Frame Scores") + "|" + scores)

            totals = ''
            for frame, s in player.scores.items():
                totals = totals + self.fixed_width(str(s['running_total']), 5) + "|"

            print(self.fixed_width("Running Total") + "|" + totals)
            print("----------------------------------------------------------------------------")

        print()

在我做了一些研究之后,我在 python - tkinter 中得到了以下示例。此示例将变量值作为输入并将其显示在 gui 窗口中:

from tkinter import *
import tkinter
from tkinter import messagebox
number = 0

# object of tkinter
# and background set for light grey
master = Tk()
master.configure(bg='light grey')
master.title("Programme")
master.geometry('500x650')

# Variable Classes in tkinter
score = StringVar();
# Creating label for each information
# name using widget Label
label = Label(master, text="The total score is :" + str(number) ,font=("Arial", 25) ,bg = "light grey").grid(row=2, sticky=W)
# Creating lebel for class variable
# name using widget Entry
Label(master, text="", textvariable= score ,bg = "light grey").grid(row=2,column=1, sticky=W)
StringVar(master=master)
master.mainloop()

为了清楚起见,在下图中,您可以在终端中找到一个可生产的示例。我想在 GUI 界面中显示此图像(终端)的相同内容 在此处输入图像描述

标签: pythonuser-interfacetkinter

解决方案


推荐阅读