2013-11-15 118 views
5

我想创建一个按钮,并使用下面的代码更改高度和宽度,但实际的按钮不显示在物理上。但是,如果您将鼠标悬停在应该显示的区域上,单击它将打开新窗口。有任何想法吗?tkinter按钮的高度和宽度

import sys 
from tkinter import * 

#main menu 
def mmWindow(): 
    mmWindow=Tk() 
    mmWindow.geometry('600x600') 


#first window 
mWindow= Tk() 
mWindow.geometry('1920x1080+0+0') 
mWindow.title('DMX512 Controller') 

wtitle = Label (mWindow, text = "Pi DMX", fg = 'blue') 
wtitle.place(x = 640, y = 100) 

#main menu button 
mmbutton = Button (mWindow, text = "Main Menu",command = mmWindow) 
mmbutton.place(x=200, y = 200) 
mmbutton.config(width=200, height=200) 
+0

事实上,它确实表明身体。问题是,由于它太大,很难与窗口的其余部分区分开来。 – iCodez

+0

学校男孩错误!谢谢,现在我的下一个问题,我可以改变宽度,但高度的原始错误仍然发生,按钮的实际物理大小不会改变,但'点击'区域.......你可能已经猜到了对Python的noob。 – user2996828

+0

我对你在做什么感到有点困惑。为什么要制作一个按钮,然后将其放置在窗口上后将其高度/宽度更改为一行?你想在这里做什么?你想做什么特别的事情吗?或者你只是试图让自定义尺寸的按钮放在窗口上? – iCodez

回答

3

关于你最初的问题:确实出现物理按钮。问题是,由于它太大,很难与窗口的其余部分区分开来。

现在,你说你的最终目标是改变一个按钮的大小。如果是这样,那么你是在正确的轨道上:你使用heightwidth选项。

不过,我会建议你对代码进行一些更改:

  1. 不要使按钮如此巨大。即使在一个非常大的显示器上,有一个按钮的大小是过度杀伤。
  2. 不要让窗户那么大。没有人希望占用整个屏幕的应用程序。使用.grid代替.place。这样做会使您更容易将小工具放在您想要的地方。
  3. 设置制作按钮时的heightwidth选项,而不是之后。
  4. 这里没有必要导入sys。只导入你需要的东西。
  5. 请勿像这样导入:from tkinter import *。这样做会在全局名称空间中转储大量可轻易覆盖的名称。

这里是我的版本的脚本:

import tkinter as tk 

def mmWindow(): 
    mmWindow = tk.Tk() 
    mmWindow.geometry('600x600') 

mWindow = tk.Tk() 
# You can set any size you want 
mWindow.geometry('500x500+0+0') 
mWindow.title('DMX512 Controller') 

wtitle = tk.Label(mWindow, text="Pi DMX", fg='blue') 
wtitle.grid(row=0, column=1) 

# You can set any height and width you want 
mmbutton = tk.Button(mWindow, height=5, width=20, text="Main Menu", command=mmWindow) 
mmbutton.grid(row=1, column=1) 

mWindow.mainloop() 
+0

谢谢你,我刚刚复制你的代码并运行它,然后我试着改变高度,它仍然不会改变按钮的大小,因为在大纲保持相同的大小,它会改变宽度,但没有高度....... – user2996828

+0

@ user2996828 - 呵呵,我恐怕我不知道这是为什么。我给的代码在一个正常的操作系统(Windows,Mac,Linux)上工作。然而,你确实说过“触摸屏”,这意味着某种平板电脑。我没有平板电脑,所以我不能排除这个问题。 – iCodez

+0

也许是我的设置,我目前没有运行它一个触摸屏,只是我的Mac运行IDLE Python版本3.3.2和tk版本8.5.14,我确实认为它奇怪的是,宽度发生了变化,高度没有变化:-s – user2996828