python3 + pyqt5 + itchat微信定时发送消息的方法

  

编这个程序是想过节过的年,一些重要的纪念日,给亲戚好友发祝福之类的,但要凌晨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微信定时发送消息的方法