簡體   English   中英

Python框架自動調整大小

[英]Python frames auto resizing

我已經創建了4幀,但是當嘗試在第4幀中包裝標簽時,所有幀都會自動調整大小,任何人都可以看看並告知我在做什么錯。 我是python的新手,並使用python 3.6。

from tkinter import *
import time

localtime = time.asctime(time.localtime(time.time()))

root = Tk()
x = root.winfo_screenwidth()
y = root.winfo_screenheight()

root.geometry("%dx%d+0+0" %(x,y))
root.resizable(0,0)

frameinfo = Frame(root, width=x, height=100 , bg='powder blue', relief=SUNKEN)
frameinfo.pack(side=TOP,fill=BOTH, expand=YES)

framebutton = Frame(root, width=300, height=y-100, bg='dark grey', relief=SUNKEN)
framebutton.pack(side=LEFT,fill=BOTH, expand=YES)

frameradio = Frame(root, width=x-300, height=50, bg='light yellow', relief=SUNKEN)
frameradio.pack(side=TOP, fill=BOTH, expand=YES)

frameinput = Frame(root, width=x-300, height=y-150,  bg='light green')
frameinput.pack(side=LEFT, fill=BOTH, expand=YES)

clock = Label(frameinfo, font =('aerial', 30, 'bold'), fg='blue', bg='powder blue')
clock.pack(side=RIGHT)
lblinfo = Label(frameinfo, text = "Cloning Tool", font =('aerial', 40, 'bold'), fg='black', bg='powder blue').pack()

def tick():
    s =time.strftime('%d-%m-%y %H:%M:%S')
    clock.config(text=s)
    clock.after(200,tick)
tick()

butCapClone = Button(framebutton, text='Clone', borderwidth=5,width=20,height=2, font=9, command=showcapwindow).grid(row=0, padx=10, pady=20)
butexitClone = Button(framebutton, text='Exit', borderwidth=5,width=20,height=2, font=9, command=root.quit).grid(row=1, padx=10, pady=4)

modes = [('None','0'),('CAP','1'),('CAPTWO v1','2'),('CAPTWO v2','3'),]
radioclonetype = IntVar()
radioclonetype.set('0')

for text,mode in modes:
    Radiobutton(frameradio, text=text, variable=radioclonetype, value=mode, font=('aerial',15), bg='light yellow', fg='purple').pack(side=LEFT)

labelprojectcode = Label(frameinput, text = "Project code(3 Characters")
labelprojectcode.pack(side=TOP)
# inputprojectcode = Entry(frameinput, fg='black', font=('aerial',15,'bold')).grid(row=0,column=1)


root.mainloop()

框架會根據子窗口小部件的大小需求而擴展或收縮,因為有額外的空間。您的標簽超出了我的1980x1080分辨率,並且最后一幀的內容不再可見。 注釋掉root.resizable(0,0)看看會發生什么:

#root.resizable(0,0)

這似乎是因為pack工程相對於同級pack S和最后一個叫pack被賦予它要求同時還裝配給所有選項的空間最小pack秒。 例如,交換以下職位:

frameradio.pack(side=TOP, fill=BOTH, expand=YES)

與:

frameinput.pack(side=LEFT, fill=BOTH, expand=YES)

您將獲得幾乎全新的布局。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM