輸入框是 Entry,應(yīng)用程序要取得用戶的信息,輸入框是必不可少的。
創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,提供成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);可快速的進行網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,是專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
輸入框比較重要的一個函數(shù):
get:返回值即輸入框的內(nèi)容
比如e是一個輸入框,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']='用戶名或密碼錯誤'
e_user.delete(0,len_user)
e_pwd.delete(0,len_pwd)
#第一行,用戶名標簽及輸入框
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)
#第二行,密碼標簽及輸入框
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()
效果圖:
成功登陸 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 登陸失敗
再來一個小例子吧:
功能,兩個復(fù)選框,被選中時下面已選中標簽中有值,取消時,已選中標簽的消息沒有了
效果圖:
示例代碼:
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
from Tkinter import *
#定義一個root主窗口
root = Tk()
#定義兩個變量,用于判斷復(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
#定義兩個復(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()
思路是對的,只不過你沒調(diào)用更新函數(shù),見下面標注。
#?-*-?coding:?gb2312?-*-
import?time
from?Tkinter?import?*
def?run():
while?True:
txt.insert(END,'...')
txt.update()#我指的是加這句代碼。
#下面兩句,回復(fù)顯示后對不齊,請注意,與上面兩句平行
print??'...'#這句沒什么用,輸出到控制臺了,和Tk沒關(guān)系
time.sleep(10)
root?=?Tk()
txt?=?Text(root)
txt.pack()
Button(root,text='Run',command?=?run).pack()
root.mainloop()
另外,介意用類封裝一下更好管理。
代碼見下:
#?-*-?coding:?gb2312?-*-
import?time
from?Tkinter?import?*
class?Display:
def?__init__(self):
self.root?=?Tk()
self.text?=?Text(self.root)
self.text.pack()
self.butt?=?Button(self.root,text='Run',command?=?self.run)
self.butt.pack()
def?run(self):
while?True:
self.text.insert(END,?'...')
self.root.update()#更新以后才能看到變化
time.sleep(1)#這里為了快點看到效果,改為了1S輸出一次
if?__name__?==?'__main__':
D?=?Display()
mainloop()
以上代碼均已在python2.5下運行。
下邊這一系列方法用于與窗口管理器進行交互。他們可以被 Tk(根窗口)進行調(diào)用,同樣也適用于 Toplevel(頂級窗口)。
注:并非所有操作系統(tǒng)均完全支持下方所有方法的實現(xiàn)。
aspect(minNumer=None, minDenom=None, maxNumer=None, maxDenom=None)
-- 控制該窗口的寬高比(width:height)
-- 寬高比限制在:minNumer / minDenom ~ maxNumer / maxDenom
-- 如果忽略參數(shù),則返回一個 4 元組表示當(dāng)前的限制(如果有的話)
attributes(*args)
-- 設(shè)置和獲取窗口屬性
-- 如果你只給出選項名,將返回當(dāng)前窗口該選項的值
-- 注意:以下選項不支持關(guān)鍵字參數(shù),你需要在選項前添加橫杠(-)并用字符串的方式表示,用逗號(,)隔開選項和值。
-- 例如你希望設(shè)置窗口的透明度為 50%,你應(yīng)該使用 attribute("-alpha", 0.5) 代替 attribute(alpha=0.5)
-- 下方表格列舉了 args 可以使用各個選項的具體含義及用法:
選項 含義
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()
-- 顯示窗口
-- 默認情況下新創(chuàng)建的窗口都會顯示在屏幕上,但使用 iconify() 或 withdraw() 方法可以在屏幕上移除窗口
focusmodel(model=None)
-- 設(shè)置和獲取焦點模式
frame()
-- 返回一個字符串表示當(dāng)前系統(tǒng)特征
-- 對于類 Unix 系統(tǒng),返回值是 X 窗口標識符
-- 對于 Windows 系統(tǒng),返回值是 HWND 強制轉(zhuǎn)換為長整形的結(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è)置和獲取窗口的圖標
-- 例如 root.iconbitmap(bitmap="Python.ico")
-- default 參數(shù)可以用于指定由該窗口創(chuàng)建的子窗口的默認圖標
iconify()
-- 將窗口圖標化(最小化)
-- 需要重新顯示窗口,使用 deiconify() 方法
-- 該方法會使得 state() 返回 "iconic"
iconmask(bitmap=None)
-- 設(shè)置和獲取位圖掩碼
iconname(newName=None)
-- 設(shè)置和獲取當(dāng)窗口圖標化(最小化)時的圖標名字
iconposition(x=None, y=None)
-- 設(shè)置和獲取當(dāng)窗口圖標化(最小化)時的圖標位置
iconwindow(pathName=None)
-- 設(shè)置和獲取當(dāng)窗口圖標化(最小化)時的組件窗口
-- 該方法會使得 state() 返回 "icon"
maxsize(width=None, height=None)
-- 設(shè)置和獲取該窗口的最大尺寸
minsize(width=None, height=None)
-- 設(shè)置和獲取該窗口的最小尺寸
overrideredirect(boolean=None)
-- 如果參數(shù)為 True,該窗口忽略所有的小部件(也就是說該窗口將沒有傳統(tǒng)的標題欄、邊框等部件)
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)閉的時候
-- name 參數(shù)可以是 "WM_SAVE_YOURSELF":窗口被保存的時候
-- name 參數(shù)可以是 "WM_TAKE_FOCUS":窗口獲得焦點的時候
resizable(width=None, height=None)
-- 指定是否可以改變該窗口的尺寸
-- 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è)置窗口的標題
transient(master=None)
-- 指定為 master 的臨時窗口
withdraw()
-- 將窗口從屏幕上移除(并沒有銷毀)
-- 需要重新顯示窗口,使用 deiconify() 方法
-- 該方法會使得 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()