028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

【python笔记】Qt+云函数 实现简单的登录框制作

【python笔记】Qt+云函数 实现简单的登录框制作

1.用QtDesigner随便画一个登录框

2.配置云函数

这个函数用来模拟服务器登录

  1. 百度智能云 -> 产品 -> 云原生 -> 函数计算
  2. 创建函数,选择空白函数,事件模式选择event,运行时选择python3.6,触发器选择HTTP触发,HTTP方法选择全部或者POST都行,直接创建函数即可。
  3. 修改云函数
#用request发送一个json数据包到云函数提供的url,json数据会储存在event参数里,这里把用户名、密码写死了,#其实是可以连接数据库的,在数据库里查询
import json
def handler(event, context):
    username = json.loads(event.get("body")).get("username")
    password = json.loads(event.get("body")).get("password")
    if(username == "admin")&(password == "wdnmd"):
        ret = 1
    else:
        ret = 0
    return ret
  1. python代码
import sys
import time
import json
import requests
from PyQt5.QtCore import QThread, pyqtSignal
from PyQt5.QtWidgets import *
from PyQt5 import uic


class login_thread(QThread):
    start_login_signal = pyqtSignal(str) #用来把url返回的值从子线程提交到主线程
    def __init__(self,signal):
        super().__init__()

        self.signal1 = signal
    def login_request(self,json_data):
        num="0"
        json_data1 = json.loads(json_data)
        resp = requests.post(url="https://2729mj3a1p6k3.cfc-execute.bj.baidubce.com/loginfunc",json=json_data1)
        resp.close()
        num = resp.text
        self.signal1.emit(num) #激活自定义型号,传参,参数为登录返回值

    def run(self): #继承QThread,重写run函数,写个死循环防止线程死亡
        while(1):
            time.sleep(1)

class my_window(QWidget):
    login_status=pyqtSignal(str)
    def __init__(self):
        super().__init__()
        self.init()

    def init(self):
        self.ui = uic.loadUi("login.ui")#加载写好的界面
		#把每个ui文件里的按钮绑定起来
        self.account_edit = self.ui.lineEdit
        self.password_edit =  self.ui.lineEdit_2
        self.login_button = self.ui.pushButton
        self.register_button = self.ui.pushButton_2
        self.textb = self.ui.textBrowser
        self.login_button.clicked.connect(self.login)
        self.login_status.connect(self.status) #绑定槽函数
        self.thread = login_thread(self.login_status)
        self.thread.start_login_signal.connect(self.thread.login_request) #绑定槽函数
        self.thread.start()

    def login(self):
        username = self.account_edit.text()
        password = self.password_edit.text()
        self.thread.start_login_signal.emit(json.dumps({"username":username,"password":password}))
    def status(self,status): #通过返回值判断登录状态,设置textbrowser里的文字
        if status=='1':
            self.textb.setText("登录成功")
            self.textb.repaint() #每次更新文字要重绘一下,不然会不显示
        else:
            self.textb.setText("登录失败")
            self.textb.repaint()
app = QApplication(sys.argv)
w = my_window()
w.ui.show()
app.exec()

网站栏目:【python笔记】Qt+云函数 实现简单的登录框制作
URL链接:http://www.tsicrk.com/article/dsogjcc.html

其他资讯

让你的专属顾问为你服务

0.7610s