真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Tkinter邊框控件Frame怎么用

這篇文章主要講解了“Tkinter邊框控件Frame怎么用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Tkinter邊框控件Frame怎么用”吧!

創(chuàng)新互聯(lián)主營洮南網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,App定制開發(fā),洮南h5微信平臺小程序開發(fā)搭建,洮南網(wǎng)站營銷推廣歡迎洮南等地區(qū)企業(yè)咨詢

在眾多的控件中,邊框控件Frame可以說是一個比較特別的一個。之所以這么說是因?yàn)镕rame控件本身并不會被顯示,功能只是為了將其他控件組織為一個整體以便進(jìn)行布局管理。

上面的視頻是之前說明Text控件時使用的。當(dāng)時使用的是grid布局,為了保證擺放足夠數(shù)量的按鈕,將Text控件的columnspan設(shè)置為8:

# create text widget.text = Text(root,            undo=True,            background="#a0ffa0", foreground="#000000",            height = 10)text.grid(row=2 , column=0, columnspan=8)

但是這樣做有一個不好的地方,就是Text控件的布局會受到按鈕數(shù)量的影響,這不太好。本文使用Frame控件來解決這個問題。

首先構(gòu)建包含第一行按鈕的Frame控件:

edit_frame = Frame(root)
# change state function.def change_state():    state = text.cget('state')    if state=='disabled':        text.config(state='normal')        text.config(background='#a0ffa0')    else:        text.config(state='disabled')        text.config(background='#efefef')# change state button.eb = Button(edit_frame,text="Enable", width=8, command=change_state)eb.grid(row=0, column=0, sticky=E+W)
# delete selection.def delete_selection():    try:        sel_from = text.index(SEL_FIRST)        sel_to = text.index(SEL_LAST)        # delete the selection.        text.delete(sel_from, sel_to)    except TclError:        pass
# delete selection button.db = Button(edit_frame,text="Delete", width = 8, command=delete_selection)db.grid(row=0, column=1, sticky=E+W)
# undo buttonundo = Button(edit_frame, text='Undo', width = 8, command=lambda:text.edit_undo())undo.grid(row=0, column = 2, sticky=E+W)
#redo buttonredo = Button(edit_frame, text='Redo', width = 8, command=lambda:text.edit_redo())redo.grid(row=0, column = 3, sticky=E+W)
edit_frame.grid(row=0, column=0, sticky=W)

代碼比較長,但是大部分內(nèi)容都和Text控件一文中的內(nèi)容相同,不同的只有兩點(diǎn):

  1. 這點(diǎn)代碼的首尾分別增加了構(gòu)建edit_frame控件和使用grid方法對該控件進(jìn)行布局的代碼。

  2. 所有按鈕的父控件都從root改為edit_frame。

接下來的格式按鈕也以同樣的方式處理:

format_frame = Frame(root)
# create fontsfonts = [    Font(family='SimHei', size=20, weight=BOLD),    Font(family='SimHei', size=16),    Font(family='SimSun', size=12, weight=BOLD),    Font(family='SimSun', size=12)    ]
# delete selection.def format(index):    tag_name = 'Format' + str(index)    try:        sel_from = text.index(SEL_FIRST)        sel_to = text.index(SEL_LAST)        for name in text.tag_names():            text.tag_remove(name, sel_from, sel_to)        text.tag_add(tag_name, sel_from, sel_to)        # set format at first time.        range_count = len(text.tag_ranges(tag_name))        if range_count == 2:            text.tag_config(tag_name, font=fonts[index])    except TclError:        pass
# delete selection button.for i in range(0, 4):    fb = Button(format_frame,                text="Format" + str(i),                width = 8,                command=lambda v=i : format(v))    fb.grid(row=1, column=i, sticky=E+W)
format_frame.grid(row=1, column=0, sticky=W)

使用Frame控件之后,在進(jìn)行root窗口布局時,四個編輯按鈕和四個格式按鈕分別作為兩個整體參加,因此生成Text控件時就不再需要考慮按鈕的個數(shù)了:

# create text widget.text = Text(root,            undo=True,            background="#a0ffa0", foreground="#000000",            height = 10)text.grid(row=2 , column=0)

感謝各位的閱讀,以上就是“Tkinter邊框控件Frame怎么用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Tkinter邊框控件Frame怎么用這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!


網(wǎng)站標(biāo)題:Tkinter邊框控件Frame怎么用
本文網(wǎng)址:http://weahome.cn/article/igecgd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部