我正在尝试使用下面的代码创建一个按钮并更改高度和宽度,但实际按钮不会在物理上显示。但是,如果您将鼠标悬停在它应该是的区域上并单击它将打开新窗口。有什么想法吗?
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 :(得分:4)
关于您的初始问题:按钮按物理显示。问题是,由于它太大,很难与窗口的其余部分区分开来。
现在,你说你的最终目标是改变按钮的大小。如果是这样,那么您就走在了正确的轨道上:您使用了height
和width
选项。
但是,我建议您对代码进行一些更改:
.grid
代替.place
。这样做可以让您更轻松地将小部件放在您想要的位置。height
和width
选项,而不是在此之后。sys
。只导入你需要的东西。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 :(得分: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)
根据我的理解,配置宽度和高度与地方宽度和高度不同。