python用pyqt5制作登录界面(python3+pyqt5+itchat微信定时发送消息的方法)
类别:脚本大全 浏览量:2195
时间:2022-01-28 01:38:30 python用pyqt5制作登录界面
python3+pyqt5+itchat微信定时发送消息的方法编这个程序是想过节过年,一些重要的纪念日,给亲戚好友发祝福之类的,但要凌晨0点才显得比较有诚意,可我又比较贪睡,常常忘了,所以就有了编个微信定时发送消息小程序.
运行环境:
python 3.x,不支持python2
准备工作
由于我用到了微信的接口,所以引入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 ) # 自定义信号,执行run()函数时,从相关线程发射此信号 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( '消息' , '发送成功' ) 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( '时' ) 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( '定期发送' ) grid = 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(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( '定时发送消息' ) self .setwindowicon(qicon( 'weixinicon.jpg" alt="python用pyqt5制作登录界面(python3+pyqt5+itchat微信定时发送消息的方法)" border="0" /> 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_()) |
运行步骤
1.代码复制粘贴完毕后,运行,界面如图(可以将程序中的图标改成你喜欢的图片)
2.点获取好友列表按钮,第一次会弹出微信网页版登录的二维码(第二次运行,itchat会记录你登录记录,只需要点击你手机微信的确认登录的按钮),用手机微信扫描登录即可.时间框里会显示当前的时间,你改成设定时间发送即可(若约定时间已经过了,则消息会立即发送),在好友的下拉列表里选择你要发送的好友(如果好友有备注,则显示备注,否则显示微信昵称),在下面的文本框输入你想要发送的消息,目前只支持文字,不支持图片
最后一步,点击定期发送按钮,静待好友收到消息,并且我设置了文件助手也会收到这条消息,不过你也可以删除.
最后的效果图
以上这篇python3+pyqt5+itchat微信定时发送消息的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/weiyang_tang/article/details/82886697
您可能感兴趣
- 用python3.5.3实现邮件收发(Python使用POP3和SMTP协议收发邮件的示例代码)
- python简易版学生管理系统(python3.6实现学生信息管理系统)
- python选择语句形式判断回文数(Python3实现的回文数判断及罗马数字转整数算法示例)
- python opencv图像合并(Python3+OpenCV2实现图像的几何变换平移、镜像、缩放、旋转、仿射)
- python3d旋转特效(python实现小球弹跳效果)
- python 获取ip mac 地址(Python3获取电脑IP、主机名、Mac地址的方法示例)
- python 调钉钉接口(python3实现钉钉消息推送的方法示例)
- python json转换字符串(python3 json数据格式的转换dumps/loads的使用、dict to str/str to dict、json字符串/字典)
- python 组合数据类型(详解Python3 对象组合zip和回退方式*zip)
- python爬取数据总结(python3爬虫学习之数据存储txt的案例详解)
- 12步轻松搞定python装饰器(Python3.5装饰器典型案例分析)
- python中对象方法和顶级方法(Python3.5面向对象程序设计之类的继承和多态详解)
- python之pil模块使用(Python3安装Pillow与PIL的方法)
- python获取字符串类型(python3利用ctypes传入一个字符串类型的列表方法)
- python3语法规则(详解Python3注释知识点)
- pythonhtml文件分析(对Python3 解析html的几种操作方式小结)
- 以前全椒人是怎么过冬的 满满都是回忆(以前全椒人是怎么过冬的)
- NVIDIA显卡份额冲上88 A饭发愁 游戏优化恐没A卡份了(NVIDIA显卡份额冲上88A饭发愁)
- AMD YES A卡还是N卡 A卡和N卡的区别(AMDYESA卡还是N卡)
- 以后显卡多了一个新选择,N卡和A卡外又多了个I卡(以后显卡多了一个新选择)
- 读卖乐园的彩灯(读卖乐园的彩灯)
- 新疆80后在淘宝卖干果 以前是 不务正业 如今帮乡亲致富(新疆80后在淘宝卖干果)
热门推荐
- vmware16虚拟机的安装教程(最新虚拟机VMware 14安装教程)
- mysql自增主键创建过程(深入谈谈MySQL中的自增主键)
- dedecms系统参数设置(DedeCMS 5 .7 自定义表单制作和调用办法[图文])
- vue 手机端tab切换页面不刷新(vue Tab切换以及缓存页面处理的几种方式)
- laravel查询限制输出设置(laravel validate 设置为中文的例子验证提示为中文)
- thinkphp前后端配合(thinkPHP+LayUI 流加载实现功能)
- 微信小程序scrollview 截图(微信小程序scroll-view不能左右滑动问题的解决方法)
- 虚拟主机服务器和云主机的区别(选择独享IP虚拟主机的好处有哪些?)
- 支持多种数据库的数据库管理工具:navicat premium
- thinkphp5.0实例详解(ThinkPHP5&5.1框架关联模型分页操作示例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9