目标
制作一款小软件,能够置顶窗口且透明不妨碍办公的形式进行桌面提醒,比如工作计划/座右铭/便签之类。
由于tkinter不支持背景透明和无窗口模式,因此选用Qt.
制作方法
直接上代码:
# reminder.py
import sys
from PyQt5 import QtWidgets
from PyQt5 import QtCore, QtGui
remind_text = open('remindme.txt', 'rt').read()
def StartReminder():
app = QtWidgets.QApplication(sys.argv)
w_ = QtWidgets.QMainWindow()
w_.resize(512, 360)
w_.setWindowTitle("hello Qt5")
w_.setWindowFlags(QtCore.Qt.SplashScreen|QtCore.Qt.FramelessWindowHint|QtCore.Qt.WindowStaysOnTopHint)
w_.setAttribute(QtCore.Qt.WA_TranslucentBackground)
w_.setStyleSheet("background:transparent;")
label = QtWidgets.QLabel(w_)
label.setGeometry(QtCore.QRect(480, 240, 1024, 300))
label.setStyleSheet("color:rgba(200,0,0,50);")
label.setFont(QtGui.QFont("Courier New", 36))
label.setText(remind_text)
w_.showFullScreen()
sys.exit(app.exec())
if __name__ == '__main__':
StartReminder()
效果如下:
特别香的是,采用start /b python reminder.py
启动该软件,不仅不会有窗口,甚至连任务栏上的图标都不显示,命令行也没有任何提示,进程都在后台运行中。