我正在用Tkinter制作一款简单的游戏,我有按钮可以通过放置和忘记适当的帧来转到下一个和最后一个"页面"。在__init__
的第三和第五行,我定义了按钮,我可以使用width=
来改变按钮的宽度(虽然它没有出现在下面的代码中),但是当我使用height=
来改变按钮的高度时,什么也不会发生。如果你知道这是为什么,请告诉我。代码中没有错误,所以它应该按原样运行。我使用Python 3.3.4。谢谢你。
from tkinter import *
import math
master=Tk()
class makeframe(object):
def __init__(self,i):
self.i=i
self.frame=Frame(master)
self.nextbutton=Button(self.frame,text='nextn>>',command=self.next,state=DISABLED,height=2)
self.nextbutton.grid(column=100,row=0,rowspan=100)
self.backbutton=Button(self.frame,text='lastn<<',command=self.back,height=2)
self.backbutton.grid(column=0,row=0,rowspan=10)
def next(self):
self.frame.grid_forget()
p[self.i+1].frame.grid()
def back(self):
self.frame.grid_forget()
p[self.i-1].frame.grid()
def allownext(self):
self.nextbutton.config(state=ACTIVE)
def disablenext(self):
self.nextbutton.config(state=DISABLED)
def rounds(i):
number=round(4+i*(5-p[0].numberofplayers.get()))
return(number)
n=7
p=[0]*n
f=[0]*n
for j in range(n):
p[j]=makeframe(j)
f[j]=p[j].frame
# 0 0 0 0 0 0 0 0 0 0 0
def after_numberofplayers():
p[0].numberofturns.set(0)
for i in range(4):
p[0].numberofturnsbutton[i].config(text='%i'%rounds(i),value=rounds(i),state=ACTIVE)
p[0].disablenext()
p[0].numerofplayerslabel=Label(f[0],text='Please select the number of players.')
p[0].numerofplayerslabel.grid(column=1,columnspan=4,row=0)
p[0].numberofplayers=IntVar()
p[0].numberofplayers.set(0)
p[0].numberofplayersbutton={}
p[0].numerofturnslabel=Label(f[0],text='Please select the number of rounds.')
p[0].numerofturnslabel.grid(column=1,columnspan=4,row=2)
p[0].numberofturns=IntVar()
p[0].numberofturns.set(0)
p[0].numberofturnsbutton={}
for i in range(4):
p[0].numberofplayersbutton[i]=Radiobutton(f[0],text='%i' %(i+1),variable=p[0].numberofplayers,value=(i+1),command=after_numberofplayers,width=5)
p[0].numberofplayersbutton[i].grid(row=1,column=i+1,sticky='w')
p[0].numberofturnsbutton[i]=Radiobutton(f[0],text='%i' %rounds(i),variable=p[0].numberofturns,value=rounds(i),state=DISABLED,command=p[0].allownext,width=5)
p[0].numberofturnsbutton[i].grid(row=3,column=i+1,sticky='w')
# 0 0 0 0 0 0 0 0 0 0 0
p[0].frame.grid()
p[0].backbutton.config(state=DISABLED)
根据您在问题评论中的回答,问题是您在OSX上运行代码。那个操作系统不允许你改变按钮的高度。苹果在允许应用程序偏离其风格指南方面更为严格。