小白初学Python的笔记,多谢指教!
使用的库:itchat,pyqt5
![](https://img.haomeiwen.com/i7089761/7b080b2b798057e2.png)
UI界面
wechat_send.py
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets
# class Ui_Form 是图形界面代码,由PYQT5 Desiger编辑,PY UIC生成。
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(335, 461)
self.groupBox = QtWidgets.QGroupBox(Form)
self.groupBox.setGeometry(QtCore.QRect(20, 70, 301, 211))
self.groupBox.setObjectName("groupBox")
self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox)
self.gridLayout_2.setObjectName("gridLayout_2")
self.textEdit_text = QtWidgets.QTextEdit(self.groupBox)
self.textEdit_text.setObjectName("textEdit_text")
self.gridLayout_2.addWidget(self.textEdit_text, 0, 0, 1, 3)
self.label_nickname1 = QtWidgets.QLabel(self.groupBox)
self.label_nickname1.setObjectName("label_nickname1")
self.gridLayout_2.addWidget(self.label_nickname1, 2, 0, 1, 1)
self.lineEdit_text_nickname = QtWidgets.QLineEdit(self.groupBox)
self.lineEdit_text_nickname.setObjectName("lineEdit_text_nickname")
self.gridLayout_2.addWidget(self.lineEdit_text_nickname, 2, 1, 1, 1)
self.pushButton_text_friend = QtWidgets.QPushButton(self.groupBox)
self.pushButton_text_friend.setObjectName("pushButton_text_friend")
self.gridLayout_2.addWidget(self.pushButton_text_friend, 2, 2, 1, 1)
self.pushButton_text_helper = QtWidgets.QPushButton(self.groupBox)
self.pushButton_text_helper.setObjectName("pushButton_text_helper")
self.gridLayout_2.addWidget(self.pushButton_text_helper, 1, 0, 1, 3)
self.groupBox_3 = QtWidgets.QGroupBox(Form)
self.groupBox_3.setGeometry(QtCore.QRect(20, 10, 301, 55))
self.groupBox_3.setObjectName("groupBox_3")
self.label_notice = QtWidgets.QLabel(self.groupBox_3)
self.label_notice.setGeometry(QtCore.QRect(10, 22, 221, 16))
self.label_notice.setObjectName("label_notice")
self.pushButton_login = QtWidgets.QPushButton(self.groupBox_3)
self.pushButton_login.setGeometry(QtCore.QRect(210, 22, 80, 23))
self.pushButton_login.setObjectName("pushButton_login")
self.groupBox_2 = QtWidgets.QGroupBox(Form)
self.groupBox_2.setGeometry(QtCore.QRect(20, 300, 301, 139))
self.groupBox_2.setObjectName("groupBox_2")
self.gridLayout = QtWidgets.QGridLayout(self.groupBox_2)
self.gridLayout.setObjectName("gridLayout")
self.pushButton_open_file = QtWidgets.QPushButton(self.groupBox_2)
self.pushButton_open_file.setObjectName("pushButton_open_file")
self.gridLayout.addWidget(self.pushButton_open_file, 0, 0, 1, 3)
self.pushButton_file_helper = QtWidgets.QPushButton(self.groupBox_2)
self.pushButton_file_helper.setObjectName("pushButton_file_helper")
self.gridLayout.addWidget(self.pushButton_file_helper, 2, 0, 1, 3)
self.label_nickname2 = QtWidgets.QLabel(self.groupBox_2)
self.label_nickname2.setObjectName("label_nickname2")
self.gridLayout.addWidget(self.label_nickname2, 3, 0, 1, 1)
self.lineEdit_file_nickname = QtWidgets.QLineEdit(self.groupBox_2)
self.lineEdit_file_nickname.setObjectName("lineEdit_file_nickname")
self.gridLayout.addWidget(self.lineEdit_file_nickname, 3, 1, 1, 1)
self.pushButton_file_friend = QtWidgets.QPushButton(self.groupBox_2)
self.pushButton_file_friend.setObjectName("pushButton_file_friend")
self.gridLayout.addWidget(self.pushButton_file_friend, 3, 2, 1, 1)
self.lineEdit_file_dir = QtWidgets.QLineEdit(self.groupBox_2)
self.lineEdit_file_dir.setObjectName("lineEdit_file_dir")
self.gridLayout.addWidget(self.lineEdit_file_dir, 1, 1, 1, 2)
self.label_file = QtWidgets.QLabel(self.groupBox_2)
self.label_file.setObjectName("label_file")
self.gridLayout.addWidget(self.label_file, 1, 0, 1, 1)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "微信传输助手"))
self.groupBox.setTitle(_translate("Form", "文字传输"))
self.label_nickname1.setText(_translate("Form", "好友昵称:"))
self.pushButton_text_friend.setText(_translate("Form", "发给好友"))
self.pushButton_text_helper.setText(_translate("Form", "发送文字至:文件传输助手"))
self.groupBox_3.setTitle(_translate("Form", "提示栏"))
self.label_notice.setText(_translate("Form", "请先登陆微信!"))
self.pushButton_login.setText(_translate("Form", "扫码登陆微信"))
self.groupBox_2.setTitle(_translate("Form", "文件传输"))
self.pushButton_open_file.setText(_translate("Form", "点击选择文件(暂不支持中文文件名)"))
self.pushButton_file_helper.setText(_translate("Form", "发送文件至:文件传输助手"))
self.label_nickname2.setText(_translate("Form", "好友昵称:"))
self.pushButton_file_friend.setText(_translate("Form", "发给好友"))
self.label_file.setText(_translate("Form", "文件目录:"))
import itchat
# from PyQt5 import QtWidgets # 上面的图形界面代码已经导入了
# from sendUI import Ui_Form # 已经合并了,就是上面一大段
class mywindow(QtWidgets.QWidget,Ui_Form): #Ui_Form要跟UI文件里的class同名
def __init__(self): #界面初始化
super(mywindow, self).__init__()
self.setupUi(self)
# 初始化标签、文本框提示
self.label_notice.setText("首先扫码登陆微信,")
self.textEdit_text.append("信息:")
# 按钮关联槽
self.pushButton_login.clicked.connect(self.wechat_login)
self.pushButton_text_helper.clicked.connect(self.text_to_helper)
self.pushButton_text_friend.clicked.connect(self.text_to_friend)
self.pushButton_open_file.clicked.connect(self.open_file)
self.pushButton_file_helper.clicked.connect(self.file_to_helper)
self.pushButton_file_friend.clicked.connect(self.file_to_friend)
def wechat_login(self):
print("执行:wechat_login")
itchat.auto_login(hotReload=True)
#itchat.run() #图形界面不要加这行代码
self.label_notice.setText("现在,输入信息或者选择文件")
def text_to_helper(self):
print("执行:text_to_helper")
text_send = self.textEdit_text.toPlainText()
itchat.send(text_send+'\n来自:微信传输助手', toUserName='filehelper')
self.label_notice.setText("成功发送文字至:文件传输助手!")
def text_to_friend(self):
print("执行:text_to_friend")
text_send = self.textEdit_text.toPlainText()
text_nickname = self.lineEdit_text_nickname.text()
text_username = itchat.search_friends(text_nickname)[0]['UserName']
#print(text_username)
itchat.send(text_send+'\n来自:微信传输助手', toUserName=text_username)
self.label_notice.setText("成功发送文字至:%s!"%text_nickname)
def open_file(self):
print("执行:open_file")
# 设置文件扩展名过滤,注意用双分号间隔
file_name, filetype = QtWidgets.QFileDialog.getOpenFileName(self,"选取文件","D:/","All Files (*);;Text Files (*.txt)")
self.lineEdit_file_dir.setText(file_name)
def file_to_helper(self):
print("执行:file_to_helper")
file_send = self.lineEdit_file_dir.text()
#print(file_send)
itchat.send_file(file_send, toUserName='filehelper')
itchat.send('来自:微信传输助手', toUserName='filehelper')
self.label_notice.setText("成功发送文件至:文件传输助手!")
def file_to_friend(self):
print("执行:file_to_friend")
file_send = self.lineEdit_file_dir.text()
#print(file_send)
file_nickname = self.lineEdit_file_nickname.text()
file_username = itchat.search_friends(file_nickname)[0]['UserName']
#print(file_username)
itchat.send_file(file_send, toUserName=file_username)
itchat.send('来自:微信传输助手', toUserName=file_username)
self.label_notice.setText("成功发送文件至:%s!"%file_nickname)
if __name__ == "__main__": #py文件自己执行的话才运行以下代码,如果是被其他程序调用,并不执行以下代码
import sys
app = QtWidgets.QApplication(sys.argv)
myshow = mywindow()
myshow.show()
sys.exit(app.exec_())
网友评论