Python+tkinter使用爬蟲數據開發實例項目過程實錄【3】tkinter控件細節設置

基本的框架佈局好,就可以添加控件了,該實例涉及控件:輸入框、透明背景圖片、按鈕、單選框、樹形菜單(作爲表格使用)、多行文本框(及文本框中添加控件)、標籤、下拉菜單、滾動條

一、輸入框

1、監控編輯狀態,實現每輸入一個字符時,都可以觸發相應事件。
這個處理其實和輸入框無關,而是通過監控,輸入框綁定的StringVar類型對象值變化,來實現。比如下面這個Entry_query輸入框,綁定了entry_var對象
entry_var = tk.StringVar()
Entry_query = ttk.Entry(root, textvariable=entry_var)
監控entry_var對象的值變化可以這樣寫
entry_var.trace("w", lambda name, index, mode, arg = entry_var: onEditChange(arg))
# 這樣只要entry_var的值發生變化,就會執行onEditChange
2、監控輸入框是否按下回車鍵。
只要綁定事件<Return>就可以了
Entry_query.bind("<Return>", onEditEnter)
# 按下回車,就會執行onEditEnter

自動顯示、隱藏清空按鈕效果演示
在這裏插入圖片描述


二、按鈕

1、動態創建按鈕,並動態傳參,這個之前有單獨發一篇文章,要了解的可以去看看
https://blog.csdn.net/wosind/article/details/100071232
2、配合動態創建按鈕,就可以把所有按鈕處理的業務,集中組織到一個方法中
在這裏插入圖片描述


三、樹形菜單(作爲表格形態)

1、兩個和表格相關的事件綁定
<<TreeviewSelect>>:菜單項切換,對應表格就是行的選中。
<Double-Button-1>:雙擊事件,可以作爲行雙擊
在這裏插入圖片描述
2、實現點擊標題,進行排序或其他業務邏輯。類似按鈕動態傳參,heading創建的時候綁定一個匿名函數

tree_qlist.heading('', text='',command=lambda arg=x['col']: onListHeadClicked(arg))

四、多行文本框(Text)

1、在文本中插入控件,比如按鈕,標籤之類的
在這裏插入圖片描述
在這裏插入圖片描述


五、標籤(Lable)

在這裏插入圖片描述
在這裏插入圖片描述

配合4個事件,完成上面的效果
<Enter>:鼠標移入
<Leave>:鼠標移出
<Button-1>:鼠標點左鍵
<Button-3>:鼠標點擊右鍵


五、滾動條

滾動條使用率還比較高,不過比較簡單,照例子進行必要的配置就可以了,幾個屬性也好理解

scr1 = ttk.Scrollbar(self.frm_left, orient=tk.VERTICAL)
self.tree_qlist.configure(yscrollcommand=scr1.set)
scr1['command'] = self.tree_qlist.yview
scr1.grid(row=1, column=1, sticky=tk.NS)

本文主要羅列了一些重點,具體的一些實現原理以及操作步驟,內容還是比較多的,找時間我會錄製一個視頻,配合講解一下。如果有具體的問題,也歡迎留言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章