- PyGTK 教程
- PyGTK - 首頁
- PyGTK - 簡介
- PyGTK - 環境配置
- PyGTK - Hello World
- PyGTK - 重要類
- PyGTK - 視窗類
- PyGTK - 按鈕類
- PyGTK - 標籤類
- PyGTK - 輸入框類
- PyGTK - 訊號處理
- PyGTK - 事件處理
- PyGTK - 容器
- PyGTK - 箱式容器類
- PyGTK - 按鈕盒類
- PyGTK - 對齊類
- PyGTK - 事件盒類
- PyGTK - 佈局類
- PyGTK - 組合框類
- PyGTK - 切換按鈕類
- PyGTK - 複選框類
- PyGTK - 單選按鈕類
- PyGTK - 選單欄、選單和選單項
- PyGTK - 工具欄類
- PyGTK - 調整類
- PyGTK - 範圍類
- PyGTK - 刻度類
- PyGTK - 捲軸類
- PyGTK - 對話方塊類
- PyGTK - 訊息對話方塊類
- PyGTK - 關於對話方塊類
- PyGTK - 字型選擇對話方塊
- PyGTK - 顏色選擇對話方塊
- PyGTK - 檔案選擇對話方塊
- PyGTK - 筆記本類
- PyGTK - 框架類
- PyGTK - 帶比例的框架類
- PyGTK - 樹狀檢視類
- PyGTK - 分割窗格類
- PyGTK - 狀態列類
- PyGTK - 進度條類
- PyGTK - 視口類
- PyGTK - 滾動視窗類
- PyGTK - 箭頭類
- PyGTK - 圖片類
- PyGTK - 繪圖區類
- PyGTK - 旋轉按鈕類
- PyGTK - 日曆類
- PyGTK - 剪貼簿類
- PyGTK - 標尺類
- PyGTK - 定時器
- PyGTK - 拖放
- PyGTK 有用資源
- PyGTK - 快速指南
- PyGTK - 有用資源
- PyGTK - 討論
PyGTK - 日曆類
PyGTK 工具包中的日曆小部件顯示一個簡單的日曆,一次顯示一個月的檢視。更改月份和年份的導航控制元件預設顯示。顯示選項可以適當地配置。
月份屬性的值介於 0 到 11 之間,日期屬性的值介於 1 到 31 之間。
有一個簡單的建構函式來建立一個 gtk.Calendar 物件:
cal = gtk.Calendar()
預設顯示樣式顯示當前月份和年份以及星期名稱。
gtk.Calendar 類具有以下方法:
Calendar.select_month(mm,yy) — 這將日曆顯示更改為指定的mm和yy。
Calendar.select_day(dd) — 當dd的值介於 1 和 31 之間時,這將在日曆上選擇指定的dd。如果dd為 0,則當前日期選擇將被移除。
Calendar.display_options() — 這將日曆顯示選項設定為flags指定的值。可能的顯示選項是以下選項的組合:
| gtk.CALENDAR_SHOW_HEADING | 指定應顯示月份和年份。 |
| gtk.CALENDAR_SHOW_DAY_NAMES | 指定應顯示三個字母的星期描述。 |
| gtk.CALENDAR_NO_MONTH_CHANGE | 阻止使用者使用日曆切換月份。 |
| gtk.CALENDAR_SHOW_WEEK_NUMBERS | 顯示當前年份的每個星期的數字,位於日曆左側。 |
| gtk.CALENDAR_WEEK_START_MONDAY | 將日曆星期從預設的星期日開始改為星期一。 |
Calendar.get_date() — 這將檢索日曆的當前年份、月份和選定日期數字作為元組 (year, month, day)。
gtk.Calendar 小部件發出以下訊號:
| day-selected | 當用戶或程式選擇日期時發出此訊號。 |
| month-changed | 當程式或使用者更改日曆月份時發出此訊號。 |
| next-month | 當用戶點選日曆標題中的“下個月”導航控制元件時發出此訊號。 |
| next-year | 當用戶點選日曆標題中的“下一年”導航控制元件時發出此訊號。 |
| prev-month | 當用戶點選日曆標題中的“上個月”導航控制元件時發出此訊號。 |
| prev-year | 當用戶點選日曆標題中的“上一年”導航控制元件時發出此訊號。 |
在下面的示例中,一個 gtk.Calendar 控制元件和四個按鈕放置在頂級視窗中。
當單擊“標題”按鈕時,日曆的顯示選項設定為 SHOW_HEADING:
def heading(self, widget): self.cal.set_display_options(gtk.CALENDAR_SHOW_HEADING)
當用戶單擊“星期名稱”按鈕時,回撥將顯示選項設定為 SHOW_DAY_NAMES:
def dayname(self, widget): self.cal.set_display_options(gtk.CALENDAR_SHOW_DAY_NAMES)
當按下“兩者”按鈕時,兩個顯示選項都啟用。首先,透過將其設定為 0 來刪除顯示選項的所有標誌。
self.cal.set_display_options(0)
“設定”按鈕彈出一個訊息框,顯示當前標記的日期。
tp = self.cal.get_date()
str1 = str(tp[0])
str2 = str(tp[1]+1)
str3 = str(tp[2])
label = gtk.Label("Date selected:"+str3+"-"+str2+"-"+str1)
dialog.vbox.add(label)
label.show()
示例
觀察以下程式碼:
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Calendar Demo")
self.set_size_request(300, 200)
self.set_position(gtk.WIN_POS_CENTER)
vbox = gtk.VBox(False, 5)
self.cal = gtk.Calendar()
halign1 = gtk.Alignment(0.5, 0.5, 0, 0)
halign1.add(self.cal)
self.cal.set_display_options(0)
valign = gtk.Alignment(0, 1, 0, 0)
vbox.pack_start(halign1)
self.btn1 = gtk.Button("set")
self.btn2 = gtk.Button("heading")
self.btn3 = gtk.Button("day name")
self.btn4 = gtk.Button("Both")
hbox = gtk.HBox(True, 3)
hbox.add(self.btn1)
hbox.add(self.btn2)
hbox.add(self.btn3)
hbox.add(self.btn4)
halign = gtk.Alignment(0.5, 0.5, 0, 0)
halign.add(hbox)
vbox.pack_start(halign, False, True, 10)
self.add(vbox)
self.btn1.connect("clicked", self.selectdate)
self.btn2.connect("clicked", self.heading)
self.btn3.connect("clicked", self.dayname)
self.btn4.connect("clicked", self.bothflags)
self.connect("destroy", gtk.main_quit)
self.show_all()
def heading(self, widget):
self.cal.set_display_options(gtk.CALENDAR_SHOW_HEADING)
def dayname(self, widget):
self.cal.set_display_options(gtk.CALENDAR_SHOW_DAY_NAMES)
def bothflags(self, widget):
self.cal.set_display_options(gtk.CALENDAR_SHOW_HEADING|gtk.CALENDAR_SHOW_DAY_NAMES)
def selectdate(self, widget):
tp = self.cal.get_date()
dialog = gtk.Dialog("My dialog",
self,
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
(gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
str1 = str(tp[0])
str2 = str(tp[1]+1)
str3 = str(tp[2])
label = gtk.Label("Date selected:"+str3+"-"+str2+"-"+str1)
dialog.vbox.add(label)
label.show()
res = dialog.run()
dialog.destroy()
PyApp()
gtk.main()
以上程式碼將生成以下輸出:
廣告