PyQT 為何很多人用了開發 UI , 一個原因是因為 它包含了很多實用的 Widget , Calendar 就是其中一個 , 這省了很多開發時間, 不然自己寫一個日曆 是會瘋掉的
Calendar 物件用法跟前面的 button 差不多, 但多了一些日期的處理
下面這個例子會先用 function 來做處理, 使用上沒有問題, 但這不是很好的作法, 因為當使用者發出改變選擇的日期的訊號時, 會需要把 calendar 這個物件一起當參數傳給槽函數
這對未來要修改 code 時會很不容易 且如果很function 一直被呼叫, calendar 會被一直帶入 這是很好資源的, 所以往後的程式會漸漸地以 class 為主, 讓大家漸漸習慣 class 的使用.
#import package 其中 Qt 是用來做日期的轉換的
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QCalendarWidget
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtCore import Qt
from functools import partial
def window():
app = QApplication(sys.argv)
win = QWidget()
calendar = QCalendarWidget(win)
calendar.setGeometry(50,50,300,300)
calendar.selectionChanged.connect(partial(showdate,calendar))
# 當發出日期選擇時發出訊號到 showdate 槽並帶入 calendar 物件做參數
win.setWindowTitle("PyQt Grid Example")
win.setGeometry(50,50,400,400)
win.show()
sys.exit(app.exec_())
def showdate(calendar):
selectDay = calendar.selectedDate() #確認被選的日期
# selectDay 是 PyQT 日期格式, 但如果我們是要用這日期給 SQL 處理時須轉換
print("pyQT day",selectDay) #
#加入toString(Qt.ISODate) 就會變成string格式, 之後可以給 datetime package 處理
print("normal day", selectDay.toString(Qt.ISODate))
if __name__ == '__main__':
window()
是不是很簡單
訂閱:
張貼留言 (Atom)
ChartGPT 學 python 很強喔
ChartGPT 最近很紅 , 前一陣子有一些小 module 本來想 google 一下 語法 但發現用 chartGPT 直接請他給 sample code 反而較快 所以只要你有基本 知識 ChartGPT 可以加速你的開發 好用喔
-
之前安裝樹莓常用軟體 如 anydesk or teamviewr , or pycharm 等 都是自己下載 source compile .. 但遇到了不少坑 , 每次都要花不少時間 如 obs 有時能成功, 但大都失敗 直到昨天看到有人做好了 script 只要執...
-
基本運算 x= 99 print(x) print(x + 1 ) # 加法 print(x - 1 ) # 減法: print(x * 2 ) # 乘法: print(x / 2 ) # 除法: print(x // 2 ) # 整數除法 p...
-
安裝 pysimplegui 很簡單 pip install pysimplegui or pip3 install pysimplegui 即可 Linux, Mac, Windows 樹莓派 都支援 先說一下 pysimplegui 與其他 GUI 如 pyqt5 等...
沒有留言:
張貼留言