私はPySideでguiを開発しようとしており、Python(QDate
)で関数を呼び出して特定の日時に実行する方法があるのだろうか?例えばPySide、Qdate;特定の時間に毎日特定の関数を実行する
:ここ
#run this function in everyday at 8:00 am.
def print_something():
print "Hello"
私はPySideでguiを開発しようとしており、Python(QDate
)で関数を呼び出して特定の日時に実行する方法があるのだろうか?例えばPySide、Qdate;特定の時間に毎日特定の関数を実行する
:ここ
#run this function in everyday at 8:00 am.
def print_something():
print "Hello"
は、彼のalert.py
例サマーのPyQtはブックの第4章から適応スクリプトです。ここは、オンラインで無料提供されています: http://www.informit.com/articles/article.aspx?p=1149122
基本的にあなたがターゲットQDateTime
を設定し、あなたがcurrentQDateTime
にターゲットを比較することによって、あなたが望む呼び出し可能なものは何でもトリガすることができます。
from PySide import QtCore, QtGui
import sys
import time
#Prepare alarm
alarmMessage = "Wake up, sleepyhead!"
year = 2016
month = 4
day = 23
hour = 12
minute = 40
alarmDateTime = QtCore.QDateTime(int(year), int(month), int(day), int(hour), int(minute), int(0))
#Wait for alarm to trigger at appropriate time (check every 5 seconds)
while QtCore.QDateTime.currentDateTime() < alarmDateTime:
time.sleep(5)
#Once alarm is triggered, create and show QLabel, and then exit application
qtApp = QtGui.QApplication(sys.argv)
label = QtGui.QLabel(alarmMessage)
label.setStyleSheet("QLabel { color: rgb(255, 0, 0); font-weight: bold; font-size: 25px; \
background-color: rgb(0,0,0); border: 5px solid rgba(0 , 255, 0, 200)}")
label.setWindowFlags(QtCore.Qt.SplashScreen | QtCore.Qt.WindowStaysOnTopHint)
label.show()
waitTime = 10000 #in milliseconds
QtCore.QTimer.singleShot(waitTime, qtApp.quit)
sys.exit(qtApp.exec_())
この1つはQLabelポップアップしていますあなたが望む日と時間に、それは恣意的です。あなたはそれがあなたが望む何でもすることができます。毎日同じ日に実行したい場合は、適切に修正する必要がありますが、これはイベントをトリガーするのにQDateTime
を使い始めるのに十分なはずです。
注Windowsで作業しているし、あなたはここでアドバイスに従う、画面上の表示コマンドウィンドウなしに、バックグラウンドで実行する場合:プログラムを保存、すなわち
How can I hide the console window in a PyQt app running on Windows?
を.pyw
の拡張子を使用し、ではなく、python.exe
で実行されていることを確認してください。