操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    共場所限時免費停車政策出臺后受到廣泛好評,大部分市民按照相關規定積極配合,但仍有小部分人存在超時停車、亂停亂放、車身超出停車位、占據多個車位等違法行為。8月11日,記者走訪城區多個路段,發現交警部門對存在超時停車等違法行為的個別車主張貼了交通違法提醒單,要求其到轄區中隊處理。

    探訪:上午10時仍有車停在限免車位上

    8月11日上午,記者來到濰城區怡園路與北宮西街路口北側,怡園路兩側施劃了不少全天免費停車位,空閑停車位不少,卻有機動車存在亂停亂放等交通違法行為。在怡園路西側,一輛白色轎車車頭向北逆向停放,相鄰一個全免車位上,有一輛黑色轎車斜插進停車位,影響了非機動車的正常通行。

    背街小巷由于道路狹窄,大部分施劃的是限免停車位。當天上午10時許,記者來到奎文區西虞巷看到,此處車流量、人流量很大,路邊的幾十個限免停車位上停放了不少車輛,而一旁的提示牌上標明了“限時免費停車泊位19:00至次日7:30”。

    記者走訪城區各大醫院、景點、主次干道和商圈發現,大部分市民都能按規定停車,但也有少數車主存在超時停車、亂停亂放、車身超出停車位、占據多個車位、不按指示方向停車等交通違法行為。在志愿者的引導下,大部分違法車主也能及時糾正其違法行為。

    對于此類在“小藍框”上影響交通秩序的交通違法行為,交警部門已開始張貼交通違法提醒單,通知車主前往轄區中隊依法接受處理。

    市民:支持依法處罰,車主更應該自覺

    “政府給我們方便,不是讓我們隨便。”家住奎文區寶鼎花園小區的孫先生表示,公共場所限時免費停車政策出臺后,自己晚上將車停放在小區附近背街小巷的限免停車位上,白天開車上班,出行十分方便。但他發現在非免費停車時段,仍有部分車主將車停在限免停車位上。對于這種超時停車的行為,他覺得應該依法處罰。

    家住高新區北海花園小區的韓女士也表示,政府推出了便民舉措,大家更應該遵守規則,對于違反交通法規的就要及時查處。看到交警部門開始對“小藍框”上的交通違法行為貼罰單,她對此予以支持,而車主們更應該在享受便利的同時,自覺遵守相關規定。

    “現在‘小藍框’已經推行很長時間了,再有亂停亂放或超時停放的情況就屬于個人素質問題了。”家住濰城區三友翡翠城小區的陳先生說,他在“小藍框”推行初期也存在超時停車等行為,但如今大部分車位都施劃為全免停車位,而且在交警部門、媒體和志愿者的勸導下,大部分人都知曉了相關規定,再出現類似違法問題就應該依法處罰。

    交警:加強巡邏糾正,警告與處罰相結合

    奎文交警大隊二中隊指導員劉陽介紹,限免車位白天作為正常行車通道,一旦被占用,會影響其他行人和車輛正常通行,存在較大安全隱患,因此超時停車、不規范停車等行為是不允許的。目前,仍有個別車主存在違法行為,常見情況有超時停車、亂停亂放、車身超出停車位、占據多個車位、不按指示方向停車等。

    “我們正不斷加強巡邏,及時糾正‘小藍框’上的交通違法行為。希望市民自覺按規定停放,不要因為一己之私,影響‘小藍框’的正常使用,提高免費停車位的利用率。”劉陽說,限時免費停車位內施劃了藍色箭頭,市民應根據箭頭順向停車,避免啟動時逆行變道或掉頭與周邊車輛發生刮蹭。

    市交警支隊民警介紹,目前,交警部門對在限免或全免停車泊位上影響交通秩序的違法行為,加強曝光并依法進行處罰。出于人性化執法的目的,他們采取警告和處罰相結合的原則。重點對機動車不在規定地點停放、逆向停車、超出停車泊位停放、占據多個停車泊位、不按準停車型停車、超時停車等行為進行處罰。

    專家:可嘗試禁享限免、信用降級等懲戒

    山東交通職業學院車輛工程學院老師房偉萍表示,公共場所限時免費停車政策出臺后,受到市民廣泛好評,實現了公共資源的“開源節流”。政府部門的決策,離不開市民的支持、理解和配合,否則再好的良政也有“夭折”的可能。

    “部分車主公德意識不強,只圖自己方便,存在超時停車、不規范停車等行為,擠占著原本就緊張的公共資源。歸根結底,是他們缺乏對法律和文明的敬畏,享受著政府提供的免費便利,卻不肯換位思考,將違法停車不當回事。”房偉萍說,城市車位規范有序“活起來”,考驗著市民的自覺性和自律性,需要所有市民約束好自己的行為,千萬不能因自己的隨心所欲或疏忽大意,給“小藍框”的管理帶來障礙,不能因自己的一時便利損害公共利益,繼而影響到限時免費停車政策。

    房偉萍建議,面對停車亂象,法律懲戒一定要及時跟上。人性化執法與依法處罰相結合,停車亂象才能得到有效遏制。另外,可以利用濰坊正建設的“智慧停車服務平臺”系統,對違法停車的市民采取取消免費停車政策紅利、降低信用評級等方案,也不失為一劑良藥。

    tkinter介紹

    tkinter是python自帶的GUI庫,是對圖形庫TK的封裝
    tkinter是一個跨平臺的GUI庫,開發的程序可以在win,linux或者mac下運行

    組件概念

    一個窗口中任意內容都可以稱之為一個組件

    tkinter的組件包含以下幾種

    私信小編01即可獲取大量Python學習資源

    按鈕組件

     復制代碼 隱藏代碼
    Button           按鈕組件
    RadioButton      單選框組件
    CheckButton      選擇按鈕組件
    Listbox          列表框組件

    文本輸入框組件

     復制代碼 隱藏代碼
    Entry            單行文本框組件
    Text             多行文本框組件

    標簽組件

     復制代碼 隱藏代碼
    Label            標簽組件,可以顯示圖片和文字
    Message          標簽組件,可以根據內容將文字換行

    菜單組件

     復制代碼 隱藏代碼
    Menu             菜單組件
    MenuButton       菜單按鈕組件,可以使用Menu代替

    滾動條組件

     復制代碼 隱藏代碼
    scale            滑塊組件
    Scrollbar        滾動條組件

    其他組件

     復制代碼 隱藏代碼
    Canvas           畫布組件
    Frame            框架組件,將多個組件編組
    Toplevel         創建子窗口容器組件

    創建窗口

    簡單的窗口

     復制代碼 隱藏代碼
    import tkinter
    # 創建一個主窗口
    win = tkinter.Tk()
    # 設置標題
    win.title("Python-14")
    # 設置窗口大小和位置
    # 500x500 表示窗口大小
    # +200+50 表示窗口距離電腦屏幕的左邊緣和上邊緣的距離
    win.geometry("500x500+200+50")
    # 啟動主窗口
    win.mainloop()

    帶有組件的窗口

     復制代碼 隱藏代碼
    import tkinter
    #生成主窗口對象
    root = tkinter.Tk()
    #創建標簽 并且添加到主窗口中
    label = tkinter.Label(root,text = '爺來了')
    label.pack()
    #創建按鈕,并且添加到主窗口中
    btn1 = tkinter.Button(root,text = '按鈕1')
    btn1.pack()
    btn2 = tkinter.Button(root,text = '按鈕2')
    btn2.pack()
    #保持主窗口一直消息循環中。。
    root.mainloop()

    組件布局

    組件布局一共三種方式

     復制代碼 隱藏代碼
    pack()     按照方位布局
    place()    按照坐標布局
    grid()     按照網格布局

    1.pack布局方法

    所有的Tkinter組件都包含專用的幾何管理方法,這些方法是用來組織和管理整個父配件區中子配件的布局的。Tkinter提供了截然不同的三種幾何管理類:pack、grid和place。
    pack幾何管理采用塊的方式組織配件,在快速生成界面設計中廣泛采用,若干組件簡單的布局,采用pack的代碼量最少。pack幾何管理程序根據 組件創建生成的順序將組件添加到父組件中去。通過設置相同的錨點(anchor)可以將一組配件緊挨一個地方放置,如果不指定任何選項,
    默認在父窗體中自頂向下添加組件。

    pack()布局的通用公式

     復制代碼 隱藏代碼
    組件對象.pack(設置, …)    

    名稱

    描述

    取值范圍

    expand

    當值為“yes”時,side選項無效。組件顯示在父配件中心位置;若fill選項為”both”,則填充父組件的剩余空間。

    “yes”, 自然數, “no”, 0(默認值為“no”或0)

    fill

    填充x(y)方向上的空間,當屬性side=”top”或”bottom”時,填充x方向;當屬性side=”left”或”right”時,填充”y”方向;當expand選項為”yes”時,填充父組件的剩余空間。

    “x”, “y”, “both”(默認值為待選)

    ipadx, ipady

    組件內部在x(y)方向上填充的空間大小,默認單位為像素,可選單位為c(厘米)、m(毫米)、i(英寸)、p(打印機的點,即1/27英寸),用法為在值后加以上一個后綴既可。

    非負浮點數(默認值為0.0)

    padx, pady

    組件外部在x(y)方向上填充的空間大小,默認單位為像素,可選單位為c(厘米)、m(毫米)、i(英寸)、p(打印機的點,即1/27英寸),用法為在值后加以上一個后綴既可。

    非負浮點數(默認值為0.0)

    side

    定義停靠在父組件的哪一邊上。

    “top”, “bottom”, “left”, “right”(默認為”top”)

    before

    將本組件于所選組建對象之前pack,類似于先創建本組件再創建選定組件。

    已經pack后的組件對象

    after

    將本組件于所選組建對象之后pack,類似于先創建選定組件再本組件。

    已經pack后的組件對象

    in_

    將本組件作為所選組建對象的子組件,類似于指定本組件的master為選定組件。

    已經pack后的組件對象

    anchor

    相對于擺放組件的位置的對齊方式,左對齊”w”,右對齊”e”,頂對齊”n”,底對齊”s”

    “n”, “s”, “w”, “e”, “nw”, “sw”, “se”, “ne”, “center”(默認為” center”)

    注:以上選項中可以看出expand、fill和side是相互影響的。

    pack類提供了下列函數

    函數名

    描述

    slaves()

    以列表方式返回本組件的所有子組件對象。

    propagate(boolean)

    設置為True表示父組件的幾何大小由子組件決定(默認值),反之則無關。

    info()

    返回pack提供的選項所對應得值。

    forget()

    Unpack組件,將組件隱藏并且忽略原有設置,對象依舊存在,可以用pack(option, …),將其顯示。

    location(x, y)

    x, y為以像素為單位的點,函數返回此點是否在單元格中,在哪個單元格中。返回單元格行列坐標,(-1, -1)表示不在其中。

    size()

    返回組件所包含的單元格,揭示組件大小。

    2.grid布局方法

    grid幾何管理采用類似表格的結構組織配件,使用起來非常靈活,用其設計對話框和帶有滾動條的窗體效果最好。grid采 用行列確定位置,行列交匯處為一個單元格。每一列中,列寬由這一列中最寬的單元格確定。每一行中,行高由這一行中最高的單元格決定。組件并不是充滿整個單 元格的,你可以指定單元格中剩余空間的使用。你可以空出這些空間,也可以在水平或豎直或兩個方向上填滿這些空間。你可以連接若干個單元格為一個更大空間, 這一操作被稱作跨越。創建的單元格必須相臨。

    grid()布局的通用公式為

     復制代碼 隱藏代碼
    組件對象.grid(option, …)

    grid類提供了下列設置屬性

    名稱

    描述

    取值范圍

    column

    組件所置單元格的列號。

    自然數(起始默認值為0,而后累加)

    columnspan

    從組件所置單元格算起在列方向上的跨度。

    自然數(起始默認值為0)

    ipadx, ipady

    組件內部在x(y)方向上填充的空間大小,默認單位為像素,可選單位為c(厘米)、m(毫米)、i(英寸)、p(打印機的點,即1/27英寸),用法為在值后加以上一個后綴既可。

    非負浮點數(默認值為0.0)

    padx, pady

    組件外部在x(y)方向上填充的空間大小,默認單位為像素,可選單位為c(厘米)、m(毫米)、i(英寸)、p(打印機的點,即1/27英寸),用法為在值后加以上一個后綴既可。

    非負浮點數(默認值為0.0)

    row

    組件所置單元格的行號。

    自然數(起始默認值為0,而后累加)

    rowspan

    從組件所置單元格算起在行方向上的跨度。

    自然數(起始默認值為0)

    in_

    將本組件作為所選組建對象的子組件,類似于指定本組件的master為選定組件。

    已經pack后的組件對象

    sticky

    組件緊靠所在單元格的某一邊角。

    “n”, “s”, “w”, “e”, “nw”, “sw”, “se”, “ne”, “center”(默認為” center”)

    grid類提供了下列函數

    函數名

    描述

    slaves()

    以列表方式返回本組件的所有子組件對象。

    propagate(boolean)

    設置為True表示父組件的幾何大小由子組件決定(默認值),反之則無關。

    info()

    返回pack提供的選項所對應得值。

    forget()

    Unpack組件,將組件隱藏并且忽略原有設置,對象依舊存在,可以用pack(option, …),將其顯示。

    grid_remove()

    從網格管理器中刪除此小部件。小部件不會被銷毀,并且可以由網格或任何其他管理器重新顯示。

    3.place布局方法

    這個的幾何管理器組織放置在一個特定的位置,在他們的父widget部件.

    place()布局的通用公式為:

     復制代碼 隱藏代碼
    組件對象.place(option, …)

    名稱

    描述

    取值范圍

    anchor

    相對于擺放組件的坐標的位置

    請參閱:可能是N,E,S,W,東北,西北,東南或西南,羅盤方向指示的widget的角落,雙方默認是凈重(部件上左上角)

    height

    以像素為單位的高度.(絕對布局專用)

    像素

    width

    以像素為單位的寬度.(絕對布局專用)

    像素

    relheight

    組件相對于窗口的的高度(相對布局專用)

    0~1

    relwidth

    組件相對于窗口的的寬度(相對布局專用)

    0~1

    relx

    水平偏移為0.0和1.0之間浮動,父widget的一小部分的高度和寬度.(相對布局專用)

    0~1

    rely

    垂直偏移為0.0和1.0之間浮動,父widget的一小部分的高度和寬度.(相對布局專用)

    0~1

    x

    組件距離左上角的x坐標(絕對布局專用)

    像素

    y

    組件距離左上角的y坐標(絕對布局專用)

    像素

    place類提供了下列函數(使用組件實例對象調用)

    函數名

    描述

    place_slaves()

    以列表方式返回本組件的所有子組件對象。

    place_configure(option=value)

    給pack布局管理器設置屬性,使用屬性(option)= 取值(value)方式設置

    propagate(boolean)

    設置為True表示父組件的幾何大小由子組件決定(默認值),反之則無關。

    place_info()

    返回pack提供的選項所對應得值。

    grid_forget()

    Unpack組件,將組件隱藏并且忽略原有設置,對象依舊存在,可以用pack(option, …),將其顯示。

    location(x, y)

    x, y為以像素為單位的點,函數返回此點是否在單元格中,在哪個單元格中。返回單元格行列坐標,(-1, -1)表示不在其中

    size()

    返回組件所包含的單元格,揭示組件大小。

    組件介紹

    組件1 按鈕(button)

    用于定義GUI界面中的按鈕組件

     復制代碼 隱藏代碼
    tkinter.Button(用于存放的父組件,屬性參數...)

    具備以下屬性

     復制代碼 隱藏代碼
    anchor             設置按鈕中文字的對齊方式,相對于按鈕的中心位置
    background(bg)     設置按鈕的背景顏色
    foreground(fg)     設置按鈕的前景色(文字的顏色)
    borderwidth(bd)    設置按鈕邊框寬度
    cursor             設置鼠標在按鈕上的樣式
    command            設定按鈕點擊時觸發的函數
    bitmap             設置按鈕上顯示的位圖
    font               設置按鈕上文本的字體
    width              設置按鈕的寬度  (字符個數)
    height             設置按鈕的高度  (字符個數)
    state              設置按鈕的狀態
    text               設置按鈕上的文字
    image              設置按鈕上的圖片
     復制代碼 隱藏代碼
    import tkinter
    # 創建一個主窗口
    win = tkinter.Tk()
    # 設置標題
    win.title("Python-14")
    # 設置窗口大小和位置
    # 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 = "點我有驚喜",
                             width = 30,
                             height = 20,
                             command = func
                             )
    button2.pack()
    # 啟動主窗口
    win.mainloop()

    組件2 文本框(Entry)和多行文本(Text)

    用于定義頁面中文本的單行輸入框

     復制代碼 隱藏代碼
    #單行文本
    tkinter.Entry(用于存放的父組件,屬性參數...)
    
    #多行文本
    tkinter.Text(用于存放的父組件,屬性參數...)

    具備以下屬性

     復制代碼 隱藏代碼
    background(bg)        設置文本框的背景色
    foreground(fg)        設置文本框的前景色
    borderwidth(bd)       設置文本輸入框的邊框
    font                  設置文本框中的字體
    width                 設置文本框的寬度(字符個數)
    height                設置文本框的高度(字符個數),僅限于text
    state                 設置文本框的狀態
    selectbackground      選中文字時文本框的背景色
    selectforeground      選中文字時文字的顏色
    show                  指定文本框顯示的字符,若為*,則表示為密碼框
    textvariable          設置文本對應的變量,可以通過修改變量改變文字顯示。必須使用tkinter.IntVar() 或 tkinter.StringVar()產生的變量  entry可以使用
     復制代碼 隱藏代碼
    import tkinter
    # 創建一個主窗口
    win = tkinter.Tk()
    # 設置標題
    win.title("Python-14")
    # 設置窗口大小和位置
    win.geometry("500x500+250+150")
    # 設置一個變量,用來接收輸入控件得內容
    e1 = tkinter.Variable()
    # 輸入框控件
    # show 隱藏輸入的內容
    entry = tkinter.Entry(win,textvariable = e1,show = "@")
    entry.pack()
    # 設置輸入框內默認內容
    e1.set("請輸入用戶名")
    print(e1.get())
    #設置按鈕提交
    def func():
        print(e1.get())
    button = tkinter.Button(win,text = "提交",command = func)
    button.pack()
    # 啟動主窗口
    win.mainloop()
     復制代碼 隱藏代碼
    import tkinter
    
    win = tkinter.Tk()
    win.title("Python-14")
    win.geometry("500x500+200+100")
    
    #創建一個滾動條
    scroll = tkinter.Scrollbar()
    text = tkinter.Text(win,width = 100,height = 40)
    #顯示滾動條位置  放在右側  填充滿Y軸
    scroll.pack(side = tkinter.RIGHT,fill = tkinter.Y)
    # 文本框的顯示
    text.pack(side = tkinter.LEFT,fill = tkinter.Y)
    
    #綁定滾動條和文本框
    scroll.config(command = text.yview)
    #綁定文本框和滾動條
    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()
     復制代碼 隱藏代碼
    import tkinter
    win = tkinter.Tk()
    win.title("Python-14")
    win.geometry("500x500+200+100")
    # 創建一個輸入框
    entry = tkinter.Entry(win)
    entry.pack()
    # 創建一個文本框
    text = tkinter.Text(win,width = 50,height = 20)
    text.pack()
    
    # 寫一個讀取文件的函數
    def func():
        with open(entry.get(),"r") as f:
            content = f.read()
            text.insert(tkinter.INSERT,content)
    # 寫一個保存文件內容的函數
    def func1():
        with open(entry.get(),"w") as f:
            # 寫入的內容為 文本框內從0行0列到結束
            f.write(text.get(0.0,tkinter.END))
    
    #創建兩個按鈕
    button1 = tkinter.Button(win,text = "保存",command = func1)
    button2 = tkinter.Button(win,text = "讀取",command = func)
    button1.pack()
    button2.pack()
    
    win.mainloop()

    組件3 標簽(Lebal)

    標簽用語在頁面中顯示文字或者圖片

     復制代碼 隱藏代碼
    tkinter.Label(用于存放的父組件,屬性參數...)

    具備以下屬性

     復制代碼 隱藏代碼
    anchor                設置文本相對于標簽中心的位置
    background(bg)            設置標簽的背景色
    foreground(fg)            設置標簽的前景色
    borderwidth(bd)           設置標簽的邊框寬度
    width                 設置標簽的寬度(字符個數)
    height                設置標簽的高度(字符個數)
    text                  設置標簽中文本內容
    font                  設置標簽中文字的字體類型
    bitmap                設置標簽的現實的位圖
    image                 設置標簽中顯示的圖片
    justify               設置標簽中多行文本的對齊方式
    textvariable          設置文本對應的變量,可以通過修改變量改變文字顯示,必須使用tkinter.IntVar() 或者tkinter.StringVar()產生的變量
     復制代碼 隱藏代碼
    import tkinter
    # 創建一個主窗口
    win = tkinter.Tk()
    
    # 設置標題
    win.title("Python-14")
    
    # 設置窗口大小和位置
    # 500x500 表示窗口大小
    # +200+50 表示窗口距離電腦屏幕的左邊緣和上邊緣的距離
    win.geometry("500x500+200+50")
    """
    Label:標簽空間,可以顯示文本
    win:主窗口
    text:顯示文本內容
    bg:背景顏色
    fg:字體顏色
    font:設置字體和字體大小
    wraplength:指定text中多寬之后進行換行
    anchor:文本顯示的位置  n北 e東 s南 w西 center居中 ne se sw nw
    justify:設置換行之后的對齊方式
    """
    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"
                          )
    # 顯示標簽
    label.pack()
    # 啟動主窗口
    win.mainloop()

    組件4 單選框(Radiobutton)與復選框(Checkbutton)

     復制代碼 隱藏代碼
    thinter.Radiobutton(用于存放的父組件,屬性參數...)
    thinter.Checkbutton(用于存放的父組件,屬性參數...)

    具有以下屬性

     復制代碼 隱藏代碼
    anchor             設置組件中文字的對齊方式
    background(bg)     指定組件的背景色。    
    borderwidth(bd)    指定組件邊框的寬度。    
    bitmap             指定組件中的位圖。    
    font               指定組件中文本的字體。    
    foreground(fg)     指定組件的前 
    height             指定組件的高度。    
    image              指定組件中的圖片。    
    justify            指定組件中多行文本的對齊方式。    
    text               指定組件中的文本,可以 使用“\ n” 表示換行。    
    value              指定組件被選中后狀態的值(單選框)
    onvalue            組件勾選狀態值(復選框)
    offvalue           組件取消勾選狀態的值(復選框)
    variable           指定組件所關聯的變量。需要使用tkinter. IntVar()或者tkinter. StringVar()創建的值 
    width              指定組件的寬度。
    command            設置復選框操作的觸發命令(復選框)
     復制代碼 隱藏代碼
    # 復選框
    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中所有內容
        text.delete(0.0,tkinter.END)
    
        # 把message寫入text中
        text.insert(tkinter.INSERT,message)
    
    # 判斷復選框是否被選定 返回一個bool值
    res1 = tkinter.BooleanVar()
    # 創建一個復選框
    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()
    
    # 創建一個文本框
    text = tkinter.Text(win,width = 50,height = 20)
    text.pack()
    # 創建一個按鈕
    button = tkinter.Button(win,text = "submit",width = 10,height = 5,command = func)
    button.pack()
    win.mainloop()
     復制代碼 隱藏代碼
    #單選框
    import tkinter
    
    win = tkinter.Tk()
    win.title("Python-14")
    win.geometry("500x500+200+100")
    
    # 獲取單選框的value
    res = tkinter.StringVar()
    # 定義一個函數  來打印單選框的value值
    def func():
        print(res.get())
    
    # 創建單選框
    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()

    組件5 Frame 框架

     復制代碼 隱藏代碼
    thinter.Menu(用于存放的父組件,屬性參數...)

    具有以下屬性

     復制代碼 隱藏代碼
    background(bg)          正常的背景顏色顯示在標簽和指示器后面。
    borderwidth(bd)         指標周圍邊界的大小。默認值為2像素。
    cursor               如果將此選項設置為光標名稱(箭頭,點等),則鼠標光標將在檢查按鈕上方更改為該模式。
    height                  新框架的垂直尺寸。
    highlightbackground     當框架沒有焦點時,焦點的顏色突出顯示。
    highlightcolor          當框架具有焦點時,焦點突出顯示的顏色。
    highlightthickness      焦點亮點的厚度。
    relief                  使用默認值,relief = FLAT,檢查按鈕不會從背景中脫穎而出。您可以將此選項設置為任何其他樣式
    width                   checkbutton的默認寬度取決于所顯示的圖像或文字的大小。你可以設置此選項的字符數和checkbutton的,總是有許多字符的空間。
     復制代碼 隱藏代碼
    #布局
    import tkinter
    win = tkinter.Tk()
    win.title("Pyhton-14")
    win.geometry("500x500+200+100")
    
    # 創建一個框架
    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()
     復制代碼 隱藏代碼
    #絕對定位
    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()
     復制代碼 隱藏代碼
    #相對定位
    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()
     復制代碼 隱藏代碼
    #表格布局
    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 = "小藍",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()

    事件綁定

    之前能夠觸發操作的只有2個組件,一個按鈕一個菜單的選項卡 command屬性 設置操作對應的函數

    鼠標事件類型

     復制代碼 隱藏代碼
    <Button-1>          按下了鼠標左鍵        <ButtonPress-1>
    <Button-2>          按下了鼠標中鍵        <ButtonPress-2>
    <Button-3>          按下了鼠標右鍵        <ButtonPress-3>
    <Enter>             鼠標進入組件區域
    <Leave>             鼠標離開組件區域
    <ButtonRelease-1>   釋放了鼠標左鍵
    <ButtonRelease-2>   釋放了鼠標中鍵
    <ButtonRelease-3>   釋放了鼠標右鍵
    <B1-Moion>          按住鼠標左鍵移動
    <B2-Moion>          按住鼠標中鍵移動
    <B3-Moion>          按住鼠標右鍵移動 
    <Double-Button-1>   雙擊鼠標左鍵
    <Double-Button-2>   雙擊鼠標中鍵
    <Double-Button-3>   雙擊鼠標右鍵
    <MouseWheel>        滾動鼠標滾輪

    鍵盤事件類型

     復制代碼 隱藏代碼
    <KeyPress>                 表示任何鍵盤按下
    <KeyPress-A>               表示按下鍵盤A鍵    A可以設置為其他的按鍵
    <Alt-KeyPress-A>           表示同時按下Alt和A鍵    A可以設置為其他的按鍵
    <Control-KeyPress-A>       表示同時按下Ctrl和A鍵    A可以設置為其他的按鍵
    <Shift-KeyPress-A>         表示同時按下Shift和A鍵    A可以設置為其他的按鍵
    <Double-KeyPress-A>        表示雙擊鍵盤A鍵    A可以設置為其他的按鍵
    <Lock-KeyPress-A>          表示開啟大寫之后鍵盤A鍵    A可以設置為其他的按鍵
    <Alt-Control-KeyPress-A>   表示同時按下alt+Ctrl和A鍵    A可以設置為其他的按鍵
    
    注意:鍵盤事件除了entry和text組件其他組件的事件最好綁定在主界面上

    事件對象中包含的信息

     復制代碼 隱藏代碼
    x,y              當前觸發事件時鼠標相對觸發事件的組件的坐標值
    x_root,y_root    當前觸發事件時鼠標相對于屏幕的坐標值
    char             獲取當前鍵盤事件時按下的鍵對應的字符
    keycode          獲取當前鍵盤事件時按下的鍵對應的的ascii碼
    type             獲取事件的類型
    num              獲取鼠標按鍵類型  123 左中右
    widget           觸發事件的組件
    width/height     組件改變之后的大小和configure()相關

    窗口和組件相關事件類型

     復制代碼 隱藏代碼
    Activate         當中組件由不可以用變為可用時  針對于state的變值
    Deactivate       當組件由可用變為不可用時觸發
    Configure        當組件大小發生變化時觸發
    Destory          當組件銷毀時觸發
    FocusIn          當組件獲取焦點時觸發 針對于Entry和Text有效
    Map              當組件由隱藏變為顯示時觸發
    UnMap            當組件由顯示變為隱藏時觸發
    Perproty         當窗口屬性發生變化時觸發

    事件綁定函數

    組件.bind('事件類型',事件函數)

     復制代碼 隱藏代碼
    #為一個組件綁定一個操作

    組件.bind_class('組件類型','事件類型',事件函數)

     復制代碼 隱藏代碼
    #為一類組件綁定一個操作
    #組件類型就是創建組件的方法名  例如按鈕組件:Button

    組件.bind_all('事件類型',事件函數)

     復制代碼 隱藏代碼
    #為所有組件綁定一個操作(所有操作都會當作對主界面的操作)        
     復制代碼 隱藏代碼
    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()

    練習

    文件對比

     復制代碼 隱藏代碼
    import sys
    import difflib
    
    # sys.argv : 獲取外部運行時的命令  返回一個列表
    # sys.argv : 獲取外部運行時的命令  返回一個列表
    # print(sys.argv)
    #
    # file1 = sys.argv[1]
    # file2 = sys.argv[2]
    # print(file1)
    # print(file2)
    
    # difflib
        # 創建比對對象  HtmlDiff()  生成一個html文件
        # 比對內容     make_file()
     復制代碼 隱藏代碼
    import sys
    import difflib
    
    # sys.argv : 獲取外部運行時的命令  返回一個列表
    # sys.argv : 獲取外部運行時的命令  返回一個列表
    # print(sys.argv)
    
    # difflib
        # 創建比對對象  HtmlDiff()  生成一個html文件
        # 比對內容     make_file()
    
    first_path = sys.argv[1] # 獲取第一個要比對的文件名稱
    next_path = sys.argv[2]  # 獲取第二個要比對的文件名稱
    
    # 分別讀取兩個文件
    with open(first_path,"r") as f:
        first_list = f.readlines()
    with open(next_path,"r") as f:
        next_list = f.readlines()
    
    # 生成比對對象
    diff = difflib.HtmlDiff()
    html = diff.make_file(first_list,next_list)
    with open("diff.html","w") as f:
        f.write(html)
     復制代碼 隱藏代碼
    # win+R  cmd   cd到文件當前地址    
    # python  文件名.py  文件1  文件2

    計算器

     復制代碼 隱藏代碼
    from tkinter import *
    root = Tk()
    root.geometry('250x380')
    root.title('計算器')
    frame_show = Frame(width=300,height=150,bg='#dddddd')
    
    #頂部區域
    
    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()
    
    #是否按下了運算符
    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
    
    #運算
    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
        #獲取當前界面的數值準備運算
        calc.append(v.get())
        print(calc)
        #組成運算字符串
        calcstr = ''.join(calc)
        #檢測最后一位是否是運算符,是就刪除
        if calcstr[-1] in '+-*/':
            calcstr = calcstr[0:-1]
        #print(calcstr)
        #運算操作
        result = eval(calcstr)
        #顯示結果
        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
    
    #正負操作
    def fan():
        strnum = v.get()
        if strnum[0] == '-':
            v.set(strnum[1:])
        elif strnum[0] != '-' and strnum != '0' :
            v.set('-'+strnum)
    
    #按鍵區域
    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()



    ======================

    帖子很長,收藏下來必然某天用得到。筆記是我自己整理并一直在使用的。有錯誤請反饋,謝謝。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有