美文网首页
python练手__微信传输助手

python练手__微信传输助手

作者: PengJenas | 来源:发表于2018-07-08 23:29 被阅读0次

小白初学Python的笔记,多谢指教!

使用的库:itchat,pyqt5

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

相关文章

网友评论

      本文标题:python练手__微信传输助手

      本文链接:https://www.haomeiwen.com/subject/mcvauftx.html