tkinter 按钮高度和宽度

问题描述 投票:0回答:3

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

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)
python button tkinter
3个回答
5
投票

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

现在,您说您的最终目标是更改按钮的大小。如果是这样,那么您就走在正确的道路上:您可以使用

height
width
选项来实现此目的。

但是,我建议您对代码进行一些更改:

  1. 不要让按钮太大。即使在非常大的显示器上,拥有这么大的按钮也太过分了。
  2. 不要把窗户弄得那么大。没有人想要一个占据整个屏幕的应用程序。
  3. 使用
    .grid
    而不是
    .place
    。这样做将使您更轻松地将小部件放置在您想要的位置。
  4. 在制作按钮时设置
    height
    width
    选项,而不是在按钮之后。
  5. 这里不需要导入
    sys
    。只导入您需要的内容。
  6. 不要像这样导入:
    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()

1
投票
import sys
from tkinter import *

def update_window_size():
    mmWindow.geometry('600x600')

mmWindow  = Tk()
mmWindow .geometry('1920x1080+0+0')
mmWindow .title('DMX512 Controller')

wtitle = Label(mmWindow, text="Pi DMX", fg='blue')
wtitle.place(relx=0.33, rely=0.0925925)

mmbutton = Button(mmWindow, text="Main Menu", command=update_window_size)
mmbutton.place(relw=0.104167, relh=0.185185, relx=0.104167, rely=0.185185)

mmWindow.mainloop()

我知道这已经晚了,但只是想添加我的方法来解决如何更改按钮大小的问题。我相信将 place 与 relw 和 relh 一起使用将是更好的方法。 relw 和 relh & relx 和依赖将是父窗口小部件的高度和宽度的分数。因此您无需担心调整 wtitle 和 mmbutton 的大小。

如果您想更改其宽度和高度,只需将下面的代码放在按钮命令上即可。

def update_button_size():
    mmbutton.place(width=20, height=20)

mmbutton = Button(mmWindow, text="Main Menu", command=update_button_size)
mmbutton.place(width=400, height=400, relx=0.104167, rely=0.185185)

如果您想从配置更改其宽度和高度,请使用下面的代码。

def update_button_size():
    mmbutton.config(width=20, height=20)

mmbutton = Button(mmWindow, text="Main Menu", command=update_button_size)
mmbutton.place(relx=0.104167, rely=0.185185)
mmbutton.config(width=400, height=400)

根据我的理解,配置宽度和高度与位置宽度和高度不同。


0
投票

你可以使用 padx 和 pady: mmbutton = 按钮(mmWindow, text="主菜单", padx=43, pady=20)

或者只是删除尝试更改大小的代码并添加: mmbutton.config(padx=43, pady=20)

但请确保使用网格而不是位置!

希望我能帮助你 和平

© www.soinside.com 2019 - 2024. All rights reserved.