欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python3+pyqt5+itchat微信定時(shí)發(fā)送消息的方法

 更新時(shí)間:2019年02月20日 15:23:59   作者:weiyang_tang  
今天小編就為大家分享一篇python3+pyqt5+itchat微信定時(shí)發(fā)送消息的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

編這個(gè)程序是想過(guò)節(jié)過(guò)年,一些重要的紀(jì)念日,給親戚好友發(fā)祝福之類的,但要凌晨0點(diǎn)才顯得比較有誠(chéng)意,可我又比較貪睡,常常忘了,所以就有了編個(gè)微信定時(shí)發(fā)送消息小程序.

運(yùn)行環(huán)境:

python 3.x,不支持python2

準(zhǔn)備工作

由于我用到了微信的接口,所以引入itchat

界面用了pyqt5

安裝命令如下:

pip install PyQt5
pip install itchat

代碼部分

# -*- coding: utf-8 -*-
# @Time  : 2018/9/25 11:06
# @Author : Tangweeiyang
# @File  : weixinSender.py

from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon,QFont
import sys
import datetime
import time
import itchat
import threading
from tkinter import messagebox

class FriendsList(QThread):
  sinOut = pyqtSignal(str)
  # 自定義信號(hào),執(zhí)行run()函數(shù)時(shí),從相關(guān)線程發(fā)射此信號(hào)

  def __init__(self):
    super().__init__()

  def run(self):

    itchat.auto_login(hotReload=True)
    friendList = itchat.get_friends()
    for each in friendList:
      if len(each['RemarkName']) < 2: #如果 備注名為空,則用微信昵稱
        self.sinOut.emit(each['NickName'])
      else:
        self.sinOut.emit(each['RemarkName'])

class sendMessage(QThread):

  def __init__(self,message,name,time):
    super().__init__()
    self.message=message
    self.name=name
    self.time=time

  def run(self):
    timer = threading.Timer(self.time,self.send)
    timer.start()

  def send(self):

    itchat.auto_login(hotReload=True)
    sender = itchat.search_friends(self.name)[0]['UserName']
    itchat.send(self.message, toUserName=sender)
    itchat.send(self.message, toUserName='filehelper')
    messagebox.showinfo('消息','發(fā)送成功')


class weixinSender(QListWidget):

  def __init__(self):
    super().__init__()
    self.Ui()
    # self.dataProduce()

  def Ui(self):
    self.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()

    self.hour_label = QLabel('時(shí)')
    self.hour = QLineEdit()
    self.min_label = QLabel('分')
    self.min = QLineEdit()
    self.second_label = QLabel('秒')
    self.second = QLineEdit()

    self.text=QTextEdit() #文本域
    self.listbt = QPushButton('獲取好友列表')
    self.OKbt=QPushButton('定期發(fā)送')


    grid = QGridLayout()
    grid.setSpacing(10) # 創(chuàng)建標(biāo)簽之間的空間

    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(grid)

    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)
    self.setGeometry(300, 300, 500, 300)
    self.setWindowTitle('定時(shí)發(fā)送消息')
    self.setWindowIcon(QIcon('weixinIcon.jpg')) #窗口圖標(biāo)
    self.show()

  def dataProduce(self):
    now=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,name):
    self.friendList.addItem(name)

  def send(self):
    self.target = 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()))
    self.now = time.time()
    self.delay_time = self.target.timestamp() - self.now
    self.sendThread=sendMessage(self.text.toPlainText(),self.friendList.currentText(),self.delay_time)
    self.sendThread.start()

if __name__ == '__main__':
  app = QApplication(sys.argv)
  ex = weixinSender()
  sys.exit(app.exec_())

運(yùn)行步驟

1.代碼復(fù)制粘貼完畢后,運(yùn)行,界面如圖(可以將程序中的圖標(biāo)改成你喜歡的圖片)

python3+pyqt5+itchat微信定時(shí)發(fā)送消息

2.點(diǎn)獲取好友列表按鈕,第一次會(huì)彈出微信網(wǎng)頁(yè)版登錄的二維碼(第二次運(yùn)行,itchat會(huì)記錄你登錄記錄,只需要點(diǎn)擊你手機(jī)微信的確認(rèn)登錄的按鈕),用手機(jī)微信掃描登錄即可.時(shí)間框里會(huì)顯示當(dāng)前的時(shí)間,你改成設(shè)定時(shí)間發(fā)送即可(若約定時(shí)間已經(jīng)過(guò)了,則消息會(huì)立即發(fā)送),在好友的下拉列表里選擇你要發(fā)送的好友(如果好友有備注,則顯示備注,否則顯示微信昵稱),在下面的文本框輸入你想要發(fā)送的消息,目前只支持文字,不支持圖片

