2021年11月8日 星期一

Python-Gui_Combobox元件_計算電力每月耗能

 透過tkinter Gui視窗化使用Combobox元件,增加下拉選擇及判斷使用。


預設選擇使用:Combobox.current(0)(元件名.指定預設選擇項)

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import tkinter as tk
from tkinter import ttk

# 設定視窗。
window = tk.Tk()
# 設定視窗標題。
window.title('Electricity')
# 設定視窗大小。
window.geometry('330x270')

# 載入Enter事件。
def Enter_key(event):
button_event()

# Button按鈕事件。
def button_event():
# 取得Entry及Combobox,上的元件文字。
Input_1= Entry_1.get()
Input_2= Entry_2.get()
Selest_1 = Combobox_1.get()
# 清除Text_元件內容。
Text_1.delete('1.0', 'end')
#判斷是Minute還是Hour,計算方式不同。
if Selest_1 == 'Minute':
Use_1=round(int(Input_1)/60*int(Input_2))
elif Selest_1 == 'Hour':
Use_1 = round(int(Input_1)*int(Input_2))
#在Text元件中顯示計算結果。
Text_1.insert(tk.INSERT,'電器電能:' + Input_1+ 'W\n')
Text_1.insert(tk.INSERT,'每日使用:' + Input_2 +' '+Selest_1+'\n')
Text_1.insert(tk.INSERT,"使用一個月約"+str(Use_1 * 30 / 1000)+"度電")

# 設定Label標籤參數(bg背景顏色、font字型格式、width宽度15個字元、高度1個字元)
Label_1 = tk.Label(window, bg='yellow', text='設備瓦數(W)', font=('Arial', 10), width=8, height=1, padx=10)
# 設定排版方式在第一排靠左。
Label_1.grid(column=0, row=0, sticky='w')

# 設定Label標籤參數(bg背景顏色、font字型格式、width宽度15個字元、高度1個字元)
Label_2 = tk.Label(window, bg='yellow', text='每日使用時間', font=('Arial', 10), width=8, height=1, padx=10)
# 設定排版方式在第二行第一排靠左。
Label_2.grid(column=1, row=0, sticky='w')

# 設定Entry輸入方框參數(font字型格式、width宽度5個字元)
Entry_1 = tk.Entry(window, font=('Arial', 10), width=5)
# 設定排版方式在第二排。
Entry_1.grid(column=0, row=1)

# 設定Entry輸入方框參數(font字型格式、width宽度5個字元)
Entry_2 = tk.Entry(window, font=('Arial', 10), width=5)
# 設定排版方式在第二行第二排。
Entry_2.grid(column=1, row=1)

# 設定Combobox,內容為Hour跟Minute。
Combobox_1 = ttk.Combobox(window,values=['Hour','Minute'],width=5)
#Combobox元件預設值,Minute。
Combobox_1.current(1)
# 設定排版方式在第三行第二排。
Combobox_1.grid(column=2, row=1)

# 設定Text元件,為顯示結果使用。
Text_1 = tk.Text(window, font=('Arial', 10),width=25,height=10)
#設定排版方式在第一排且離左邊距離5,離上排10。
Text_1.grid(column=0, row=3,columnspan=3,padx=5,pady=10)

# 設定Button按鈕及觸發事件button_event。
Button_1 = tk.Button(window, text='送出', command=button_event)
# 設定排版方式在第三排。
Button_1.grid(column=3, row=1,padx=15)

# 建立Enter事件。
window.bind('<Return>', Enter_key)
window.mainloop()

結果:

         



沒有留言:

張貼留言

Ubuntu-Journalctl查看系統日誌

 近期所使用Ubuntu系統24小時開著,進行跑Python程式使用,但跑個2~3天,排程就無法正常寄信,SSH連線也無法正常連線,經查看後為wifi連線問題,暫先使用腳本排程進行重開wifi。 以下為記錄Journalctl指令。 使用Journalctl來從系統日誌上查看看問...