發表文章

tkinter翻頁實作

最簡單的tkinter模組中 只需要三行就可以開一個視窗 import Tkinter as tk root = tk.Tk() root.mainloop()  第一行是匯入tkinter模組並且取個小名 第二行是開一個視窗並且存在root當作最基底的變數 第三行用mainloop保持視窗開啟, 不會執行一下就關掉 今天為了設計不同的視窗並且達成翻頁的功能, 讓我們來看看不同的寫作方法 import Tkinter as tk class firstpage(tk.Frame):      def __init__(self, master=None):         mw=tk.Tk()         tk.Frame.__init__(self, master=mw)  app = firstpage()  app.mainloop()  為了設計不同的頁面採用class的寫作方法 卻不小心把tk.Tk()包進class中 結果mainloop一直跑的是主頁 這會導致開第二頁的時候主頁關不起來 至於為什麼Frame在class內要init在root就不用 不要問我, 我也不知道 # -*- coding: utf-8 -*-  import Tkinter as tk root = tk.Tk() class mainpage(object):     def __init__(self, master=None):         self.root = master          self.page = tk.Frame(self.root)          self.page.pack()         sel...

python顯示中文

# -*- coding: utf-8 -*- #頁首要有utf8的標籤 print u"我是天才" #中文前面要+u print "我是天才" #這樣的話出來就是亂碼 以下為輸入跟輸出的範例 # -*- coding: utf-8 -*- import Tkinter as tk win=tk.Tk() def buttonclick():     name=entry.get().encode('utf-8')     result.config(text= name) #要從輸入框get一個中文輸入, 後面要加上encode('utf-8') entry=tk.Entry(win) entry.grid(column=1,row=0) label=tk.Label(win, text=u"輸入名字:")   #顯示中文前面都要加u label.grid(column=0,row=0)     result=tk.Label(win, text=u"名字")   #顯示結果的標籤 result.grid(column=1,row=1) button=tk.Button(win, text=u"名字叫做",command=buttonclick) button.grid(column=0,row=1)     #顯示元件 win.mainloop()

python的模組module匯入語法

如果有個檔案mymath.py如下 pi=3.14 def factorial(n):     result=1     for i in range(1,n+1):         result=result*i     return result 以module的方法來取用檔案mymath.py有三種方法 1. import mymath來匯入     取用pi可以用mymath.pi的語法來取用     取用函數則用mymath.factorial(n)來取用 2.from mymath import *     用此方法則pi跟factorial()都變成全域物件     但是缺點是容易跟程式的本文產生衝突或者跟其他module產生衝突 3.import mymath as m     取用pi可以用m.pi的語法來取用     取用函數則用m.factorial(n)來取用