我正在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='next\n>>',command=self.next,state=DISABLED,height=2)
self.nextbutton.grid(column=100,row=0,rowspan=100)
self.backbutton=Button(self.frame,text='last\n<<',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)
答案 0 :(得分:1)
根据您在问题评论中的答案,问题是您在OSX上运行代码。该操作系统不允许您更改按钮的高度。 Apple更严格地允许应用程序偏离其样式指南。