0
我想創建一個Tkinter的初學者程序,它將模擬NFL遊戲。我在與Tkinter創建我的'記分牌'時陷入困境。下面的代碼會在一個窗口中顯示部分記分板,並在另一個窗口中顯示兩個菜單按鈕。爲什麼這些在單獨的窗口?我試圖讓兩個菜單按鈕顯示在「客隊」和「主隊」旁邊,以便用戶可以選擇他們想要的隊伍。目前還不擔心calc,只是試圖讓GUI先運行起來。有什麼建議麼?謝謝!Python Tkinter MenuButton
from Tkinter import *
try:
import Tkinter as tk
except ImportError:
import tkinter as tk
teams = ['Arizona Cardinals','Atlanta Falcons','Baltimore Ravens',
'Buffalo Bills','Carolina Panthers','Chicago Bears','Cincinnati Bengals',
'Cleveland Browns','Dallas Cowboys','Denver Broncos','Detroit Lions',
'Green Bay Packers','Houston Texans','Indianapolis Colts','Jacksonville Jaguars',
'Kansas City Chiefs','Miami Dolphins','Minnesota Vikings','New England Patriots',
'New Orleans Saints','New York Giants','New York Jets','Oakland Raiders','Philadelphia Eagles','Pittsburgh Steelers','San Diego Chargers','San Francisco 49ers',
'Seattle Seahawks','St. Louis Rams','Tampa Bay Buccaneers','Tennessee Titans',
'Washington Redskins']
class App(object):
def __init__(self, master):
self.frame = Frame(master)
self.frame.grid()
global root
root = tk.Tk()
root.geometry("%dx%d+%d+%d" % (330, 80, 200, 150))
root.title("tk.Optionmenu as combobox")
global var
var = tk.StringVar(root)
var.set('Arizona Cardinals')
sf = "value is %s" % var.get()
root.title(sf)
master.title("NFL Simulator")
self.lblTeamA = Label(self.frame,text = "Away Team")
self.lblTeamA.grid(row = 0, column = 0, sticky = "ew")
self.txtTeamA = tk.OptionMenu(root, var, *teams)
self.txtTeamA.pack(side='right', padx=10, pady=10)
self.txtTeamA.grid(row = 0, column = 1)
self.lblTeamB = Label(self.frame,text = "Home Team")
self.lblTeamB.grid(row = 1, column = 0, sticky = "ew")
self.txtTeamB = tk.OptionMenu(root, var, *teams)
self.txtTeamB.pack(side='right', padx=10, pady=10)
self.txtTeamB.grid(row = 1, column = 1)
self.btnCalc = Button(self.frame,text = "Simulate Game",command = self.calc)
self.btnCalc.grid(row = 3, column = 0, columnspan = 2)
self.lblScoreAPrompt = Label(self.frame,text = "Away Team Score")
self.lblScoreAPrompt.grid(row = 4, column = 0, sticky = "ew")
self.lblScoreA = Label(self.frame, bg = "white", anchor = "w")
self.lblScoreA.grid(row = 4, column = 1, sticky = "ew")
self.lblScoreBPrompt = Label(self.frame,text = "Home Team Score")
self.lblScoreBPrompt.grid(row = 5, column = 0, sticky = "ew")
self.lblScoreB = Label(self.frame, bg = "white", anchor = "w")
self.lblScoreB.grid(row = 5, column = 1, sticky = "ew")
def calc(self):
TeamA = int(self.txtTeamA.get())
TeamB = int(self.txtTeamB.get())
self.lblTeamA["text"] = random.randint(3,45)
self.lblTeamB["text"] = random.randint(3,45)
def main():
root = Tk()
app = App(root)
root.mainloop()
if __name__ == "__main__":
main()
@russherm我編輯了我的答案,展示如何使它們獨立。 – sPaz