共場(chǎng)所限時(shí)免費(fèi)停車政策出臺(tái)后受到廣泛好評(píng),大部分市民按照相關(guān)規(guī)定積極配合,但仍有小部分人存在超時(shí)停車、亂停亂放、車身超出停車位、占據(jù)多個(gè)車位等違法行為。8月11日,記者走訪城區(qū)多個(gè)路段,發(fā)現(xiàn)交警部門對(duì)存在超時(shí)停車等違法行為的個(gè)別車主張貼了交通違法提醒單,要求其到轄區(qū)中隊(duì)處理。
探訪:上午10時(shí)仍有車停在限免車位上
8月11日上午,記者來(lái)到濰城區(qū)怡園路與北宮西街路口北側(cè),怡園路兩側(cè)施劃了不少全天免費(fèi)停車位,空閑停車位不少,卻有機(jī)動(dòng)車存在亂停亂放等交通違法行為。在怡園路西側(cè),一輛白色轎車車頭向北逆向停放,相鄰一個(gè)全免車位上,有一輛黑色轎車斜插進(jìn)停車位,影響了非機(jī)動(dòng)車的正常通行。
背街小巷由于道路狹窄,大部分施劃的是限免停車位。當(dāng)天上午10時(shí)許,記者來(lái)到奎文區(qū)西虞巷看到,此處車流量、人流量很大,路邊的幾十個(gè)限免停車位上停放了不少車輛,而一旁的提示牌上標(biāo)明了“限時(shí)免費(fèi)停車泊位19:00至次日7:30”。
記者走訪城區(qū)各大醫(yī)院、景點(diǎn)、主次干道和商圈發(fā)現(xiàn),大部分市民都能按規(guī)定停車,但也有少數(shù)車主存在超時(shí)停車、亂停亂放、車身超出停車位、占據(jù)多個(gè)車位、不按指示方向停車等交通違法行為。在志愿者的引導(dǎo)下,大部分違法車主也能及時(shí)糾正其違法行為。
對(duì)于此類在“小藍(lán)框”上影響交通秩序的交通違法行為,交警部門已開(kāi)始張貼交通違法提醒單,通知車主前往轄區(qū)中隊(duì)依法接受處理。
市民:支持依法處罰,車主更應(yīng)該自覺(jué)
“政府給我們方便,不是讓我們隨便。”家住奎文區(qū)寶鼎花園小區(qū)的孫先生表示,公共場(chǎng)所限時(shí)免費(fèi)停車政策出臺(tái)后,自己晚上將車停放在小區(qū)附近背街小巷的限免停車位上,白天開(kāi)車上班,出行十分方便。但他發(fā)現(xiàn)在非免費(fèi)停車時(shí)段,仍有部分車主將車停在限免停車位上。對(duì)于這種超時(shí)停車的行為,他覺(jué)得應(yīng)該依法處罰。
家住高新區(qū)北海花園小區(qū)的韓女士也表示,政府推出了便民舉措,大家更應(yīng)該遵守規(guī)則,對(duì)于違反交通法規(guī)的就要及時(shí)查處。看到交警部門開(kāi)始對(duì)“小藍(lán)框”上的交通違法行為貼罰單,她對(duì)此予以支持,而車主們更應(yīng)該在享受便利的同時(shí),自覺(jué)遵守相關(guān)規(guī)定。
“現(xiàn)在‘小藍(lán)框’已經(jīng)推行很長(zhǎng)時(shí)間了,再有亂停亂放或超時(shí)停放的情況就屬于個(gè)人素質(zhì)問(wèn)題了。”家住濰城區(qū)三友翡翠城小區(qū)的陳先生說(shuō),他在“小藍(lán)框”推行初期也存在超時(shí)停車等行為,但如今大部分車位都施劃為全免停車位,而且在交警部門、媒體和志愿者的勸導(dǎo)下,大部分人都知曉了相關(guān)規(guī)定,再出現(xiàn)類似違法問(wèn)題就應(yīng)該依法處罰。
交警:加強(qiáng)巡邏糾正,警告與處罰相結(jié)合
奎文交警大隊(duì)二中隊(duì)指導(dǎo)員劉陽(yáng)介紹,限免車位白天作為正常行車通道,一旦被占用,會(huì)影響其他行人和車輛正常通行,存在較大安全隱患,因此超時(shí)停車、不規(guī)范停車等行為是不允許的。目前,仍有個(gè)別車主存在違法行為,常見(jiàn)情況有超時(shí)停車、亂停亂放、車身超出停車位、占據(jù)多個(gè)車位、不按指示方向停車等。
“我們正不斷加強(qiáng)巡邏,及時(shí)糾正‘小藍(lán)框’上的交通違法行為。希望市民自覺(jué)按規(guī)定停放,不要因?yàn)橐患褐剑绊憽∷{(lán)框’的正常使用,提高免費(fèi)停車位的利用率。”劉陽(yáng)說(shuō),限時(shí)免費(fèi)停車位內(nèi)施劃了藍(lán)色箭頭,市民應(yīng)根據(jù)箭頭順向停車,避免啟動(dòng)時(shí)逆行變道或掉頭與周邊車輛發(fā)生刮蹭。
市交警支隊(duì)民警介紹,目前,交警部門對(duì)在限免或全免停車泊位上影響交通秩序的違法行為,加強(qiáng)曝光并依法進(jìn)行處罰。出于人性化執(zhí)法的目的,他們采取警告和處罰相結(jié)合的原則。重點(diǎn)對(duì)機(jī)動(dòng)車不在規(guī)定地點(diǎn)停放、逆向停車、超出停車泊位停放、占據(jù)多個(gè)停車泊位、不按準(zhǔn)停車型停車、超時(shí)停車等行為進(jìn)行處罰。
專家:可嘗試禁享限免、信用降級(jí)等懲戒
山東交通職業(yè)學(xué)院車輛工程學(xué)院老師房偉萍表示,公共場(chǎng)所限時(shí)免費(fèi)停車政策出臺(tái)后,受到市民廣泛好評(píng),實(shí)現(xiàn)了公共資源的“開(kāi)源節(jié)流”。政府部門的決策,離不開(kāi)市民的支持、理解和配合,否則再好的良政也有“夭折”的可能。
“部分車主公德意識(shí)不強(qiáng),只圖自己方便,存在超時(shí)停車、不規(guī)范停車等行為,擠占著原本就緊張的公共資源。歸根結(jié)底,是他們?nèi)狈?duì)法律和文明的敬畏,享受著政府提供的免費(fèi)便利,卻不肯換位思考,將違法停車不當(dāng)回事。”房偉萍說(shuō),城市車位規(guī)范有序“活起來(lái)”,考驗(yàn)著市民的自覺(jué)性和自律性,需要所有市民約束好自己的行為,千萬(wàn)不能因自己的隨心所欲或疏忽大意,給“小藍(lán)框”的管理帶來(lái)障礙,不能因自己的一時(shí)便利損害公共利益,繼而影響到限時(shí)免費(fèi)停車政策。
房偉萍建議,面對(duì)停車亂象,法律懲戒一定要及時(shí)跟上。人性化執(zhí)法與依法處罰相結(jié)合,停車亂象才能得到有效遏制。另外,可以利用濰坊正建設(shè)的“智慧停車服務(wù)平臺(tái)”系統(tǒng),對(duì)違法停車的市民采取取消免費(fèi)停車政策紅利、降低信用評(píng)級(jí)等方案,也不失為一劑良藥。
tkinter是python自帶的GUI庫(kù),是對(duì)圖形庫(kù)TK的封裝
tkinter是一個(gè)跨平臺(tái)的GUI庫(kù),開(kāi)發(fā)的程序可以在win,linux或者mac下運(yùn)行
一個(gè)窗口中任意內(nèi)容都可以稱之為一個(gè)組件
私信小編01即可獲取大量Python學(xué)習(xí)資源
復(fù)制代碼 隱藏代碼
Button 按鈕組件
RadioButton 單選框組件
CheckButton 選擇按鈕組件
Listbox 列表框組件
復(fù)制代碼 隱藏代碼
Entry 單行文本框組件
Text 多行文本框組件
復(fù)制代碼 隱藏代碼
Label 標(biāo)簽組件,可以顯示圖片和文字
Message 標(biāo)簽組件,可以根據(jù)內(nèi)容將文字換行
復(fù)制代碼 隱藏代碼
Menu 菜單組件
MenuButton 菜單按鈕組件,可以使用Menu代替
復(fù)制代碼 隱藏代碼
scale 滑塊組件
Scrollbar 滾動(dòng)條組件
復(fù)制代碼 隱藏代碼
Canvas 畫(huà)布組件
Frame 框架組件,將多個(gè)組件編組
Toplevel 創(chuàng)建子窗口容器組件
復(fù)制代碼 隱藏代碼
import tkinter
# 創(chuàng)建一個(gè)主窗口
win = tkinter.Tk()
# 設(shè)置標(biāo)題
win.title("Python-14")
# 設(shè)置窗口大小和位置
# 500x500 表示窗口大小
# +200+50 表示窗口距離電腦屏幕的左邊緣和上邊緣的距離
win.geometry("500x500+200+50")
# 啟動(dòng)主窗口
win.mainloop()
復(fù)制代碼 隱藏代碼
import tkinter
#生成主窗口對(duì)象
root = tkinter.Tk()
#創(chuàng)建標(biāo)簽 并且添加到主窗口中
label = tkinter.Label(root,text = '爺來(lái)了')
label.pack()
#創(chuàng)建按鈕,并且添加到主窗口中
btn1 = tkinter.Button(root,text = '按鈕1')
btn1.pack()
btn2 = tkinter.Button(root,text = '按鈕2')
btn2.pack()
#保持主窗口一直消息循環(huán)中。。
root.mainloop()
復(fù)制代碼 隱藏代碼
pack() 按照方位布局
place() 按照坐標(biāo)布局
grid() 按照網(wǎng)格布局
所有的Tkinter組件都包含專用的幾何管理方法,這些方法是用來(lái)組織和管理整個(gè)父配件區(qū)中子配件的布局的。Tkinter提供了截然不同的三種幾何管理類:pack、grid和place。
pack幾何管理采用塊的方式組織配件,在快速生成界面設(shè)計(jì)中廣泛采用,若干組件簡(jiǎn)單的布局,采用pack的代碼量最少。pack幾何管理程序根據(jù) 組件創(chuàng)建生成的順序?qū)⒔M件添加到父組件中去。通過(guò)設(shè)置相同的錨點(diǎn)(anchor)可以將一組配件緊挨一個(gè)地方放置,如果不指定任何選項(xiàng),默認(rèn)在父窗體中自頂向下添加組件。
復(fù)制代碼 隱藏代碼
組件對(duì)象.pack(設(shè)置, …)
名稱 | 描述 | 取值范圍 |
expand | 當(dāng)值為“yes”時(shí),side選項(xiàng)無(wú)效。組件顯示在父配件中心位置;若fill選項(xiàng)為”both”,則填充父組件的剩余空間。 | “yes”, 自然數(shù), “no”, 0(默認(rèn)值為“no”或0) |
fill | 填充x(y)方向上的空間,當(dāng)屬性side=”top”或”bottom”時(shí),填充x方向;當(dāng)屬性side=”left”或”right”時(shí),填充”y”方向;當(dāng)expand選項(xiàng)為”yes”時(shí),填充父組件的剩余空間。 | “x”, “y”, “both”(默認(rèn)值為待選) |
ipadx, ipady | 組件內(nèi)部在x(y)方向上填充的空間大小,默認(rèn)單位為像素,可選單位為c(厘米)、m(毫米)、i(英寸)、p(打印機(jī)的點(diǎn),即1/27英寸),用法為在值后加以上一個(gè)后綴既可。 | 非負(fù)浮點(diǎn)數(shù)(默認(rèn)值為0.0) |
padx, pady | 組件外部在x(y)方向上填充的空間大小,默認(rèn)單位為像素,可選單位為c(厘米)、m(毫米)、i(英寸)、p(打印機(jī)的點(diǎn),即1/27英寸),用法為在值后加以上一個(gè)后綴既可。 | 非負(fù)浮點(diǎn)數(shù)(默認(rèn)值為0.0) |
side | 定義停靠在父組件的哪一邊上。 | “top”, “bottom”, “l(fā)eft”, “right”(默認(rèn)為”top”) |
before | 將本組件于所選組建對(duì)象之前pack,類似于先創(chuàng)建本組件再創(chuàng)建選定組件。 | 已經(jīng)pack后的組件對(duì)象 |
after | 將本組件于所選組建對(duì)象之后pack,類似于先創(chuàng)建選定組件再本組件。 | 已經(jīng)pack后的組件對(duì)象 |
in_ | 將本組件作為所選組建對(duì)象的子組件,類似于指定本組件的master為選定組件。 | 已經(jīng)pack后的組件對(duì)象 |
anchor | 相對(duì)于擺放組件的位置的對(duì)齊方式,左對(duì)齊”w”,右對(duì)齊”e”,頂對(duì)齊”n”,底對(duì)齊”s” | “n”, “s”, “w”, “e”, “nw”, “sw”, “se”, “ne”, “center”(默認(rèn)為” center”) |
注:以上選項(xiàng)中可以看出expand、fill和side是相互影響的。
函數(shù)名 | 描述 |
slaves() | 以列表方式返回本組件的所有子組件對(duì)象。 |
propagate(boolean) | 設(shè)置為True表示父組件的幾何大小由子組件決定(默認(rèn)值),反之則無(wú)關(guān)。 |
info() | 返回pack提供的選項(xiàng)所對(duì)應(yīng)得值。 |
forget() | Unpack組件,將組件隱藏并且忽略原有設(shè)置,對(duì)象依舊存在,可以用pack(option, …),將其顯示。 |
location(x, y) | x, y為以像素為單位的點(diǎn),函數(shù)返回此點(diǎn)是否在單元格中,在哪個(gè)單元格中。返回單元格行列坐標(biāo),(-1, -1)表示不在其中。 |
size() | 返回組件所包含的單元格,揭示組件大小。 |
grid幾何管理采用類似表格的結(jié)構(gòu)組織配件,使用起來(lái)非常靈活,用其設(shè)計(jì)對(duì)話框和帶有滾動(dòng)條的窗體效果最好。grid采 用行列確定位置,行列交匯處為一個(gè)單元格。每一列中,列寬由這一列中最寬的單元格確定。每一行中,行高由這一行中最高的單元格決定。組件并不是充滿整個(gè)單 元格的,你可以指定單元格中剩余空間的使用。你可以空出這些空間,也可以在水平或豎直或兩個(gè)方向上填滿這些空間。你可以連接若干個(gè)單元格為一個(gè)更大空間, 這一操作被稱作跨越。創(chuàng)建的單元格必須相臨。
復(fù)制代碼 隱藏代碼
組件對(duì)象.grid(option, …)
名稱 | 描述 | 取值范圍 |
column | 組件所置單元格的列號(hào)。 | 自然數(shù)(起始默認(rèn)值為0,而后累加) |
columnspan | 從組件所置單元格算起在列方向上的跨度。 | 自然數(shù)(起始默認(rèn)值為0) |
ipadx, ipady | 組件內(nèi)部在x(y)方向上填充的空間大小,默認(rèn)單位為像素,可選單位為c(厘米)、m(毫米)、i(英寸)、p(打印機(jī)的點(diǎn),即1/27英寸),用法為在值后加以上一個(gè)后綴既可。 | 非負(fù)浮點(diǎn)數(shù)(默認(rèn)值為0.0) |
padx, pady | 組件外部在x(y)方向上填充的空間大小,默認(rèn)單位為像素,可選單位為c(厘米)、m(毫米)、i(英寸)、p(打印機(jī)的點(diǎn),即1/27英寸),用法為在值后加以上一個(gè)后綴既可。 | 非負(fù)浮點(diǎn)數(shù)(默認(rèn)值為0.0) |
row | 組件所置單元格的行號(hào)。 | 自然數(shù)(起始默認(rèn)值為0,而后累加) |
rowspan | 從組件所置單元格算起在行方向上的跨度。 | 自然數(shù)(起始默認(rèn)值為0) |
in_ | 將本組件作為所選組建對(duì)象的子組件,類似于指定本組件的master為選定組件。 | 已經(jīng)pack后的組件對(duì)象 |
sticky | 組件緊靠所在單元格的某一邊角。 | “n”, “s”, “w”, “e”, “nw”, “sw”, “se”, “ne”, “center”(默認(rèn)為” center”) |
函數(shù)名 | 描述 |
slaves() | 以列表方式返回本組件的所有子組件對(duì)象。 |
propagate(boolean) | 設(shè)置為True表示父組件的幾何大小由子組件決定(默認(rèn)值),反之則無(wú)關(guān)。 |
info() | 返回pack提供的選項(xiàng)所對(duì)應(yīng)得值。 |
forget() | Unpack組件,將組件隱藏并且忽略原有設(shè)置,對(duì)象依舊存在,可以用pack(option, …),將其顯示。 |
grid_remove() | 從網(wǎng)格管理器中刪除此小部件。小部件不會(huì)被銷毀,并且可以由網(wǎng)格或任何其他管理器重新顯示。 |
這個(gè)的幾何管理器組織放置在一個(gè)特定的位置,在他們的父widget部件.
復(fù)制代碼 隱藏代碼
組件對(duì)象.place(option, …)
名稱 | 描述 | 取值范圍 |
anchor | 相對(duì)于擺放組件的坐標(biāo)的位置 | 請(qǐng)參閱:可能是N,E,S,W,東北,西北,東南或西南,羅盤方向指示的widget的角落,雙方默認(rèn)是凈重(部件上左上角) |
height | 以像素為單位的高度.(絕對(duì)布局專用) | 像素 |
width | 以像素為單位的寬度.(絕對(duì)布局專用) | 像素 |
relheight | 組件相對(duì)于窗口的的高度(相對(duì)布局專用) | 0~1 |
relwidth | 組件相對(duì)于窗口的的寬度(相對(duì)布局專用) | 0~1 |
relx | 水平偏移為0.0和1.0之間浮動(dòng),父widget的一小部分的高度和寬度.(相對(duì)布局專用) | 0~1 |
rely | 垂直偏移為0.0和1.0之間浮動(dòng),父widget的一小部分的高度和寬度.(相對(duì)布局專用) | 0~1 |
x | 組件距離左上角的x坐標(biāo)(絕對(duì)布局專用) | 像素 |
y | 組件距離左上角的y坐標(biāo)(絕對(duì)布局專用) | 像素 |
函數(shù)名 | 描述 |
place_slaves() | 以列表方式返回本組件的所有子組件對(duì)象。 |
place_configure(option=value) | 給pack布局管理器設(shè)置屬性,使用屬性(option)= 取值(value)方式設(shè)置 |
propagate(boolean) | 設(shè)置為True表示父組件的幾何大小由子組件決定(默認(rèn)值),反之則無(wú)關(guān)。 |
place_info() | 返回pack提供的選項(xiàng)所對(duì)應(yīng)得值。 |
grid_forget() | Unpack組件,將組件隱藏并且忽略原有設(shè)置,對(duì)象依舊存在,可以用pack(option, …),將其顯示。 |
location(x, y) | x, y為以像素為單位的點(diǎn),函數(shù)返回此點(diǎn)是否在單元格中,在哪個(gè)單元格中。返回單元格行列坐標(biāo),(-1, -1)表示不在其中 |
size() | 返回組件所包含的單元格,揭示組件大小。 |
復(fù)制代碼 隱藏代碼
tkinter.Button(用于存放的父組件,屬性參數(shù)...)
復(fù)制代碼 隱藏代碼
anchor 設(shè)置按鈕中文字的對(duì)齊方式,相對(duì)于按鈕的中心位置
background(bg) 設(shè)置按鈕的背景顏色
foreground(fg) 設(shè)置按鈕的前景色(文字的顏色)
borderwidth(bd) 設(shè)置按鈕邊框?qū)挾?cursor 設(shè)置鼠標(biāo)在按鈕上的樣式
command 設(shè)定按鈕點(diǎn)擊時(shí)觸發(fā)的函數(shù)
bitmap 設(shè)置按鈕上顯示的位圖
font 設(shè)置按鈕上文本的字體
width 設(shè)置按鈕的寬度 (字符個(gè)數(shù))
height 設(shè)置按鈕的高度 (字符個(gè)數(shù))
state 設(shè)置按鈕的狀態(tài)
text 設(shè)置按鈕上的文字
image 設(shè)置按鈕上的圖片
復(fù)制代碼 隱藏代碼
import tkinter
# 創(chuàng)建一個(gè)主窗口
win = tkinter.Tk()
# 設(shè)置標(biāo)題
win.title("Python-14")
# 設(shè)置窗口大小和位置
# 500x500 表示窗口大小
# +200+50 表示窗口距離電腦屏幕的左邊緣和上邊緣的距離
win.geometry("500x500+200+50")
button1 = tkinter.Button(win,
text = "退出",
width = 20,
height = 5,
command = win.quit
)
button1.pack()
def func():
print("歡迎歡迎!")
button2 = tkinter.Button(win,
text = "點(diǎn)我有驚喜",
width = 30,
height = 20,
command = func
)
button2.pack()
# 啟動(dòng)主窗口
win.mainloop()
復(fù)制代碼 隱藏代碼
#單行文本
tkinter.Entry(用于存放的父組件,屬性參數(shù)...)
#多行文本
tkinter.Text(用于存放的父組件,屬性參數(shù)...)
復(fù)制代碼 隱藏代碼
background(bg) 設(shè)置文本框的背景色
foreground(fg) 設(shè)置文本框的前景色
borderwidth(bd) 設(shè)置文本輸入框的邊框
font 設(shè)置文本框中的字體
width 設(shè)置文本框的寬度(字符個(gè)數(shù))
height 設(shè)置文本框的高度(字符個(gè)數(shù)),僅限于text
state 設(shè)置文本框的狀態(tài)
selectbackground 選中文字時(shí)文本框的背景色
selectforeground 選中文字時(shí)文字的顏色
show 指定文本框顯示的字符,若為*,則表示為密碼框
textvariable 設(shè)置文本對(duì)應(yīng)的變量,可以通過(guò)修改變量改變文字顯示。必須使用tkinter.IntVar() 或 tkinter.StringVar()產(chǎn)生的變量 entry可以使用
復(fù)制代碼 隱藏代碼
import tkinter
# 創(chuàng)建一個(gè)主窗口
win = tkinter.Tk()
# 設(shè)置標(biāo)題
win.title("Python-14")
# 設(shè)置窗口大小和位置
win.geometry("500x500+250+150")
# 設(shè)置一個(gè)變量,用來(lái)接收輸入控件得內(nèi)容
e1 = tkinter.Variable()
# 輸入框控件
# show 隱藏輸入的內(nèi)容
entry = tkinter.Entry(win,textvariable = e1,show = "@")
entry.pack()
# 設(shè)置輸入框內(nèi)默認(rèn)內(nèi)容
e1.set("請(qǐng)輸入用戶名")
print(e1.get())
#設(shè)置按鈕提交
def func():
print(e1.get())
button = tkinter.Button(win,text = "提交",command = func)
button.pack()
# 啟動(dòng)主窗口
win.mainloop()
復(fù)制代碼 隱藏代碼
import tkinter
win = tkinter.Tk()
win.title("Python-14")
win.geometry("500x500+200+100")
#創(chuàng)建一個(gè)滾動(dòng)條
scroll = tkinter.Scrollbar()
text = tkinter.Text(win,width = 100,height = 40)
#顯示滾動(dòng)條位置 放在右側(cè) 填充滿Y軸
scroll.pack(side = tkinter.RIGHT,fill = tkinter.Y)
# 文本框的顯示
text.pack(side = tkinter.LEFT,fill = tkinter.Y)
#綁定滾動(dòng)條和文本框
scroll.config(command = text.yview)
#綁定文本框和滾動(dòng)條
text.config(yscrollcommand = scroll.set)
str = """
Christmas Day is on December 25th. It was originated in the western country, but today, this festival has been celebrated by the world. For the manufacturers, they are very happy to make this day as a shopping day. I enjoy the great atmosphere.
I had a very special Christmas day last year. I experienced the western style festival. There was a new foreign teacher taught us the lesson. She was about 50 years old and she was very kind and we all liked her. On Christmas Day, she brought us the desserts she made early in the morning. We enjoyed the home-made cakes. What's more, she invited us to came to her house and spent the day with her. Then for the first time, I ate big turkey, which was so delicious. The turkey was filled with many stuffs and the flavor was so good. After dinner, we sang songs and danced. Thanks to my foreign teacher, I experienced the American style festival. It was such funny for me. Though today many people enjoy shopping in all kinds of festivals, the meaning of these festival should be remembered. Christmas Day is on December 25th. It was originated in the western country, but today, this festival has been celebrated by the world. For the manufacturers, they are very happy to make this day as a shopping day. I enjoy the great atmosphere.
"""
text.insert(tkinter.INSERT,str)
win.mainloop()
復(fù)制代碼 隱藏代碼
import tkinter
win = tkinter.Tk()
win.title("Python-14")
win.geometry("500x500+200+100")
# 創(chuàng)建一個(gè)輸入框
entry = tkinter.Entry(win)
entry.pack()
# 創(chuàng)建一個(gè)文本框
text = tkinter.Text(win,width = 50,height = 20)
text.pack()
# 寫一個(gè)讀取文件的函數(shù)
def func():
with open(entry.get(),"r") as f:
content = f.read()
text.insert(tkinter.INSERT,content)
# 寫一個(gè)保存文件內(nèi)容的函數(shù)
def func1():
with open(entry.get(),"w") as f:
# 寫入的內(nèi)容為 文本框內(nèi)從0行0列到結(jié)束
f.write(text.get(0.0,tkinter.END))
#創(chuàng)建兩個(gè)按鈕
button1 = tkinter.Button(win,text = "保存",command = func1)
button2 = tkinter.Button(win,text = "讀取",command = func)
button1.pack()
button2.pack()
win.mainloop()
復(fù)制代碼 隱藏代碼
tkinter.Label(用于存放的父組件,屬性參數(shù)...)
復(fù)制代碼 隱藏代碼
anchor 設(shè)置文本相對(duì)于標(biāo)簽中心的位置
background(bg) 設(shè)置標(biāo)簽的背景色
foreground(fg) 設(shè)置標(biāo)簽的前景色
borderwidth(bd) 設(shè)置標(biāo)簽的邊框?qū)挾?width 設(shè)置標(biāo)簽的寬度(字符個(gè)數(shù))
height 設(shè)置標(biāo)簽的高度(字符個(gè)數(shù))
text 設(shè)置標(biāo)簽中文本內(nèi)容
font 設(shè)置標(biāo)簽中文字的字體類型
bitmap 設(shè)置標(biāo)簽的現(xiàn)實(shí)的位圖
image 設(shè)置標(biāo)簽中顯示的圖片
justify 設(shè)置標(biāo)簽中多行文本的對(duì)齊方式
textvariable 設(shè)置文本對(duì)應(yīng)的變量,可以通過(guò)修改變量改變文字顯示,必須使用tkinter.IntVar() 或者tkinter.StringVar()產(chǎn)生的變量
復(fù)制代碼 隱藏代碼
import tkinter
# 創(chuàng)建一個(gè)主窗口
win = tkinter.Tk()
# 設(shè)置標(biāo)題
win.title("Python-14")
# 設(shè)置窗口大小和位置
# 500x500 表示窗口大小
# +200+50 表示窗口距離電腦屏幕的左邊緣和上邊緣的距離
win.geometry("500x500+200+50")
"""
Label:標(biāo)簽空間,可以顯示文本
win:主窗口
text:顯示文本內(nèi)容
bg:背景顏色
fg:字體顏色
font:設(shè)置字體和字體大小
wraplength:指定text中多寬之后進(jìn)行換行
anchor:文本顯示的位置 n北 e東 s南 w西 center居中 ne se sw nw
justify:設(shè)置換行之后的對(duì)齊方式
"""
label = tkinter.Label(win,
text = "this is a python test",
bg = "red",
fg = "yellow",
font = ("黑體",26),
width = 5,
height = 10,
wraplength = 100,
anchor = "n",
justify = "right"
)
# 顯示標(biāo)簽
label.pack()
# 啟動(dòng)主窗口
win.mainloop()
復(fù)制代碼 隱藏代碼
thinter.Radiobutton(用于存放的父組件,屬性參數(shù)...)
thinter.Checkbutton(用于存放的父組件,屬性參數(shù)...)
復(fù)制代碼 隱藏代碼
anchor 設(shè)置組件中文字的對(duì)齊方式
background(bg) 指定組件的背景色。
borderwidth(bd) 指定組件邊框的寬度。
bitmap 指定組件中的位圖。
font 指定組件中文本的字體。
foreground(fg) 指定組件的前
height 指定組件的高度。
image 指定組件中的圖片。
justify 指定組件中多行文本的對(duì)齊方式。
text 指定組件中的文本,可以 使用“\ n” 表示換行。
value 指定組件被選中后狀態(tài)的值(單選框)
onvalue 組件勾選狀態(tài)值(復(fù)選框)
offvalue 組件取消勾選狀態(tài)的值(復(fù)選框)
variable 指定組件所關(guān)聯(lián)的變量。需要使用tkinter. IntVar()或者tkinter. StringVar()創(chuàng)建的值
width 指定組件的寬度。
command 設(shè)置復(fù)選框操作的觸發(fā)命令(復(fù)選框)
復(fù)制代碼 隱藏代碼
# 復(fù)選框
import tkinter
win = tkinter.Tk()
win.title("Python-14")
win.geometry("500x500+200+100")
def func():
message = ""
if res1.get():
message += "張三\n"
if res2.get():
message += "李四\n"
if res3.get():
message += "王五\n"
# 清除text中所有內(nèi)容
text.delete(0.0,tkinter.END)
# 把message寫入text中
text.insert(tkinter.INSERT,message)
# 判斷復(fù)選框是否被選定 返回一個(gè)bool值
res1 = tkinter.BooleanVar()
# 創(chuàng)建一個(gè)復(fù)選框
check1 = tkinter.Checkbutton(win,text = "張三",variable = res1)
check1.pack()
res2 = tkinter.BooleanVar()
check2 = tkinter.Checkbutton(win,text = "李四",variable = res2)
check2.pack()
res3 = tkinter.BooleanVar()
check3 = tkinter.Checkbutton(win,text = "王五",variable = res3)
check3.pack()
# 創(chuàng)建一個(gè)文本框
text = tkinter.Text(win,width = 50,height = 20)
text.pack()
# 創(chuàng)建一個(gè)按鈕
button = tkinter.Button(win,text = "submit",width = 10,height = 5,command = func)
button.pack()
win.mainloop()
復(fù)制代碼 隱藏代碼
#單選框
import tkinter
win = tkinter.Tk()
win.title("Python-14")
win.geometry("500x500+200+100")
# 獲取單選框的value
res = tkinter.StringVar()
# 定義一個(gè)函數(shù) 來(lái)打印單選框的value值
def func():
print(res.get())
# 創(chuàng)建單選框
radio1 = tkinter.Radiobutton(
win,
text = "張三",
value = 1,
variable = res,
command = func
)
radio2 = tkinter.Radiobutton(
win,
text = "李四",
value = 2,
variable = res,
command = func
)
radio3 = tkinter.Radiobutton(
win,text = "王五",
value = 3,
variable = res,
command = func
)
# 顯示單選框
radio1.pack()
radio2.pack()
radio3.pack()
win.mainloop()
復(fù)制代碼 隱藏代碼
thinter.Menu(用于存放的父組件,屬性參數(shù)...)
復(fù)制代碼 隱藏代碼
background(bg) 正常的背景顏色顯示在標(biāo)簽和指示器后面。
borderwidth(bd) 指標(biāo)周圍邊界的大小。默認(rèn)值為2像素。
cursor 如果將此選項(xiàng)設(shè)置為光標(biāo)名稱(箭頭,點(diǎn)等),則鼠標(biāo)光標(biāo)將在檢查按鈕上方更改為該模式。
height 新框架的垂直尺寸。
highlightbackground 當(dāng)框架沒(méi)有焦點(diǎn)時(shí),焦點(diǎn)的顏色突出顯示。
highlightcolor 當(dāng)框架具有焦點(diǎn)時(shí),焦點(diǎn)突出顯示的顏色。
highlightthickness 焦點(diǎn)亮點(diǎn)的厚度。
relief 使用默認(rèn)值,relief = FLAT,檢查按鈕不會(huì)從背景中脫穎而出。您可以將此選項(xiàng)設(shè)置為任何其他樣式
width checkbutton的默認(rèn)寬度取決于所顯示的圖像或文字的大小。你可以設(shè)置此選項(xiàng)的字符數(shù)和checkbutton的,總是有許多字符的空間。
復(fù)制代碼 隱藏代碼
#布局
import tkinter
win = tkinter.Tk()
win.title("Pyhton-14")
win.geometry("500x500+200+100")
# 創(chuàng)建一個(gè)框架
frame = tkinter.Frame(win)
frame.pack()
# 左邊
frm1 = tkinter.Frame(frame)
lable1 = tkinter.Label(frm1,text = "左上",bg = "red",width = 10,height = 5)
lable2 = tkinter.Label(frm1,text = "左下",bg = "yellow",width = 10,height = 5)
lable1.pack(side = tkinter.TOP)
lable2.pack(side = tkinter.TOP)
frm1.pack(side = tkinter.LEFT)
# 右邊
frm2 = tkinter.Frame(frame)
lable3 = tkinter.Label(frm2,text = "右上",bg = "green",width = 10,height = 5)
lable4 = tkinter.Label(frm2,text = "右下",bg = "blue",width = 10,height = 5)
lable3.pack(side = tkinter.TOP)
lable4.pack(side = tkinter.TOP)
frm2.pack(side = tkinter.RIGHT)
win.mainloop()
復(fù)制代碼 隱藏代碼
#絕對(duì)定位
import tkinter
win = tkinter.Tk()
win.geometry("500x500+200+100")
lable1 = tkinter.Label(win,text = "小紅",bg = "red",width = 20,height = 10)
lable2 = tkinter.Label(win,text = "小明",bg = "green",width = 20,height = 10)
lable3 = tkinter.Label(win,text = "李雷",bg = "yellow",width = 20,height = 10)
lable1.place(x = 0,y = 0)
lable2.place(x = 370,y = 0)
lable3.place(x = 0,y = 310)
win.mainloop()
復(fù)制代碼 隱藏代碼
#相對(duì)定位
import tkinter
win = tkinter.Tk()
win.title("Python-14")
win.geometry("500x500+200+100")
label1 = tkinter.Label(win,text = "小紅",bg = "red")
label2 = tkinter.Label(win,text = "小明",bg = "green")
label3 = tkinter.Label(win,text = "李雷",bg = "yellow")
label1.pack(fill = tkinter.Y,side = tkinter.LEFT)
label2.pack(fill = tkinter.Y,side = tkinter.RIGHT)
label3.pack(fill = tkinter.X,side = tkinter.TOP)
label3.pack()
win.mainloop()
復(fù)制代碼 隱藏代碼
#表格布局
import tkinter
win = tkinter.Tk()
win.title("Python-14")
win.geometry("500x500+200+100")
lable1 = tkinter.Label(win,text = "小紅",bg = "red")
lable2 = tkinter.Label(win,text = "小黃",bg = "yellow")
lable3 = tkinter.Label(win,text = "小藍(lán)",bg = "blue")
lable4 = tkinter.Label(win,text = "小粉",bg = "pink")
# 表格布局
lable1.grid(row = 0,column = 0)
lable2.grid(row = 0,column = 1)
lable3.grid(row = 1,column = 0)
lable4.grid(row = 1,column = 1)
win.mainloop()
之前能夠觸發(fā)操作的只有2個(gè)組件,一個(gè)按鈕一個(gè)菜單的選項(xiàng)卡 command屬性 設(shè)置操作對(duì)應(yīng)的函數(shù)
復(fù)制代碼 隱藏代碼
<Button-1> 按下了鼠標(biāo)左鍵 <ButtonPress-1>
<Button-2> 按下了鼠標(biāo)中鍵 <ButtonPress-2>
<Button-3> 按下了鼠標(biāo)右鍵 <ButtonPress-3>
<Enter> 鼠標(biāo)進(jìn)入組件區(qū)域
<Leave> 鼠標(biāo)離開(kāi)組件區(qū)域
<ButtonRelease-1> 釋放了鼠標(biāo)左鍵
<ButtonRelease-2> 釋放了鼠標(biāo)中鍵
<ButtonRelease-3> 釋放了鼠標(biāo)右鍵
<B1-Moion> 按住鼠標(biāo)左鍵移動(dòng)
<B2-Moion> 按住鼠標(biāo)中鍵移動(dòng)
<B3-Moion> 按住鼠標(biāo)右鍵移動(dòng)
<Double-Button-1> 雙擊鼠標(biāo)左鍵
<Double-Button-2> 雙擊鼠標(biāo)中鍵
<Double-Button-3> 雙擊鼠標(biāo)右鍵
<MouseWheel> 滾動(dòng)鼠標(biāo)滾輪
復(fù)制代碼 隱藏代碼
<KeyPress> 表示任何鍵盤按下
<KeyPress-A> 表示按下鍵盤A鍵 A可以設(shè)置為其他的按鍵
<Alt-KeyPress-A> 表示同時(shí)按下Alt和A鍵 A可以設(shè)置為其他的按鍵
<Control-KeyPress-A> 表示同時(shí)按下Ctrl和A鍵 A可以設(shè)置為其他的按鍵
<Shift-KeyPress-A> 表示同時(shí)按下Shift和A鍵 A可以設(shè)置為其他的按鍵
<Double-KeyPress-A> 表示雙擊鍵盤A鍵 A可以設(shè)置為其他的按鍵
<Lock-KeyPress-A> 表示開(kāi)啟大寫之后鍵盤A鍵 A可以設(shè)置為其他的按鍵
<Alt-Control-KeyPress-A> 表示同時(shí)按下alt+Ctrl和A鍵 A可以設(shè)置為其他的按鍵
注意:鍵盤事件除了entry和text組件其他組件的事件最好綁定在主界面上
復(fù)制代碼 隱藏代碼
x,y 當(dāng)前觸發(fā)事件時(shí)鼠標(biāo)相對(duì)觸發(fā)事件的組件的坐標(biāo)值
x_root,y_root 當(dāng)前觸發(fā)事件時(shí)鼠標(biāo)相對(duì)于屏幕的坐標(biāo)值
char 獲取當(dāng)前鍵盤事件時(shí)按下的鍵對(duì)應(yīng)的字符
keycode 獲取當(dāng)前鍵盤事件時(shí)按下的鍵對(duì)應(yīng)的的ascii碼
type 獲取事件的類型
num 獲取鼠標(biāo)按鍵類型 123 左中右
widget 觸發(fā)事件的組件
width/height 組件改變之后的大小和configure()相關(guān)
復(fù)制代碼 隱藏代碼
Activate 當(dāng)中組件由不可以用變?yōu)榭捎脮r(shí) 針對(duì)于state的變值
Deactivate 當(dāng)組件由可用變?yōu)椴豢捎脮r(shí)觸發(fā)
Configure 當(dāng)組件大小發(fā)生變化時(shí)觸發(fā)
Destory 當(dāng)組件銷毀時(shí)觸發(fā)
FocusIn 當(dāng)組件獲取焦點(diǎn)時(shí)觸發(fā) 針對(duì)于Entry和Text有效
Map 當(dāng)組件由隱藏變?yōu)轱@示時(shí)觸發(fā)
UnMap 當(dāng)組件由顯示變?yōu)殡[藏時(shí)觸發(fā)
Perproty 當(dāng)窗口屬性發(fā)生變化時(shí)觸發(fā)
復(fù)制代碼 隱藏代碼
#為一個(gè)組件綁定一個(gè)操作
復(fù)制代碼 隱藏代碼
#為一類組件綁定一個(gè)操作
#組件類型就是創(chuàng)建組件的方法名 例如按鈕組件:Button
復(fù)制代碼 隱藏代碼
#為所有組件綁定一個(gè)操作(所有操作都會(huì)當(dāng)作對(duì)主界面的操作)
復(fù)制代碼 隱藏代碼
import tkinter
win = tkinter.Tk()
win.title("Python-14")
win.geometry("500x500+200+100")
def func(event):
print(event.x,event.y)
button = tkinter.Button(win,text = "按鈕",width = 50,height = 20)
button.bind("<Triple-Button-1>",func)
button.pack()
win.mainloop()
復(fù)制代碼 隱藏代碼
import sys
import difflib
# sys.argv : 獲取外部運(yùn)行時(shí)的命令 返回一個(gè)列表
# sys.argv : 獲取外部運(yùn)行時(shí)的命令 返回一個(gè)列表
# print(sys.argv)
#
# file1 = sys.argv[1]
# file2 = sys.argv[2]
# print(file1)
# print(file2)
# difflib
# 創(chuàng)建比對(duì)對(duì)象 HtmlDiff() 生成一個(gè)html文件
# 比對(duì)內(nèi)容 make_file()
復(fù)制代碼 隱藏代碼
import sys
import difflib
# sys.argv : 獲取外部運(yùn)行時(shí)的命令 返回一個(gè)列表
# sys.argv : 獲取外部運(yùn)行時(shí)的命令 返回一個(gè)列表
# print(sys.argv)
# difflib
# 創(chuàng)建比對(duì)對(duì)象 HtmlDiff() 生成一個(gè)html文件
# 比對(duì)內(nèi)容 make_file()
first_path = sys.argv[1] # 獲取第一個(gè)要比對(duì)的文件名稱
next_path = sys.argv[2] # 獲取第二個(gè)要比對(duì)的文件名稱
# 分別讀取兩個(gè)文件
with open(first_path,"r") as f:
first_list = f.readlines()
with open(next_path,"r") as f:
next_list = f.readlines()
# 生成比對(duì)對(duì)象
diff = difflib.HtmlDiff()
html = diff.make_file(first_list,next_list)
with open("diff.html","w") as f:
f.write(html)
復(fù)制代碼 隱藏代碼
# win+R cmd cd到文件當(dāng)前地址
# python 文件名.py 文件1 文件2
復(fù)制代碼 隱藏代碼
from tkinter import *
root = Tk()
root.geometry('250x380')
root.title('計(jì)算器')
frame_show = Frame(width=300,height=150,bg='#dddddd')
#頂部區(qū)域
v = StringVar()
v.set('0')
show_label = Label(frame_show,textvariable =v, bg = 'white',width=12,height=1,font=("黑體", 20, "bold"),justify=LEFT,anchor='e')
show_label.pack(padx = 10,pady = 10)
frame_show.pack()
#是否按下了運(yùn)算符
isopear = False
#操作序列
calc = []
def change(num):
global isopear
if isopear == False:
if v.get() == '0':
v.set('')
v.set(num)
else:
v.set(v.get()+num)
else:
v.set(num)
isopear = False
#運(yùn)算
def operation(sign):
global isopear
global calc
isopear = True
calc.append(v.get())
if sign == '+':
calc.append('+')
elif sign == '-':
calc.append('-')
elif sign == '*':
calc.append('*')
elif sign == '/':
calc.append('/')
print(calc)
def equal():
global calc
#獲取當(dāng)前界面的數(shù)值準(zhǔn)備運(yùn)算
calc.append(v.get())
print(calc)
#組成運(yùn)算字符串
calcstr = ''.join(calc)
#檢測(cè)最后一位是否是運(yùn)算符,是就刪除
if calcstr[-1] in '+-*/':
calcstr = calcstr[0:-1]
#print(calcstr)
#運(yùn)算操作
result = eval(calcstr)
#顯示結(jié)果
v.set(result)
calc.clear()
#刪除操作
def delete():
if v.get() == '' or v.get() == '0':
v.set('0')
return
else:
num = len(v.get())
if num > 1:
strnum = v.get()
strnum = strnum[0:num-1]
v.set(strnum)
else:
v.set('0')
#清空操作
def clear():
global calc
calc = []
v.set('0')
isopear = False
#正負(fù)操作
def fan():
strnum = v.get()
if strnum[0] == '-':
v.set(strnum[1:])
elif strnum[0] != '-' and strnum != '0' :
v.set('-'+strnum)
#按鍵區(qū)域
frame_bord = Frame(width=400,height=350,bg='#cccccc')
button_del = Button(frame_bord,text = '←',width = 5,height =1,command = delete).grid(row = 0,column = 0)
button_clear = Button(frame_bord,text = 'C',width = 5,height =1,command = clear).grid(row = 0,column = 1)
button_fan = Button(frame_bord,text = '±',width = 5,height =1,command = fan).grid(row = 0,column = 2)
button_ce = Button(frame_bord,text = 'CE',width = 5,height =1,command = clear).grid(row = 0,column = 3)
button_1 = Button(frame_bord,text = '1',width = 5,height =2,command = lambda:change('1')).grid(row = 1,column = 0)
button_2 = Button(frame_bord,text = '2',width = 5,height =2,command = lambda:change('2')).grid(row = 1,column = 1)
button_3 = Button(frame_bord,text = '3',width = 5,height =2,command = lambda:change('3')).grid(row = 1,column = 2)
button_jia = Button(frame_bord,text = '+',width = 5,height =2,command = lambda:operation('+')).grid(row = 1,column = 3)
button_4 = Button(frame_bord,text = '4',width = 5,height =2,command = lambda:change('4')).grid(row = 2,column = 0)
button_5 = Button(frame_bord,text = '5',width = 5,height =2,command = lambda:change('5')).grid(row = 2,column = 1)
button_6 = Button(frame_bord,text = '6',width = 5,height =2,command = lambda:change('6')).grid(row = 2,column = 2)
button_jian = Button(frame_bord,text = '-',width = 5,height =2,command = lambda:operation('-')).grid(row = 2,column = 3)
button_7 = Button(frame_bord,text = '7',width = 5,height =2,command = lambda:change('7')).grid(row = 3,column = 0)
button_8 = Button(frame_bord,text = '8',width = 5,height =2,command = lambda:change('8')).grid(row = 3,column = 1)
button_9 = Button(frame_bord,text = '9',width = 5,height =2,command = lambda:change('9')).grid(row = 3,column = 2)
button_cheng = Button(frame_bord,text = 'x',width = 5,height =2,command = lambda:operation('*')).grid(row = 3,column = 3)
button_0 = Button(frame_bord,text = '0',width = 5,height =2,command = lambda:change('0')).grid(row = 4,column = 0)
button_dian = Button(frame_bord,text = '.',width = 5,height =2,command = lambda:change('.')).grid(row = 4,column = 1)
button_deng = Button(frame_bord,text = '=',width = 5,height =2,command = equal).grid(row = 4,column = 2)
button_chu = Button(frame_bord,text = '/',width = 5,height =2,command = lambda:operation('/')).grid(row = 4,column = 3)
frame_bord.pack(padx = 10,pady = 10)
root.mainloop()
======================
帖子很長(zhǎng),收藏下來(lái)必然某天用得到。筆記是我自己整理并一直在使用的。有錯(cuò)誤請(qǐng)反饋,謝謝。