• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Python的GUI編程之 Pack、Place、Grid 的區別

    標簽: Python的GUI編程之Pack、Place、Grid的區

               ****Python的GUI編程之 Pack、Place、Grid  的區別****
    

    簡介:

    本文講述如何使用 tkinter 的布局管理 (被稱作 layout managers 或 geometry managers). tkinter 有三種布局管理方式:
    · pack
    · grid
    · place

    注意這三種布局管理在同一個 master window 里一定不可以混用! 布局管理有以下功能:
    · 將控件放置在屏幕上,包括控件的位置及控件的大小
    · 將控件注冊到本地窗口系統中
    · 管理控件在屏幕上的顯示

    雖然控件自己也可以指定大小和對齊方式等信息, 但最終的控件大小及位置還是由布局管理決定的.

    Pack 布局管理

    pack 是三種布局管理中最常用的. 另外兩種布局需要精確指定控件具體的顯示位置, 而 pack 布局可以指定相對位置, 精確的位置會由 pack 系統自動完成. 這也使得 pack 布局沒有另外兩種布局方式靈活. 所以 pack 是簡單應用的首選布局
    fill 控件填充方式
    這里寫圖片描述

    設置組件之間的間隙大小
    ipadx,ipady設置內部間隙
    padx,pady設置外部間隙
    side 順次放置控件

    這里寫圖片描述

    Place 布局管理

    Place 布局管理可以顯式的指定控件的絕對位置或相對于其他控件的位置. 要使用 Place 布局, 調用相應控件的 place() 方法就可以了. 所有 tkinter 的標準控件都可以調用 place()
    方法.

    下面是一個使用 Place 布局的例子: 為 Label 控件設置隨機的背景色, 然后計算各個 Label 的背景色的亮度(灰度值), 如果其亮度小于 120, 則將其前景色(文字顏色, fg屬性)設置為白色, 否則設為黑色. 這樣做是為了避免使背景色和前景色過于接近而導致文字不易閱讀.
    這里寫圖片描述

    這里寫圖片描述

    Grid 布局管理

    Pack 作為首選的布局管理方式,其運作方式并不是特別易于理解. 已經由 Pack 布局完成的設計也很難做出改變. Grid 布局在1996年作為另一種可供選擇的布局方式被引入. Grid 布局方式易學易用, 但似乎大家還是習慣用 Pack.
    Grid 在很多場景下是最好用的布局方式.相比而言, Pack 布局在控制細節方面有些力不從心. Place 布局雖然可以完全控制控件位置, 但這也導致使用 Place 會比其他兩種布局方式更加復雜.
    Grid 把控件位置作為一個二維表結構來維護,即按照行列的方式排列控件: 控件位置由其所在的行號和列號決定. 行號相同而列號不同的幾個控件會被彼此上下排列; 列號相同而行號不同的幾個控件會被彼此左右排列.
    使用 Grid 布局的過程就是為各個控件指定行號和列號的過程. 不需要為每個格子指定大小, Grid 布局會自動設置一個合適的大小.

    這里寫圖片描述

    來源:http://blog.csdn.net/liuxu0703/article/details/54428405

    版權聲明:本文為weixin_39076347原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/weixin_39076347/article/details/82258836

    智能推薦

    tkinter入門(9)--布局管理器(pack,grid,place)

    tkinter入門(9)--布局管理器(pack,grid,place) 1、布局管理器 2、pack方法,將一個組件放入另一個組件中,完全填充 3、pack方法(縱向填充,橫向填充) 4、grid組件使用,模擬登陸界面 5、place組件使用 6、place組件 ,組合覆蓋顯示 1、布局管理器   布局管理器(pack,grid,place,均用于管理統一父組件下的所有組件的...

    Java的GUI編程之AWT、Swing

    文章目錄 常用的GUI的組件 1、簡介 2、AWT(較為基礎的GUI框架) 2.1、Awt介紹 2.2、組件和容器 2.3、面板Panel 2.4、布局管理器 AWT布局小結: 2.5、事件監聽 2.5、輸入框 TextField 監聽 2.6、簡易計算器,組合+內部類回顧復習! 2.7、畫筆 2.8、鼠標監聽 2.9、窗口監聽 2.10、鍵盤監聽 3、Swing 3.1、窗口、面板 3.2、彈窗...

    python Tkinter LabelFrame+grid+place 綜合應用

    先預覽效果 應用到的控件: LabelFrame labelframe 是一個簡單的容器控件。常用與復雜的窗口布局。 grid() 網格; place() 位置; Frame 框架控件;在屏幕上顯示一個矩形區域,多用來作為容器 Label 標簽控件;可以顯示文本和位圖 Listbox 列表框控件;在Listbox窗口小部件是用來顯示一個字符串列表給用戶 Radiobutton 單選按鈕控件;顯示一...

    tkinter視窗開發之部件三種放置方式pack/grid/place(14)

    tkinter視窗開發之部件三種放置方式pack/grid/place 1.The Grid Geometry Manager 以上的代碼就是創建一個三行三列的表格,其實 grid 就是用表格的形式定位的。這里的參數 row 為行,colum 為列,padx 就是單元格左右間距,pady 就是單元格上下間距,ipadx是單元格內部元素與單元格的左右間距,ipady是單元格內部元素與單元格的上下間距...

    基于python的GUI編程

    文章目錄 前言 一、 tkinter和Python編程 二、tkinter的使用 創建一個GUI應用程序需要以下5個主要步驟。 三、tkinter常用控件 1,窗口 2,窗口也稱為框架(Frame),是屏幕上的一塊矩形區域,多用來作為容器布局窗體。 3,Label控件 4,Button控件 5,Entry控件 6,Radiobutton和Checkbutton控件 7,Menu控件 四、事件綁定 ...

    猜你喜歡

    tensorflow feature_column 合集

    前言 feature_column 輸入輸出類型,用一個數據集給出demo feature_column 接estimator feature_column 接Keras 1. feature_column的輸入輸出類型 1.1 輸入輸出類型 feature_column輸入可以是原始特征的列名,或者是feature_column。初上手感覺feature_column設計的有點奇怪,不過熟悉了邏...

    2020年 HackerEarth 調查:Go 語言成為最受歡迎的語言 開發者最關心職業發展路徑...

    近日 HackerEarth 發布了 2020 年開發者調查報告,有來自 76 個國家和地區的 16,000 多位開發者參與其中。 HackerEarth 聯合創始人兼首席執行官 Sachin Gupta 在報告中提到:「今天技術開發者人才的短缺達到了自 2008 年以來的最高值,招聘者想要得到開發者們的青睞變得難上加難。」 這個觀點似乎和我們的普遍想法不同,在中國的互聯網上總是有「開發崗位」已經...

    問題解決:嘗試解決maven依賴找不到的n種姿勢

    問題場景 問題環境 問題原因 解決方案 結果 總結 參考鏈接 吐槽 隨緣求贊   問題場景 公司的原倉庫出了問題,需要更換新的倉庫。故給了一個新的倉庫地址。但是奇葩的是,更換之后,就出問題了。比如原本有A-0.0.1-SNAPSHOT.jar,在私服上面也有這個版本的jar包,但是就是沒辦法找到,一直提示該jar的該版本找不到。 問題環境 軟件 版本 maven 3.2.3 Intell...

    Android底部Tab菜單欄(FragmentTabHost+ViewPager+Fragment)

    Android開發中使用底部菜單欄的頻次非常高,主要的實現手段有以下: TabWidget 隱藏TabWidget,使用RadioGroup和RadioButton FragmentTabHost 5.0以后的TabLayout 最近推出的 Bottom navigation 今天帶大家來探索下如何用Fragment+FragmentTabHost++ViewPager 實現底部菜單欄 目錄 目錄...

    Android開發--Http操作介紹(二)

    通常與服務器建立連接有兩種方法,Get和Post方法,下面就對這兩個方法進行介紹。 無論是使用HttpGet,還是使用HttpPost,都必須通過如下3步來訪問HTTP資源。 1.創建HttpGet或HttpPost對象,將要請求的URL通過構造方法傳入HttpGet或HttpPost對象。 2.使用DefaultHttpClient類的execute方法發送HTTPGET或HTTPPOST請求,...

    精品国产乱码久久久久久蜜桃不卡