Python Tkitner:未知选项“-高度;。Can';不要改变按钮的大小
我试图用tkinter做一个简单的程序 我试图改变字体或样式的宽度或高度。 宽度可以改变,但当涉及到高度或字体时,它显示错误。 我在想-也许是因为布局? (宽度更改的按钮位于def initUI的底部) 此外,如果任何人也可以回答此问题: 我将1帧设为红色,因为那里会出现错误消息,但有人知道如何使红色的宽度变小吗 谢谢你的光临Python Tkitner:未知选项“-高度;。Can';不要改变按钮的大小,python,button,tkinter,layout,Python,Button,Tkinter,Layout,我试图用tkinter做一个简单的程序 我试图改变字体或样式的宽度或高度。 宽度可以改变,但当涉及到高度或字体时,它显示错误。 我在想-也许是因为布局? (宽度更改的按钮位于def initUI的底部) 此外,如果任何人也可以回答此问题: 我将1帧设为红色,因为那里会出现错误消息,但有人知道如何使红色的宽度变小吗 谢谢你的光临 从tkinter导入* 从tkinter.ttk导入* 类示例(框架): 定义初始(自我,主): super()。\uuuu init\uuuuu() master.mi
从tkinter导入*
从tkinter.ttk导入*
类示例(框架):
定义初始(自我,主):
super()。\uuuu init\uuuuu()
master.minsize(宽=350,高=160)
master.maxsize(宽=650,高=500)
self.initUI()
def initUI(self):
self.master.title(“Hank(版本3)”)
self.pack(fill=BOTH,expand=True)
frame1=帧(自身)
框架1.包装(填充=X)
#数据集
lbl1=标签(frame1,text=“数据集文件名”,宽度=18)
lbl1.pack(侧面=左侧,padx=5,pady=5)
entryDataset=条目(frame1)
pack(fill=X,padx=5,expand=True)
#行列开始
frame2=帧(自身)
框架2.包装(填充=X)
lblRow=标签(第2帧,text=“行”,宽度=6)
lblRow.pack(侧面=左侧,padx=5,pady=5)
entryRow=条目(第2帧,宽度=5)
pack(side=LEFT,padx=0,expand=True)
lblCol=标签(第2帧,text=“列”,宽度=7.5)
lblCol.pack(侧=左侧,padx=5,pady=5)
entryCol=条目(第2帧,宽度=5)
entryCol.pack(side=LEFT,padx=5,expand=True)
lblBegin=Label(frame2,text=“开始于”,宽度=6)
lblBegin.pack(侧=左侧,padx=5,pady=5)
entryBegin=Entry(frame2,宽度=5)
pack(side=LEFT,padx=0,expand=True)
#控制台窗口
s=样式()
s、 配置('My.TFrame',background='grey')
frame3=Frame(self,style='My.TFrame')
frame3.pack(fill=BOTH,expand=True)
#按钮启动和帮助
s=样式()
s、 配置('My.ConsoleFrame',background='red')
frame4=帧(自身)
frame4.pack(fill=BOTH,expand=True)
开始按钮=按钮(第4帧,text=“开始群集”,height=“100”,width=“100”)
startbutton.pack(侧面=右侧,padx=5,pady=5)
def main():
root=Tk()
根几何(“300x160+300+160”)
app=示例(根)
root.mainloop()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
main()
这是全球进口不好的主要原因之一。
你在上面写:
from tkinter import *
from tkinter.ttk import *
这意味着您将tkinter
和tkinter.ttk
中的所有内容导入到main.py
命名空间中。然后你写了一个例子:
frame3 = Frame(self, bg="grey")
....
lblCol = Label(frame2, text="Column", width=7)
这些是框架/标签对象,但哪些是?是tkinter
中的那个还是tkinter.ttk
中的那个?如果是第一个,则必须使用-height
设置高度,否则必须使用tkinter.ttk.Style()
。与帧的-bg
相同
解决方案:
import tkinter as tk
class Example(tk.Frame):
def __init__(self,master):
super().__init__()
master.minsize(width=350, height=160)
master.maxsize(width=650, height=500)
self.initUI()
def initUI(self):
self.master.title("Hank (version 3)")
self.pack(fill=tk.BOTH, expand=True)
frame1 = tk.Frame(self)
frame1.pack(fill=tk.X)
#dataset
lbl1 = tk.Label(frame1, text="Dataset file_name", width=18)
lbl1.pack(side=tk.LEFT, padx=5, pady=5)
entryDataset= tk.Entry(frame1)
entryDataset.pack(fill=tk.X, padx=5, expand=True)
#row col begin
frame2 = tk.Frame(self)
frame2.pack(fill=tk.X)
lblRow = tk.Label(frame2, text="Row", width=6)
lblRow.pack(side=tk.LEFT, padx=5, pady=5)
entryRow = tk.Entry(frame2, width=5)
entryRow.pack(side=tk.LEFT, padx=0, expand=True)
lblCol = tk.Label(frame2, text="Column", width=7)
lblCol.pack(side=tk.LEFT, padx=5, pady=5)
entryCol = tk.Entry(frame2, width=5)
entryCol.pack(side=tk.LEFT, padx=5, expand=True)
lblBegin = tk.Label(frame2, text="Start at", width=6)
lblBegin.pack(side=tk.LEFT, padx=5, pady=5)
entryBegin = tk.Entry(frame2, width=5)
entryBegin.pack(side=tk.LEFT, padx=0, expand=True)
frame3 = tk.Frame(self, bg="grey")
frame3.pack(fill=tk.BOTH, expand=True)
frame4 = tk.Frame(self)
frame4.pack(fill=tk.BOTH, expand=True)
startbutton = tk.Button(frame4, text="Start Clustering", height="100", width="100")
startbutton.pack(side=tk.RIGHT, padx=5, pady=5)
def main():
root = tk.Tk()
root.geometry("300x160+300+160")
app = Example(root)
root.mainloop()
if __name__ == '__main__':
main()
我在这里用tkinter
小部件实现了这一点。显然,您可以将tkinter.ttk作为ttk导入,并使用它们重写代码,这只是品味的问题