最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中Tkinter布局管理grid的使用

 更新時間:2022年01月11日 15:17:57   作者:來自江南的你  
本文主要介紹了Python中Tkinter布局管理grid的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

pack、grid 和 place 均用于管理同在一個父組件下的所有組件的布局,其中:

pack 是按添加順序排列組件grid 是按行/列形式排列組件place 則允許程序員指定組件的大小和位置

何時使用 grid 管理器?

grid 管理器可以說是 Tkinter 這三個布局管理器中最靈活多變的。如果你只希望學(xué)習(xí)使用一個布局管理器,那么 grid 絕對是首選。當你在設(shè)計對話框的時候,使用 gird 尤其便捷。如果你此前一直在用 pack 構(gòu)造窗口布局,那么學(xué)習(xí)完 grid 你會悔恨當初為啥不早學(xué)它。使用一個 grid 就可以簡單的實現(xiàn)你用很多個框架和 pack 搭建起來的效果。

注意:不要在同一個父組件中混合使用 pack 和 grid,因為 Tkinter 會很認真地在那兒計算到底先使用那個布局管理器......以至于你等了半個小時,Tkinter 還在那兒糾結(jié)不出結(jié)果!

用法

使用 grid 排列組件,只需告訴它你想要將組件放置的位置(行/列,row 選項指定行,cloumn 選項指定列)。此外,你并不用提前指出網(wǎng)格(grid 分布給組件的位置稱為網(wǎng)格)的尺寸,因為管理器會自動計算。

import tkinter as tk
 
root = tk.Tk()
 
# column 默認值是 0
tk.Label(root, text="用戶名").grid(row=0)
tk.Label(root, text="密碼").grid(row=1)
 
tk.Entry(root).grid(row=0, column=1)
tk.Entry(root, show="*").grid(row=1, column=1)
 
root.mainloop()

默認情況下組件會居中顯示在對應(yīng)的網(wǎng)格里,你可以使用 sticky 選項來修改這一特性。該選項可以使用的值有 "e","w","s","n"(ewsn 分別表示東西南北,即上北下南左西右東)以及它們的組合。因此,我們可以通過 sticky = "w" 使得 Label 左對齊:

tk.Label(root, text="用戶名").grid(row=0, sticky="w")
tk.Label(root, text="密碼").grid(row=1, sticky="w")

有時候你可能需要用幾個網(wǎng)格來放置一個組件,可以做到嗎?當然可以,你只需要指定 rowspan 和 columnspan 就可以實現(xiàn)跨行和跨列的功能:

import tkinter as tk
 
root = tk.Tk()
 
# column 默認值是 0
tk.Label(root, text="用戶名").grid(row=0, sticky="w")
tk.Label(root, text="密碼").grid(row=1, sticky="w")
 
tk.Entry(root).grid(row=0, column=1)
tk.Entry(root, show="*").grid(row=1, column=1)
 
photo = tk.PhotoImage(file="logo.gif")
tk.Label(root, image=photo).grid(row=0, column=2, rowspan=2, padx=5, pady=5) #rowspan=2 跨兩行
 
tk.Button(text="提交", width=10).grid(row=2, columnspan=3, pady=5) #columnspan=3 跨三列
 
root.mainloop()

方法

注:下邊所有方法適用于所有組件

grid(**options)
-- 下方表格詳細列舉了各個選項的具體含義和用法:

選項含義
column1. 指定組件插入的列(0 表示第 1 列)
2. 默認值是 0
columnspan指定用多少列(跨列)顯示該組件
in_1. 將該組件放到該選項指定的組件中
2. 指定的組件必須是該組件的父組件
ipadx指定水平方向上的內(nèi)邊距
ipady指定垂直方向上的內(nèi)邊距
padx指定水平方向上的外邊距
pady指定垂直方向上的外邊距
row指定組件插入的行(0 表示第 1 行)
rowspan指定用多少行(跨行)顯示該組件
sticky1. 控制組件在 grid 分配的空間中的位置
2. 可以使用 "n", "e", "s", "w" 以及它們的組合來定位(ewsn代表東西南北,上北下南左西右東)
3. 使用加號(+)表示拉長填充,例如 "n" + "s" 表示將組件垂直拉長填充網(wǎng)格,"n" + "s" + "w" + "e" 表示填充整個網(wǎng)格
4. 不指定該值則居中顯示

grid_bbox(column=None, row=None, col2=None, row2=None)
-- 返回一個 4 元組描述該組件所在的限定矩形-- 如果指定 column 和 cow 參數(shù),則返回該位置(column, cow)的組件的限定矩形描述
-- 如果指定 4 個參數(shù),則返回從(column, cow)到(col2, row2)所有組件的限定矩形描述
-- 例如 grid_bbox(0, 0, 1, 1) 返回的是 4 個組件所在的限定矩形

grid_columnconfigure(index, **options)
-- 設(shè)置列的屬性
-- 注意:設(shè)置的是該組件所擁有的 grid 的列
-- 可以設(shè)置的選項及含義如下:

選項含義
minsize指定該列的最小寬度
pad指定該列中最大網(wǎng)格的水平邊距
weight1. 指定列與列之間的相對距離
2. 默認值是 0
3. 這個你比較難理解,小甲魚還是詳細解說下:初創(chuàng)建窗口的時候,grid 會自動根據(jù)組件的尺寸分配窗口的尺寸,當你拉伸窗口的尺寸時就會有空白顯示出來。這個選項正是指定列與列之間是否填充空白,默認是不填充的。另外,該選項的值是指定填充空白的倍數(shù),例如 weight = 2 的列會比 weight = 1 的列填充多一倍的空白。所以需要平均填充的話,只需要所有的列都設(shè)置 weight = 1 即可。

