【python入門級教程】Python GUI界面教學(02)
標簽: python
鴿子回來了!
文章目錄
一、學習內容。
學習Button控件,控件的bind函數。
二、開始學習。
1.導入庫:
class tk:
from tkinter import Tk,Button
2.新建常規窗口。
class tk:
from tkinter import Tk,Button
root=tk.Tk()
root.title('Tkinter Button')
root.mainloop()#循環窗口
3.使用Button控件。
class tk:
from tkinter import Tk,Button
root=tk.Tk()
root.title('Tkinter Button')
#我們只需要使用tk里的Button就可以了
tk.Button(master=root,text="MyButtom").pack()#調用Button控件,并使用pack方法在root窗口上布局,顯示文本為text的值
root.mainloop()#循環窗口
如果像這樣就OK:
當我們點擊按鈕的時候,什么事情都不會發生,因為我們沒有設置點擊后觸發的事件。
我們可以使用command選項來設置觸發的事件。
class tk:
from tkinter import Tk,Button
def print_button():
print('Hello world!')
root=tk.Tk()
root.title('Tkinter Button')
#我們只需要使用tk里的Button就可以了
tk.Button(master=root,text="MyButtom",command=print_button).pack()#調用Button控件,并使用pack方法在root窗口上布局,顯示文本為text的值
root.mainloop()#循環窗口
具體效果是這樣的:
可以看到,當我們點擊按鈕后,Python就會在控制臺輸出"Hello world!"。
如果你想要讓按鈕傳入參數,可以使用lambda方法,例如:
tk.Button(root,text='Click me',command=lambda :myfunc('參數'))
4.config方法。
config方法是tkinter許多控件的一個方法,它顧名思義,就是用來修改控件參數的,例如我們想讓按鈕點擊后改變上面的文本,就要用到它了。
#要更改按鈕參數的話必須賦值一個變量
Button=tk.Button(root,text='Start',commmand=lambda v=0:Button.config(text='Func'))#v=0是為了防止BUG,可以嘗試去掉
Button.pack()#如果pack在上一行末尾寫的話那么將會返回None值,就是什么函數也用不了,就是None
也可以這樣改:
Button['text']='Like Dict'
但是這種方法不能用在command參數哪里,Python會報錯(SyntaxError)。
5.Button的選項(option)。
選項 | 功能 |
---|---|
background | 設置背景顏色,可以是顏色單詞也可以是16進制數‘,"bg"是它的縮寫。 |
foreground | 設置前景色,可以是顏色單詞也可以是16進制數‘,"fg"是它的縮寫。 |
relief | 設置邊框樣式,例如"flat",“groove”,“ridge”,這些英文在Tkinter中有專門的變量,例如groove就是tk.GROOVE,在傳參時可以寫成relief=tk.GROOVE。 |
font | 字體,提供一個元組,如() |
bd | 邊框像素,默認是2. |
activeforeground | 鼠標按下時,按鈕的前景色,值可以是顏色單詞也可以是16進制數。 |
activebackground | 鼠標按下時,按鈕的背景色,值可以是顏色單詞也可以是16進制數。 |
command | 按下時執行的函數。 |
height | 按鈕的高度,默認為text值的行數。 |
width | 按鈕的長度,默認為text最長的一行。 |
highlightcolor | 高亮的顏色。 |
image | 顯示圖片,提供PhotoImage對象。 |
justify | 對齊方式,有"center",“left”,“right”,默認是"center"。 |
padx | 設置x軸方向的內邊距。 |
pady | 設置y軸方向的內邊距。 |
state | 設置按鈕狀態,如"normal"、“disabled”。 |
underline | 設置第幾個字符下面有下劃線。 |
wraplength | 限制每行顯示的文本數量。 |
anchor | 錨選項,控制文本的位置,默認為中心。 |
6.Button的常用方法。
函數名 | 用處 |
---|---|
deselect() | 取消單選按鈕選中狀態。 |
flash() | 在**狀態顏色和正常顏色之間閃爍幾次單選按鈕,但保持它開始時的狀態。 |
deselect() | 取消單選按鈕選中狀態 |
invoke() | 可以調用此方法來獲得與用戶單擊單選按鈕以更改其狀態時發生的操作相同的操作。 |
select() | 設置單選按鈕為選中。 |
7.綁定事件。
我們可以為控件綁定事件,使用控件的bind方法綁定,事件描述請點擊這。
例如:
class tk:
from tkinter import Tk,Button
def do(event):
print(event)
root=tk.Tk()
root.title('Window')
Button=tk.Button(root,text='MyButton')
Button.pack()
Button.bind('<Escape>',do)#如果不傳參數的話就使用lambda:"lambda v=0:func()",它默認會傳一個參數
root.mainloop()
這樣就OK了,bind方法用于綁定事件,當焦點在Button這個控件時,按下Esc鍵時,就會執行我們綁定的事件了。
三、尾聲。
下次我們將會學習Entry、Text控件、轉移焦點的函數,就是不知道要等到何年何月才更新。
智能推薦
【Qt5學習筆記】使用ui界面編一個入門級的小項目(保姆級教程,多圖警告)
前言 我發現自己之前可能是有點走偏了,花了兩天時間看書幾乎一無所獲,書上都是代碼實現,還沒有相應的注釋… 今天我用ui設計師界面來進行編程,寫一個小界面。 界面功能 1.計算加法; 2.可以彈窗; 3.使用布局,美化界面; 4.退出按鈕; 界面預覽 實現 1.建立一個Qt Widgets Application 可以參考QT5項目創建教程但要記得基類改為:mainwindow 2.添...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
猜你喜歡
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...
統計學習方法 - 樸素貝葉斯
引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...
styled-components —— React 中的 CSS 最佳實踐
https://zhuanlan.zhihu.com/p/29344146 Styled-components 是目前 React 樣式方案中最受關注的一種,它既具備了 css-in-js 的模塊化與參數化優點,又完全使用CSS的書寫習慣,不會引起額外的學習成本。本文是 styled-components 作者之一 Max Stoiber 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...