1、函數(shù)定義
鲅魚圈網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
①使用def關(guān)鍵字定義函數(shù)
②
def 函數(shù)名(參數(shù)1.參數(shù)2.參數(shù)3...):
"""文檔字符串,docstring,用來說明函數(shù)的作用"""
#函數(shù)體
return 表達(dá)式
注釋的作用:說明函數(shù)是做什么的,函數(shù)有什么功能。
③遇到冒號(hào)要縮進(jìn),冒號(hào)后面所有的縮進(jìn)的代碼塊構(gòu)成了函數(shù)體,描述了函數(shù)是做什么的,即函數(shù)的功能是什么。Python函數(shù)的本質(zhì)與數(shù)學(xué)中的函數(shù)的本質(zhì)是一致的。
2、函數(shù)調(diào)用
①函數(shù)必須先定義,才能調(diào)用,否則會(huì)報(bào)錯(cuò)。
②無參數(shù)時(shí)函數(shù)的調(diào)用:函數(shù)名(),有參數(shù)時(shí)函數(shù)的調(diào)用:函數(shù)名(參數(shù)1.參數(shù)2.……)
③不要在定義函數(shù)的時(shí)候在函數(shù)體里面調(diào)用本身,否則會(huì)出不來,陷入循環(huán)調(diào)用。
④函數(shù)需要調(diào)用函數(shù)體才會(huì)被執(zhí)行,單純的只是定義函數(shù)是不會(huì)被執(zhí)行的。
⑤Debug工具中Step into進(jìn)入到調(diào)用的函數(shù)里,Step Into My Code進(jìn)入到調(diào)用的模塊里函數(shù)。
輸入框是 Entry,應(yīng)用程序要取得用戶的信息,輸入框是必不可少的。
輸入框比較重要的一個(gè)函數(shù):
get:返回值即輸入框的內(nèi)容
比如e是一個(gè)輸入框,e['show']='*'就變成了密碼框
小例子:用戶登陸窗口,成功失敗均有返回
示例代碼
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
from Tkinter import *
root = Tk()
#按扭調(diào)用的函數(shù),
def reg():
User = e_user.get()
Pwd = e_pwd.get()
len_user = len(User)
len_pwd = len(Pwd)
if User=='111' and Pwd == '222':
l_msg['text']='登陸成功'
else:
l_msg['text']='用戶名或密碼錯(cuò)誤'
e_user.delete(0,len_user)
e_pwd.delete(0,len_pwd)
#第一行,用戶名標(biāo)簽及輸入框
l_user =Label(root,text='用戶名:')
l_user.grid(row=0,sticky=W)
e_user =Entry(root)
e_user.grid(row=0,column=1,sticky=E)
#第二行,密碼標(biāo)簽及輸入框
l_pwd = Label(root,text='密碼:')
l_pwd.grid(row=1,sticky=W)
e_pwd = Entry(root)
e_pwd['show']='*'
e_pwd.grid(row=1,column=1,sticky=E)
#第三行登陸按扭,command綁定事件
b_login = Button(root,text='登陸',command=reg)
b_login.grid(row=2,column=1,sticky=E)
#登陸是否成功提示
l_msg = Label(root,text='')
l_msg.grid(row=3)
root.mainloop()
效果圖:
成功登陸 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 登陸失敗
再來一個(gè)小例子吧:
功能,兩個(gè)復(fù)選框,被選中時(shí)下面已選中標(biāo)簽中有值,取消時(shí),已選中標(biāo)簽的消息沒有了
效果圖:
示例代碼:
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
from Tkinter import *
#定義一個(gè)root主窗口
root = Tk()
#定義兩個(gè)變量,用于判斷復(fù)選框狀態(tài)
box_1 = False
box_2 = False
#列表,用于存放選中內(nèi)容
List_Content = []
def click_c1():
global box_1
#復(fù)選框被選中,box_1置為True
box_1 = not box_1
if box_1:
List_Content.append('Windows')
l['text']=List_Content
else:
List_Content.remove('Windows')
l['text']=List_Content
def click_c2():
global box_2
box_2 = not box_2
if box_2:
List_Content.append('Linux')
l['text']=List_Content
else:
List_Content.remove('Linux')
l['text']=List_Content
#定義兩個(gè)復(fù)選框,并綁定相關(guān)事件
ck1 = Checkbutton(root,text='Windows',command=click_c1)
ck1.grid(row=0,column=1)
ck2 = Checkbutton(root,text='Linux',command=click_c2)
ck2.grid(row=1,column=1)
l_com = Label(root,text='已選中:')
l_com.grid(row=2,column=0)
l = Label(root,text='')
l.grid(row=2,column=1)
root.mainloop()
下邊這一系列方法用于與窗口管理器進(jìn)行交互。他們可以被 Tk(根窗口)進(jìn)行調(diào)用,同樣也適用于 Toplevel(頂級(jí)窗口)。
注:并非所有操作系統(tǒng)均完全支持下方所有方法的實(shí)現(xiàn)。
aspect(minNumer=None, minDenom=None, maxNumer=None, maxDenom=None)
-- 控制該窗口的寬高比(width:height)
-- 寬高比限制在:minNumer / minDenom ~ maxNumer / maxDenom
-- 如果忽略參數(shù),則返回一個(gè) 4 元組表示當(dāng)前的限制(如果有的話)
attributes(*args)
-- 設(shè)置和獲取窗口屬性
-- 如果你只給出選項(xiàng)名,將返回當(dāng)前窗口該選項(xiàng)的值
-- 注意:以下選項(xiàng)不支持關(guān)鍵字參數(shù),你需要在選項(xiàng)前添加橫杠(-)并用字符串的方式表示,用逗號(hào)(,)隔開選項(xiàng)和值。
-- 例如你希望設(shè)置窗口的透明度為 50%,你應(yīng)該使用 attribute("-alpha", 0.5) 代替 attribute(alpha=0.5)
-- 下方表格列舉了 args 可以使用各個(gè)選項(xiàng)的具體含義及用法:
選項(xiàng) 含義
alpha 1.(Windows,Mac)控制窗口的透明度
colormapwindows(*wlist)
-- 設(shè)置和獲取 WM_COLORMAP_WINDOWS 屬性
-- 該屬性僅支持 X 窗口系統(tǒng)的窗口管理器,其他系統(tǒng)均忽略
command(value=None)
-- 設(shè)置和獲取 WM_COMMAND 屬性
-- 該屬性僅支持 X 窗口系統(tǒng)的窗口管理器,其他系統(tǒng)均忽略
deiconify()
-- 顯示窗口
-- 默認(rèn)情況下新創(chuàng)建的窗口都會(huì)顯示在屏幕上,但使用 iconify() 或 withdraw() 方法可以在屏幕上移除窗口
focusmodel(model=None)
-- 設(shè)置和獲取焦點(diǎn)模式
frame()
-- 返回一個(gè)字符串表示當(dāng)前系統(tǒng)特征
-- 對(duì)于類 Unix 系統(tǒng),返回值是 X 窗口標(biāo)識(shí)符
-- 對(duì)于 Windows 系統(tǒng),返回值是 HWND 強(qiáng)制轉(zhuǎn)換為長(zhǎng)整形的結(jié)果
geometry(geometry=None)
-- 設(shè)置和獲取窗口的尺寸
-- geometry 參數(shù)的格式為:"%dx%d%+d%+d" % (width, height, xoffset, yoffset)
grid(baseWidth=None, baseHeight=None, widthInc=None, heightInc=None)
-- 通知窗口管理器該窗口將以網(wǎng)格的形式重新調(diào)整尺寸
-- baseWidth 和 baseHeight 指定 Tk_GeometryRequest 要求的網(wǎng)格單元數(shù)
-- widthInc 和 heightInc 指定網(wǎng)格單元的寬度和高度(像素)
group(window=None)
-- 將窗口添加到窗口群中
-- window 參數(shù)指定控制窗口群的主窗口
-- 如果忽略該參數(shù),將返回當(dāng)前窗口群的主窗口
iconbitmap(bitmap=None, default=None)
-- 設(shè)置和獲取窗口的圖標(biāo)
-- 例如 root.iconbitmap(bitmap="Python.ico")
-- default 參數(shù)可以用于指定由該窗口創(chuàng)建的子窗口的默認(rèn)圖標(biāo)
iconify()
-- 將窗口圖標(biāo)化(最小化)
-- 需要重新顯示窗口,使用 deiconify() 方法
-- 該方法會(huì)使得 state() 返回 "iconic"
iconmask(bitmap=None)
-- 設(shè)置和獲取位圖掩碼
iconname(newName=None)
-- 設(shè)置和獲取當(dāng)窗口圖標(biāo)化(最小化)時(shí)的圖標(biāo)名字
iconposition(x=None, y=None)
-- 設(shè)置和獲取當(dāng)窗口圖標(biāo)化(最小化)時(shí)的圖標(biāo)位置
iconwindow(pathName=None)
-- 設(shè)置和獲取當(dāng)窗口圖標(biāo)化(最小化)時(shí)的組件窗口
-- 該方法會(huì)使得 state() 返回 "icon"
maxsize(width=None, height=None)
-- 設(shè)置和獲取該窗口的最大尺寸
minsize(width=None, height=None)
-- 設(shè)置和獲取該窗口的最小尺寸
overrideredirect(boolean=None)
-- 如果參數(shù)為 True,該窗口忽略所有的小部件(也就是說該窗口將沒有傳統(tǒng)的標(biāo)題欄、邊框等部件)
positionfrom(who=None)
-- 指定窗口位置由“誰”決定
-- 如果 who 參數(shù)是 "user",窗口位置由用戶決定
-- 如果 who 參數(shù)是 "program",窗口位置由系統(tǒng)決定
protocol(name=None, func=None)
-- 將回調(diào)函數(shù) func 與相應(yīng)的規(guī)則 name 綁定
-- name 參數(shù)可以是 "WM_DELETE_WINDOW":窗口被關(guān)閉的時(shí)候
-- name 參數(shù)可以是 "WM_SAVE_YOURSELF":窗口被保存的時(shí)候
-- name 參數(shù)可以是 "WM_TAKE_FOCUS":窗口獲得焦點(diǎn)的時(shí)候
resizable(width=None, height=None)
-- 指定是否可以改變?cè)摯翱诘某叽?/p>
-- width 為 True 說明允許調(diào)整窗口的水平尺寸
-- height 為 True 說明允許調(diào)整窗口的垂直尺寸
sizefrom(who=None)
-- 指定窗口尺寸由“誰”決定
-- 如果 who 參數(shù)是 "user",窗口位置由用戶決定
-- 如果 who 參數(shù)是 "program",窗口位置由系統(tǒng)決定
state(newstate=None)
-- 設(shè)置和獲得當(dāng)前窗口的狀態(tài)
-- newstate 的值可以是 "normal","iconic"(見 iconify),"withdrawn"(見 withdraw),"icon"(見 iconwindow)和 "zoomed"(放大,Windows 特有)
title(string=None)
-- 設(shè)置窗口的標(biāo)題
transient(master=None)
-- 指定為 master 的臨時(shí)窗口
withdraw()
-- 將窗口從屏幕上移除(并沒有銷毀)
-- 需要重新顯示窗口,使用 deiconify() 方法
-- 該方法會(huì)使得 state() 返回 "withdrawn"
wm_aspect(minNumer=None, minDenom=None, maxNumer=None, maxDenom=None)
-- 見上方 aspect()
wm_attributes(*args)
-- 見上方 attributes()
wm_client(name=None)
-- 見上方 client()
wm_colormapwindows(*wlist)
-- 見上方 colormapwindows()
wm_command(value=None)
-- 見上方 command()
wm_deiconify()
-- 見上方 deiconify()
wm_focusmodel(model=None)
-- 見上方 focusmodel()
wm_frame()
-- 見上方 frame()
wm_geometry(geometry=None)
-- 見上方 geometry()
wm_grid(baseWidth=None, baseHeight=None, widthInc=None, heightInc=None)
-- 見上方 grid()
wm_group(window=None)
-- 見上方 group()
wm_iconbitmap(bitmap=None, default=None)
-- 見上方 iconbitmap()
wm_iconify()
-- 見上方 iconify()
wm_iconmask(bitmap=None)
-- 見上方 iconmask()
wm_iconname(newName=None)
-- 見上方 iconname()
wm_iconposition(x=None, y=None)
-- 見上方 iconposition()
wm_iconwindow(pathName=None)
-- 見上方 iconwindow()
wm_maxsize(width=None, height=None)
-- 見上方 maxsize()
wm_minsize(width=None, height=None)
-- 見上方 minsize()
wm_overrideredirect(boolean=None)
-- 見上方 overrideredirect()
wm_positionfrom(who=None)
-- 見上方 positionfrom()
wm_protocol(name=None, func=None)
-- 見上方 protocol()
wm_resizable(width=None, height=None)
-- 見上方 resizable()
wm_sizefrom(who=None)
-- 見上方 sizefrom()
wm_state(newstate=None)
-- 見上方 state()
wm_title(string=None)
-- 見上方 title()
wm_transient(master=None)
-- 見上方 transient()
wm_withdraw()
-- 見上方 withdraw()
方法/步驟
第一步,打開eclipse開發(fā)工具,新建python文件;導(dǎo)入tkinter需要的包,設(shè)置窗口標(biāo)題,如下圖所示:
請(qǐng)點(diǎn)擊輸入圖片描述
第二步,默認(rèn)的窗口很小,這里設(shè)置窗口的寬度和高度,400x300,如下圖所示:
請(qǐng)點(diǎn)擊輸入圖片描述
第三步,在窗口中添加一個(gè)Entry組件,設(shè)置show屬性為None,調(diào)用pack()方法添加到窗口中;執(zhí)行這個(gè)文件,彈出一個(gè)窗口,如下圖所示:
請(qǐng)點(diǎn)擊輸入圖片描述
請(qǐng)點(diǎn)擊輸入圖片描述
第四步,再次在窗口上添加一個(gè)Button按鈕,文本內(nèi)容為插入字符,設(shè)置寬度和高度,如下圖所示:
請(qǐng)點(diǎn)擊輸入圖片描述
第五步,添加按鈕點(diǎn)擊事件,定義事件函數(shù)appendStr;獲取Entry組件的值,賦值給Label(添加Label控件),結(jié)果出現(xiàn)了報(bào)錯(cuò),Label控件沒有insert屬性,如下圖所示:
請(qǐng)點(diǎn)擊輸入圖片描述
請(qǐng)點(diǎn)擊輸入圖片描述
第六步,將Label控件改為Text文本框,再次執(zhí)行這個(gè)文件;在Entry控件輸入字符串,點(diǎn)擊按鈕之后相應(yīng)的Text也會(huì)出現(xiàn)該字符串,如下圖所示:
請(qǐng)點(diǎn)擊輸入圖片描述
網(wǎng)站欄目:python函數(shù)調(diào)用Tk,python函數(shù)調(diào)用全局變量
當(dāng)前路徑:http://jinyejixie.com/article38/hsehsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站制作、云服務(wù)器、自適應(yīng)網(wǎng)站、商城網(wǎng)站、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)