grid_configure(**options)
-- 跟 grid() 一樣

grid_forget()
-- 將組件從屏幕中“刪除”
-- 并沒有銷毀該組件,只是看不到了
-- 可以通過 grid 或其他布局管理器顯示已“刪除”的組件,但該組件所在網(wǎng)格的選項設(shè)置不會恢復(fù)

grid_info()
-- 以字典的形式返回當前 grid 的選項

grid_location(x, y)
-- 返回位于(或接近)給定坐標(x, y)的網(wǎng)格位置
-- 返回值是一個 2 元組表示網(wǎng)格對應(yīng)的(列,行)

grid_propagate(flag)
-- 如果開啟,父組件會自動調(diào)節(jié)尺寸以容納所有子組件
-- 默認值是開啟(flag = True)
-- 該方法僅適用于父組件

grid_remove()
-- 跟 grid_forget() 一樣,但恢復(fù)的時候會記住該組件所在網(wǎng)格的選項設(shè)置

grid_rowconfigure(index, **options)
-- 設(shè)置行的屬性
-- 注意:設(shè)置的是該組件所擁有的 grid 的行
-- 可以設(shè)置的選項及含義如下:

選項含義
minsize指定該行的最小高度
pad指定該列中最大網(wǎng)格的垂直邊距
weight1. 指定行與行之間的相對距離
2. 默認值是 0
3. 這個你比較難理解,不懂可以參考上邊 grid_columnconfigure() 的詳細解釋

grid_size()
-- 返回該組件所擁有的 grid 的尺寸
-- 返回值是一個 2 元組,表示(列, 行)分別的網(wǎng)格數(shù)

grid_slaves(row=None, column=None)
-- 以列表的形式返回該組件的所有子組件
-- 該方法僅適用于父組件

到此這篇關(guān)于Python中Tkinter布局管理grid的使用的文章就介紹到這了,更多相關(guān)Python Tkinter grid內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python解決pip?install?numpy過慢問題的幾種方法

    Python解決pip?install?numpy過慢問題的幾種方法

    在進行Python科學(xué)計算、數(shù)據(jù)分析或機器學(xué)習(xí)時,numpy是最基礎(chǔ)且最常用的庫之一,然而,許多用戶在安裝numpy時,可能會遇到下載速度極慢甚至失敗的情況,本文將從問題分析、解決方案、優(yōu)化建議等多個角度,詳細介紹pip?install?numpy過慢問題的解決,需要的朋友可以參考下
    2025-03-03
  • Django在視圖中使用表單并和數(shù)據(jù)庫進行數(shù)據(jù)交互的實現(xiàn)

    Django在視圖中使用表單并和數(shù)據(jù)庫進行數(shù)據(jù)交互的實現(xiàn)

    本文主要介紹了Django在視圖中使用表單并和數(shù)據(jù)庫進行數(shù)據(jù)交互,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Python中讀取文件名中的數(shù)字的實例詳解

    Python中讀取文件名中的數(shù)字的實例詳解

    在本篇文章里小編給大家整理了一篇關(guān)于Python中讀取文件名中的數(shù)字的實例詳解內(nèi)容,有興趣的朋友們可以參考下。
    2020-12-12
  • 利用python求積分的實例

    利用python求積分的實例

    今天小編就為大家分享一篇利用python求積分的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 詳解Python中的三器一閉

    詳解Python中的三器一閉

    這篇文章主要介紹了詳解Python中的三器一閉,Python中的三器一閉是指迭代器、裝飾器、生成器和閉包,需要的朋友可以參考下
    2023-05-05
  • Ubuntu安裝Jupyter Notebook教程

    Ubuntu安裝Jupyter Notebook教程

    這篇文章主要為大家詳細介紹了Ubuntu安裝Jupyter Notebook教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • python定間隔取點(np.linspace)的實現(xiàn)

    python定間隔取點(np.linspace)的實現(xiàn)

    今天小編就為大家分享一篇python定間隔取點(np.linspace)的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • anaconda的安裝和配置環(huán)境及導(dǎo)入pycharm的方法

    anaconda的安裝和配置環(huán)境及導(dǎo)入pycharm的方法

    這篇文章主要介紹了anaconda的安裝和配置環(huán)境及導(dǎo)入pycharm的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 利用Python如何實現(xiàn)K-means聚類算法

    利用Python如何實現(xiàn)K-means聚類算法

    聚類算法有很多種(幾十種),K-Means是聚類算法中的最常用的一種,算法最大的特點是簡單,好理解,運算速度快,下面這篇文章主要給大家介紹了關(guān)于利用Python如何實現(xiàn)K-means聚類算法的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • python二叉樹的實現(xiàn)實例

    python二叉樹的實現(xiàn)實例

    這篇文章主要介紹了python二叉樹的實現(xiàn)實例,大家參考使用吧
    2013-11-11

最新評論

望江县| 咸阳市| 察雅县| 沙河市| 永福县| 宾川县| 杂多县| 武山县| 额济纳旗| 盱眙县| 驻马店市| 肥东县| 通道| 望谟县| 霍山县| 淳化县| 涟水县| 广东省| 高雄县| 大石桥市| 华蓥市| 保定市| 闽侯县| 拉孜县| 增城市| 自治县| 剑阁县| 铜陵市| 天峻县| 平和县| 奉节县| 文水县| 克什克腾旗| 阿合奇县| 平定县| 海盐县| 响水县| 河池市| 普陀区| 辰溪县| 嘉定区|