2017年1月21日 星期六

Tkinter:如何指定視窗的位置

使用Tkinter寫視窗程式,是可以指定視窗出現的位置的。我們可以利用geometry()這個member function:
import tkinter as tk
root = tk.Tk()
root.geometry()   # 會顯示例如   300x200+100+50  的字串,意思是 寬=300、高=200、x=100、y=50
root.geometry('300x200+10+5') # 寬高不變,(x, y) 改成 (10, 5)
也可以寫一個小function來處理:
def setxy(w, x, y):
    w.geometry('{0}+{1}+{2}'.format(w.geometry().split('+')[0], x, y))

2017年1月19日 星期四

如何設定python程式檔的編碼?

在我們的python程式當中,難免會使用到中文字串。我們的程式碼,常見的會是big5(cp950)編碼或是utf-8編碼。我們需要在程式的開始註明檔案的編碼,python才能正確處理中文字串。

註明檔案編碼的方式,是在程式碼「開頭兩行的其中一行」註明,該行格式簡單來說是:
  1. # 或是 [一些空白字元] # 開頭
    • 也就是說,該行只能有註釋,而註釋符號 # 之前可以有一些空白
  2. 包含字串  「coding: utf-8」 或 「coding: cp950」
    • python看到「coding:」之後,會抓取後面的詞當作是編碼
再強調一次,這一行編碼註記必須出現在原始碼的前兩行。

python是用regular expression來處理該行的。所以,如果你要使用 cp950,以下提供一些範例:
  • # -*- coding: cp950 -*-
  • # encoding: cp950
  • # coding: cp950
  • # I love coding: cp950 and you?
  • # ccccccccccccccccccoding: cp950 0000000000000
不過,如果程式要讓人家容易看懂,還是不要太搞怪比較好。