编这个程序是想过节过的年,一些重要的纪念日,给亲戚好友发祝福之类的,但要凌晨0点才显得比较有诚意,可我又比较贪睡,常常忘了,所以就有了编个微信定时发送消息小程序。
<>强运行环境:强>
python 3. x,不支持python2
<强>准备工作强>
由于我用到了微信的接口,所以引入itchat
界面用了pyqt5
安装命令如下:
pip安装PyQt5 pip安装itchat
<强>代码部分强>
# - * -编码:utf - 8 - * # @Time: 2018/9/25 11:06 # @Author: Tangweeiyang # @File: weixinSender.py 从PyQt5。QtCore进口* 从PyQt5。QtWidgets进口* 从PyQt5。QtGui进口QIcon QFont 导入系统 进口日期时间 导入的时间 进口itchat 进口线程 从tkinter导入对话框 类FriendsList (QThread): sinOut=pyqtSignal (str) #自定义信号,执行运行()函数时,从相关线程发射此信号 def __init__(自我): super () . __init__ () def运行(自我): itchat.auto_login (hotReload=True) friendList=itchat.get_friends () 为每个friendList: 如果len(每个[' RemarkName ']) & lt;2:#如果备注名为空,则用微信昵称 self.sinOut.emit(每个(“昵称”)) 其他: self.sinOut.emit(每个[' RemarkName ']) 类sendMessage (QThread): def __init__(自我、消息、名字、时间): super () . __init__ () self.message=消息 self.name=名字 self.time=时间 def运行(自我): 计时器=threading.Timer (self.time self.send) timer.start () def发送(自我): itchat.auto_login (hotReload=True) 发送方=itchat.search_friends (self.name)[0](“用户”) itchat.send(自我。消息,toUserName=发送者) itchat.send(自我。消息,toUserName=癴ilehelper”) messagebox.showinfo(“消息”、“发送成功”) 类weixinSender (QListWidget): def __init__(自我): super () . __init__ () self.Ui () # self.dataProduce () def Ui(自我): 自我。year_label=QLabel(年) self.year=QLineEdit () self.month_label=QLabel(月) self.month=QLineEdit () self.day_label=QLabel(日) self.day=QLineEdit () self.friendList_lable=QLabel('好友”) self.friendList=QComboBox () 自我。hour_label=QLabel(时) 自我。小时=QLineEdit () 自我。min_label=QLabel(分) 自我。min=QLineEdit () 自我。second_label=QLabel(秒) 自我。第二个=QLineEdit () self.text=QTextEdit() #文本域 自我。listbt=QPushButton(“获取好友列表”) self.OKbt=QPushButton(“定期发送的) 网格=QGridLayout () grid.setSpacing(10) #创建标签之间的空间 grid.addWidget (self.year_label 1 1) grid.addWidget (self.year 1 0) grid.addWidget (self.month_label 1 3) grid.addWidget (self.month 1 2) grid.addWidget (self.day_label 1 5) grid.addWidget (self.day 1 4) grid.addWidget (self.friendList_lable 1 6、2、1) grid.addWidget (self.friendList 1 7、2、3) grid.addWidget (self.hour_label 2 1) grid.addWidget (self.hour 2 0) grid.addWidget (self.min_label、2、3) grid.addWidget (self.min 2 2) grid.addWidget (self.second_label 2 5) grid.addWidget (self.second、2、4) grid.addWidget (self.text 3 0、4、10) grid.addWidget (self.listbt 7、5、1、2) grid.addWidget (self.OKbt 7、7、1、2) self.setLayout(网格) self.friendList.addItem('好友1 ') self.friendList.addItem('好友2”) self.text.setFont (QFont(“楷体”,12日QFont.Normal)) self.OKbt.clicked.connect (self.send) self.listbt.clicked.connect (self.dataProduce) 自我。setGeometry (300、300、500、300) self.setWindowTitle(“定时发送消息”) self.setWindowIcon (QIcon (weixinIcon.jpg)) #窗口图标 self.show () def dataProduce(自我): 现在=time.localtime () self.year.setText (str (now.tm_year)) self.month.setText (str (now.tm_mon)) self.day.setText (str (now.tm_mday)) self.hour.setText (str (now.tm_hour)) self.min.setText (str (now.tm_min)) self.second.setText (str (now.tm_sec)) self.friendList.clear () self.thread=FriendsList () self.thread.sinOut.connect (self.slotAdd) self.thread.start () def slotAdd(自我、名称): self.friendList.addItem(名字) def发送(自我): 自我。目标=datetime.datetime (int (self.year.text ()), int (self.month.text ()), int (self.day.text ()), int (self.hour.text ()), int (self.min.text ()), int (self.second.text ())) 自我。现在=time.time () ——self.now self.delay_time=self.target.timestamp () self.sendThread=sendMessage (self.text.toPlainText (), self.friendList.currentText (), self.delay_time) self.sendThread.start () if __name__==癬_main__”: 应用=QApplication (sys.argv) 前女友=weixinSender () sys.exit (app.exec_ ())python3 + pyqt5 + itchat微信定时发送消息的方法