簡體   English   中英

Python Tkinter框架畫布,小部件條目大小調整

[英]Python tkinter frame canvas, widget Entry resize

我有問題。 我正在使用tkinter和python 2.7。 調整窗口大小后如何更改窗口小部件的長度? 我有兩個小部件:

條目1(列= 0)和條目2(列= 1)

Entry1具有固定的寬度。 Entry2應該填充其余的寬度。 不幸的是,它不起作用。

有什么辦法嗎?

提前謝謝了。

碼:

from Tkinter import *
import ttk

root = Tk()

root.grid_columnconfigure(0, weight=1)
root.grid_rowconfigure(0, weight=1)

notebook = ttk.Notebook(root)
tab = Frame(notebook)
notebook.add(tab, text = "Tab 1")
notebook.grid(row=0,column=0, sticky="NSEW")

tab.grid_columnconfigure(0, weight =1)
tab.grid_rowconfigure(0, weight=1)

canvas_tab = Canvas(tab, width=500, height=100)
scroll_tab = Scrollbar(tab, command = canvas_tab.yview)

canvas_tab.config(yscrollcommand=scroll_tab.set)
scroll_tab.grid(row=0, column = 1, sticky = "NSE")

canvas_tab.grid(row=0, column = 0, sticky = "NSEW")
canvas_tab.grid_columnconfigure(0, weight=1)

frame = Frame(canvas_tab)
frame.grid_columnconfigure(1, weight=1)

Entry1 = Entry(frame, text = "", width=20, justify = CENTER)
Entry1.grid(row = 0, column = 0)
Entry1.insert(0, 'Entry 1')

Entry2 = Entry(frame, text = "", justify = CENTER)
Entry2.grid(row = 0, column = 1, sticky = "NSEW")
Entry2.insert(0, 'Entry 2')

def configure(event):
    canvas_tab.itemconfig(root, width=event.width)

canvas_tab.create_window((0,0), anchor=NW, window=frame)
frame.update_idletasks()
canvas_tab.config(scrollregion = frame.bbox("all"))
canvas_tab.bind('<Configure>', configure)
root.mainloop()

屏幕

當我們使用“ place”而不是“ grid”時,可以使用相對高度和相對寬度參數來完成。

這有效:

Entry2=Entry(root,width=10)
Entry2.place(relheight=.2,relwidth=.45,relx=.5,rely=.28)
Entry2.insert(0, 'Entry 2')

地方通常被認為是非常乏味的。 (您必須手動更改relx並依靠參數來固定其相對位置。)

暫無
暫無

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

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