日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tkinter 1. 基本介绍

發布時間:2023/12/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tkinter 1. 基本介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹

Tkinter 是 Python 的標準 GUI 庫。Python 使用 Tkinter 可以快速的創建 GUI 應用程序。由于 Tkinter 是內置到 Python 的安裝包中,所以只要安裝好 Python 之后就能使用了,無需另外安裝。Tkinter中的ttk對一些控件進行了美化,說是美化其實還是一樣丑,所以不會去介紹相同的,只會介紹一些新增的控件。


控件種類

tkinter 控件種類

  • Button 按鈕
  • Checkbutton 多選框按鈕
  • Entry 輸入框
  • Frame 框架
  • Label 標簽
  • LabelFrame 標簽框架
  • Menu 菜單
  • PanedWindow 分欄窗口
  • Radiobutton 單選按鈕
  • Scale 滑塊
  • Scrollbar 滾動條
  • Spinbox 輸入框(指定數據范圍,類型的輸入框)
  • Text 文本框
  • Listbox 列表框
  • Canvas 畫布
  • tkinter.ttk 控件種類(除了上面那些,還有下面這些新增的控件)

  • Combobox 下拉列表
  • Notebook 標簽頁
  • Progressbar 進度條
  • Treeview 樹狀瀏覽窗口
  • Separator 分割線
  • Sizegrip 拉伸窗口大小的按鈕

  • 基本框架

    import tkinter as tkroot = tk.Tk() # 主窗口對象# 注意,下面的x不是乘號是小寫字母x root.geometry('600x300+100+100') # 設置窗口的大小,以及距離屏幕左上角x軸,y軸的距離。root.title('test app') # 設置窗口的標題###### 添加控件,設置控件屬性,綁定回調函數root.mainloop()

    添加控件的基本流程

  • 新建控件,通常第一個是master參數,代表要把這個控件放在哪個控件上
  • 在新建時可以往里面添加參數,設置一些控件屬性,如:背景色,字體顏色,高,寬等,也可以在后期設置使用config方法修改/設置屬性。
  • 把新建的控件放好,控件的布局用pack, place, grid
  • 實例

    root = tk.Tk() # 主窗口 root.geometry('600x400+200+200') tk.Label(root, # 第一個參數就是master,表明要把這個控件放在master里面。textvariable=mystr,width=20, # 設置屬性height=3,bg='#e33e31').pack() # pack布局該控件在主體中的位置。 root.mainloop()

    控件與變量的關系

    通過一些特定參數,某些組件(如文本輸入組件)的當前設置可直接與應用程序的變量關聯。這些參數包括 variable 、 textvariable 、 onvalue 、 offvalue 、 value。這種關聯是雙向的:只要這些變量因任何原因發生變化,其關聯的部件就會更新以反映新的參數值。

    現已經定義了很多有用的 Variable 子類: StringVar 、 IntVar 、DoubleVar 和 BooleanVar。

    • 調用 get() 方法可以讀取變量的當前值;
    • 調用 set() 方法則可改變變量值。

    實例

    簡單的說,像textvariable這樣的參數,它和變量mystr是雙向綁定的,所以對mystr設置了值,也相當于對textvariable設置了值,從mystr獲得的值,也相當于從textvariable獲得值。

    import tkinter as tkroot = tk.Tk() root.geometry('600x400') mystr = tk.StringVar() mystr.set('one')lbl = tk.Label(root,textvariable=mystr) lbl.pack()def change():v = mystr.get()if v == 'one':mystr.set('two')elif v == 'two':mystr.set('one')btn = tk.Button(root,text='Change',command=change) btn.pack()root.mainloop()

    控件通用參數取值

    控件中有很多參數功能都是一樣的,為了化繁為簡,把一些通用參數在這邊列出來,后面就只提每個控件比較獨特的參數。

    顏色相關的

    • background/bg 背景顏色
    • foreground/fg 前景色,字體顏色
    • activebackground 激活狀態的背景色(比如:點擊時)
    • activeforeground 激活狀態的前景色
    • highlightbackground 框架frame沒有獲得焦點時,邊框的顏色
    • highlightcolor 框架frame獲得焦點時,邊框的顏色
    • highlightthickness 高亮邊框的寬度,默認是0,所以當你設置了上面兩項,而沒有任何變化,說明邊框寬度0,你看不到,設置一個整數,比如5,就可以看得到了。(使用tab鍵盤切換控件時,控件外圍提示框的寬度,如下圖黑色邊框)
    • disabledforeground 控件state=disabled 時設置字體顏色
    • disabledbackground 控件state=disabled 時設置背景色

    bd/borderwidth

    邊框的寬度.

    height / width

    控件的高、寬

    takefocus

    用戶是否可以使用tab鍵移動到這個部件,True or False

    anchor 錨定點

    "n"?、"ne"?、"e"?、"se"?、"s"?、"sw"?、"w"?、"nw"?和?"center"

    cursor 當光標進入控件時的樣式

    X_cursor arrow based_arrow_down based_arrow_up boat bogosity bottom_left_corner bottom_right_corner bottom_side bottom_tee box_spiral center_ptr circle clock coffee_mug cross cross_reverse crosshair diamond_cross dot dotbox double_arrow draft_large draft_small draped_box exchange fleur gobbler gumby hand1 hand2 heart icon iron_cross left_ptr left_side left_tee leftbutton ll_angle lr_angle man middlebutton mouse none pencil pirate plus question_arrow right_ptr right_side right_tee rightbutton rtl_logo sailboat sb_down_arrow sb_h_double_arrow sb_left_arrow sb_right_arrow sb_up_arrow sb_v_double_arrow shuttle sizing spider spraycan star target tcross top_left_arrow top_left_corner top_right_corner top_side top_tee trek ul_angle umbrella ur_angle watch xterm

    bitmap

    內置已命名的位圖有八個:'error'、?'gray25'?、'gray50'?、'hourglass'、?'info'?、'questhead'?、'question'?、'warning'?。若要指定位圖的文件名,請給出完整路徑,前面加一個?@,比如?"@/xxx/xxx.bit"。

    image

    指定要在小部件中顯示的圖像,使用 img = tkinter.PhotoImage(file='xxx.gif'),加載圖片

    font

    Tk 采用一串名稱的格式表示字體,例如? font=("Microsoft Yahei",20,'italic','bold') 。正數的字體大小以點為單位,負數的大小以像素為單位。

    justify對齊方式

    "left"?、?"center"?、?"right"?和?"fill"?。

    distance

    屏幕距離可以用像素或絕對距離來指定。像素是數字,絕對距離是字符串,后面的字符表示單位:c?是厘米,i?是英寸,m?是毫米,p?則表示打印機的點數。例如,3.5 英寸可表示為?"3.5i"。

    relief

    決定了組件的邊框樣式。 合法值包括:"raised"、?"sunken"?、"flat"?、"groove"?和?"ridge"?。

    scrollcommand

    有xscrollcommand 和 yscrollcommand 分別是給控件設置水平滾動條和垂直滾動條,使用scrollbar.set設置滾動條

    wrap

    一個單詞還沒有輸入完就要換行了。如果設置成char沒輸入完的部分會另起一行,如果設置成word就會整個單詞跳到下一行。(只能是以下值之一:"none"?、?"char"?、?"word"。)

    wraplength

    設置每行都最大長度

    state

    控件的狀態: active, disabled, or normal

    padx,pady

    在控件里面設置代表添加內邊距
    在pack()、grid()里面設置代表添加外邊距

    compound

    圖片和文字的排布方式;none, bottom, top, left, right, center,如果選擇top,圖片就會在文字上方。

    underline

    下劃線,underline=0代表在第一個字符下添加下劃線。


    控件的布局方式

    place()

    在一個坐標位置上放置控件
    參數:
    x
    y
    anchor (錨定點: n, ne, e, se, s, sw, w, nw, or center)

    grid()

    用行列的形式來布局控件
    參數
    row 第幾行
    rowspan 跨多少行
    column 第幾列
    columnspan 跨多少列
    ipadx - 水平內邊距
    ipady - 垂直內邊距
    padx - 水平外邊距
    pady - 垂直外邊距
    sticky(在單元格里面的位置:‘n’, ‘s’, ‘w’, ‘e’, )

    pack()

    參數

    anchor (錨定點: n, ne, e, se, s, sw, w, nw, or center)expand=bool - 是否隨著父控件拉伸而拉伸fill=NONE or X (填充滿水平方向)or Y (填充滿垂直方向)or BOTH(填充滿水平和垂直方向)ipadx - 水平內邊距ipady - 垂直內邊距padx - 水平外邊距 pady - 垂直外邊距side=TOP or BOTTOM or LEFT or RIGHT - 放置的位置


    Toplevel

    tkinter中的窗口是一個隱含的對象,最低一層實際上是Toplevel,構建窗口就是實例化一個Toplevel控件。

    Toplevel可設置的

    項目說明
    title(str)設置窗口的標題
    iconbitmap(ico_path)設置窗口的圖標,不知道為什么window可以設置,Mac不行,推薦ico x32的尺寸
    geometry(str)設置窗口的大小,以及距離左上角的x軸,y軸距離
    maxsize(width=None, height=None)設置窗口的最大尺寸
    minsize(width=None, height=None)設置窗口的最小尺寸
    resizable(width=None, height=None)設置窗口的可拉伸尺寸,當都等于0,表示禁止拉伸
    attributes(‘-alpha’,1.0)設置窗口的透明度,取值再0-1之間,還有其他可設置,但是window和Mac之間不通用,不說了。
    configure(屬性)配置窗口的一些屬性,下面表格中列出
    mainloop()主循環,執行則相當于啟動窗口,必要

    configure可設置的屬性

    屬性說明
    bd/borderwidth邊框寬,默認是0,當你設置了邊框寬,如果relief是flat,你是看不出變化的
    menu設置菜單Menu對象
    relief邊框樣式,可選的FLAT,SUNKEN,RAISED,GROOVE,RIDGE默認為FLAT
    background/bg背景色,'#1BA135'這樣的RGB
    colormap設置需要是Colormap的實例,
    container設置需要是Container的實例
    cursor鼠標光標在其中的位置
    height高度
    width寬度
    highlightbackground要高亮的背景色
    highlightcolor要高亮的顏色
    highlightthickness高亮的寬度
    padx水平padding 內邊距
    pady垂直padding 內邊距
    takefocus指示用戶可以使用tab鍵移動到這個部件

    relief效果圖

    實例

    import tkinter as tk import sys import osui_dir = os.path.dirname(os.path.realpath(sys.argv[0])) ico_path = os.path.join(ui_dir,'ico/logox32.ico')root = tk.Tk()# 注意,下面的x不是乘號是小寫字母x root.geometry('600x300+100+100') # 設置窗口的大小,以及距離屏幕左上角x軸,y軸的距離。 root.iconbitmap(ico_path) root.maxsize(width=600,height=300) root.minsize(width=500,height=200) root.configure(borderwidth=50,bg='#1BA135',relief='sunken')root.title('test app') # 設置窗口的標題root.mainloop()

    總結

    以上是生活随笔為你收集整理的Tkinter 1. 基本介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。