最后一步,點(diǎn)擊定期發(fā)送按鈕,靜待好友收到消息,并且我設(shè)置了文件助手也會(huì)收到這條消息,不過(guò)你也可以刪除.

最后的效果圖

python3+pyqt5+itchat微信定時(shí)發(fā)送消息

以上這篇python3+pyqt5+itchat微信定時(shí)發(fā)送消息的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Django 對(duì)IP訪問(wèn)頻率進(jìn)行限制的例子

    Django 對(duì)IP訪問(wèn)頻率進(jìn)行限制的例子

    今天小編就為大家分享一篇Django 對(duì)IP訪問(wèn)頻率進(jìn)行限制的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • 啥是佩奇?使用Python自動(dòng)繪畫小豬佩奇的代碼實(shí)例

    啥是佩奇?使用Python自動(dòng)繪畫小豬佩奇的代碼實(shí)例

    今天小編就為大家分享一篇關(guān)于啥是佩奇?使用Python自動(dòng)繪畫小豬佩奇的代碼實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • matplotlib繪制鼠標(biāo)的十字光標(biāo)的實(shí)現(xiàn)(自定義方式,官方實(shí)例)

    matplotlib繪制鼠標(biāo)的十字光標(biāo)的實(shí)現(xiàn)(自定義方式,官方實(shí)例)

    這篇文章主要介紹了matplotlib繪制鼠標(biāo)的十字光標(biāo)(自定義方式,官方實(shí)例),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python中作用域的深入講解

    Python中作用域的深入講解

    這篇文章主要給大家介紹了關(guān)于Python中作用域的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • 基于Python代碼實(shí)現(xiàn)Apriori?關(guān)聯(lián)規(guī)則算法

    基于Python代碼實(shí)現(xiàn)Apriori?關(guān)聯(lián)規(guī)則算法

    這篇文章主要介紹了基于Python代碼實(shí)現(xiàn)Apriori?關(guān)聯(lián)規(guī)則算法,本文通過(guò)應(yīng)用場(chǎng)景舉例,結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • 如何利用pygame實(shí)現(xiàn)簡(jiǎn)單的五子棋游戲

    如何利用pygame實(shí)現(xiàn)簡(jiǎn)單的五子棋游戲

    這篇文章主要給大家介紹了關(guān)于如何利用pygame實(shí)現(xiàn)簡(jiǎn)單的五子棋游戲的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用pygame具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python基于文件內(nèi)容實(shí)現(xiàn)查找文件功能

    Python基于文件內(nèi)容實(shí)現(xiàn)查找文件功能

    無(wú)論是Linux系統(tǒng)還是Windows系統(tǒng)都有基于文件名實(shí)現(xiàn)過(guò)濾、查找的功能。但是如果想要查找一些關(guān)于某些文件指定內(nèi)容的文件,好像它們明面上沒(méi)有這樣的功能了。這個(gè)時(shí)候就可以通過(guò) Python 來(lái)實(shí)現(xiàn)這樣的功能,快跟隨小編一起學(xué)習(xí)一下吧
    2022-05-05
  • Python使用PyMySql增刪改查Mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)

    Python使用PyMySql增刪改查Mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)

    PyMysql是Python中用于連接MySQL數(shù)據(jù)庫(kù)的一個(gè)第三方庫(kù),本文主要介紹了Python使用PyMySql增刪改查Mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • python定時(shí)采集攝像頭圖像上傳ftp服務(wù)器功能實(shí)現(xiàn)

    python定時(shí)采集攝像頭圖像上傳ftp服務(wù)器功能實(shí)現(xiàn)

    本文程序?qū)崿F(xiàn)python定時(shí)采集攝像頭圖像上傳ftp服務(wù)器功能,大家參考使用吧
    2013-12-12
  • python list count統(tǒng)計(jì)個(gè)數(shù)的實(shí)現(xiàn)

    python list count統(tǒng)計(jì)個(gè)數(shù)的實(shí)現(xiàn)

    這篇文章主要介紹了python list count統(tǒng)計(jì)個(gè)數(shù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評(píng)論