close

來說說tkinter!

說它的來由很生硬,我們就跳過不談,我們來說說tkinter主要是做什麼的?

前面提到,在軟體設計上,有一個很重要的一環,就是若您設計一個友善的使用者介面,就讓用戶有好的感覺,事情可以說就成功了一半,也許有些硬底工程師不是這麼看,但我保守地說,最起碼事情有一個好的開始吧。

那為什麼是tkinter呢?用Python內建的模組tkinter來設計UI有甚麼優勢呢?

  • 它很直覺,白話一點說,很容易就上手實作。
  • 它可以在不同的平台上執行,專業的說,設計出來的東西可以跨平台執行(Linux/Windows/Mac)。
  • 它仍在改良進步中,ttkinter就是tkinter的美化版,代表還在進步。
  • 它可以讓你的程式與GUI介面一體成形,在Python使用上很簡單的將tkinter匯入,也就是import  tkinter就可馬上開始使用

在開始前,先描述一下tkinter就其可用的部件(widget),大致上可將這些部件分為幾類,只要您善加利用,即便是每一類別您只要會一兩種,基本上大概就可以滿足所有的需求,當然,若您瞭解所有的部件(widget)的用途,設計起來的效果會更專業。

關於這些部件(widget)的分類及項目如下:

containers widgets(容器部件): frame toplevel paned window

buttons widgets(按鈕部件): button radiobutton checkbutton (checkbox) menubutton (combobox)

text widgets(文字部件): label labelframe message text

entry widgets(輸入部件): scale scroll listbox slider spinbox entry (singleline) text (multiline) and canvas (vector and pixel graphics)

另外tkinter又開發出來7種衍生出來的部件,讓我們在運用上更好利用因應不同的場景及用途:

tk_optionMenu, tk_dialog, tk_messageBox, tk_getOpenFile, tk_getSaveFile, tk_chooseColor, tk_chooseDirector

後來美化的版本ttkinter

ttk 模組包含了 17 種元件, 其中的 11 種是 Tkinter 原本已經有的 :

Frame LabelLabelframeButtonRadiobuttonCheckbuttonMenubuttonEntryScaleScrollbarPanedwindow

另外 6 種是 ttk 推出的新元件 :

ComboboxNotebookProgressbarSeparatorSizegrip

Treeview

若您使用ttkinter後,可以比較出它較原本的tkinter更漂亮一些

運用Python內建的tkinter模組,快速設計GUI用戶介面(建立友善的使用者互動介面)

友善的互動介面很重要

大致上,我們在設計GUI介面的流程大致上如下面的sop

  • 首先建立一個使用者看的到的視窗物件
  • 陸續在視窗中加入各項控制互動元件(也是物件)
  • 依每個部件的功能,讓各個物件產生效果及驅動物件背後的工作

大致上學習的過程如下:

  • 了解並學習tkinter可用的部件的特定用途
  • 運用其函數及參數定義您可用的視覺或示意效果
  • 加入互動效果,也就是加入程式邏輯,讓他完成互動後被賦予的任務

之後,我會提供幾個範例(運用常用的幾個widget),因不同的應用範例,來說明設計的過程及產生的效果

arrow
arrow

    阿丹 發表在 痞客邦 留言(0) 人氣()