iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 27
0
Software Development

從零開始的Python練成記系列 第 27

[Day 27]GUI程式設計再一波:彈出視窗與使用者輸入欄位

  • 分享至 

  • xImage
  •  

對於今天的GUI介面開發,我決定再重開一個視窗設計,這樣才能讓大家更容易知道今天的程式碼在寫些什麼 (其實是自己不想看到亂無章法的程式碼)


彈出視窗MessageBox,其實就好比在使用Microsoft Office系列產品時,若有對檔案內容進行變更卻沒有存檔的時候,就會跳出來詢問「是否要儲存未儲存的變更」的那個視窗,那就直接開始吧

from tkinter import *
from tkinter import messagebox
"""
在python 2.*版本若要將彈出視窗導入到類別裡面的話,是import "tkMessageBox"
而如果跟我一樣是使用python 3.*版本的話才是import "messagebox"
"""
top = Tk()
top.title("Main sample")
top_scale = Canvas(height=150, width=300)

def pop_up():
    #我在這裡設計一個功能,也就是為了彈出視窗所設計的功能
    messagebox.showinfo("Pop up", "Hello, iTalthon")
    #括號裡面的兩個字串分別代表彈出視窗的標題(title)與要顯示的文字(index)

button_pop = Button(top, text="Try me plz", command= pop_up)
#這裡就透過一個按鍵來驅使這個彈出視窗的產生
button_pop.pack(side=BOTTOM)

top_scale.pack()
top.mainloop()

https://ithelp.ithome.com.tw/upload/images/20191013/201209856gRcaU6gNZ.jpg


使用者輸入欄位Entry這個功能並不少見,像瀏覽器裡的網址列就是一個很好的例子,用來記錄使用者的輸入或是在網頁跳轉的時候紀錄現在網頁的網址...等,一樣就來看看程式碼

#entry功能其實就包含在tkinter裡面,所以像下面一樣將整個tkinter導入就不用再去宣告有的沒的
from tkinter import *
from tkinter import messagebox
top = Tk()
top.title("Main sample")

def pop_up():
    messagebox.showinfo("Pop up", "Hello, "+ent1.get())
    #我在這個彈出視窗的方法稍做了修改,讓彈出視窗的文字可以透過輸入欄位的資料進行變化
    #若要得到entry的資料,就要透過get()來取得資料

lbl1 = Label(top, text="Enter your name:")
#在這裡做一個簡單的說明欄位,讓人知道要做什麼
lbl1.pack(side=LEFT)
ent1 = Entry(top, bd=5)
#這個欄位就是用來做使用者輸入紀錄的地方
ent1.pack(side=LEFT)

button_pop = Button(top, text="Try me plz", command=pop_up)
button_pop.pack(side=RIGHT)
top.mainloop()

https://ithelp.ithome.com.tw/upload/images/20191013/20120985weAC4ylcaM.jpg
接下來的幾天應該也是瞄準這個領域多加發揮


上一篇
[Day 26]對GUI開發進行更進一步的學習:各式按鍵
下一篇
[Day 28]今天的我吃錯藥了:用GUI介面開發簡易計算機
系列文
從零開始的Python練成記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言