Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkitner:未知选项“-高度;。Can';不要改变按钮的大小_Python_Button_Tkinter_Layout - Fatal编程技术网

Python Tkitner:未知选项“-高度;。Can';不要改变按钮的大小

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做一个简单的程序

我试图改变字体或样式的宽度或高度。 宽度可以改变,但当涉及到高度或字体时,它显示错误。 我在想-也许是因为布局? (宽度更改的按钮位于def initUI的底部)

此外,如果任何人也可以回答此问题: 我将1帧设为红色,因为那里会出现错误消息,但有人知道如何使红色的宽度变小吗

谢谢你的光临

从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导入
,并使用它们重写代码,这只是品味的问题