Qt5软件界面布局设计学习,python安装PyQt5简单布局。

之前学习折腾了一个ESP8266的B站粉丝数显示器。

在这里插入图片描述

这少得可怜的数量。。

现在使用QT5简单布局,写一个PC端的粉丝显示。默认显示自己的粉丝数 、点赞数,播放量 数据。也可以显示其他人的数据,需要获取uid,代码如下:


# -*- coding: utf-8 -*-
# @Time: 2021/3/26 8:30
# @Author: 素还真
# @File: getFansNum.py
# @SoftWare: PyCharm

import sys
import requests
import json
from PyQt5.uic import loadUi
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *


class MainWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        loadUi("BiliBiliFans_1.ui", self)
        self.lcdNumber.setDigitCount(10)  # 设置显示位数
        self.lcdNumber_2.setDigitCount(10)  # 设置显示位数
        self.lcdNumber_3.setDigitCount(10)  # 设置显示位数
        self.lcdNumber.setMode(QLCDNumber.Dec)  # 显示模式
        self.lcdNumber_2.setMode(QLCDNumber.Dec)  # 显示模式
        self.lcdNumber_3.setMode(QLCDNumber.Dec)  # 显示模式
        # self.lcdNumber.setSegmentStyle(QLCDNumber.Flat) # 设置显示样式(同下)
        self.lcdNumber.setSegmentStyle(2)  # 设置显示样式
        self.lcdNumber_2.setSegmentStyle(2)  # 设置显示样式
        self.lcdNumber_3.setSegmentStyle(2)  # 设置显示样式
        if len(sys.argv) > 1:
            uid = sys.argv[1]
        else:
            uid = "323204204"
        headers = {
            'Host': 'api.bilibili.com',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0',
            'Cookie': "*************cookie值自己动手获取"
        }
        like_view_url = 'http://api.bilibili.com/x/space/upstat?mid=%s' % uid
        fans_url = "http://api.bilibili.com/x/relation/stat?vmid=%s" % uid
        info_url = "https://api.bilibili.com/x/space/acc/info?mid=%s&jsonp=jsonp" % uid
        like_view = requests.get(url=like_view_url, headers=headers)
        fans = requests.get(url=fans_url, headers=headers)
        user_infos = requests.get(url=info_url, headers=headers)
        like_view_num = json.loads(like_view.text)
        fans_num = json.loads(fans.text)
        user_info = json.loads(user_infos.text)
        if user_info['code'] != 0:
            user_name = user_info['message']
        else:
            user_name = user_info['data']['name']
        if fans_num['code'] != 0:
            fans_nums = 0
        else:
            fans_nums = fans_num['data']['follower']
        if like_view_num['code'] != 0:
            views = 0
            likes = 0
        else:
            views = like_view_num['data']["archive"]["view"]
            likes = like_view_num['data']['likes']
        self.lcdNumber.display(fans_nums)
        self.lcdNumber_2.display(views)
        self.lcdNumber_3.display(likes)
        self.setWindowTitle(user_name+"_B站粉丝数显示")  # 设置窗口标题
        self.setStatusTip(user_name+"_B站粉丝数显示")  # 状态栏提示
        # 新建一个QTimer对象
        self.timer = QBasicTimer()  # QTimer()貌似不行,不知何故?
        self.timer.start(5000, self)  # 间隔5秒钟执行一次,防止被拦截。

    def timerEvent(self, event):
        if event.timerId() == self.timer.timerId():
            if len(sys.argv) > 1:
                uid = sys.argv[1]
            else:
                uid = "323204204"
            headers = {
                'Host': 'api.bilibili.com',
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0',
                'Cookie': "*************cookie值自己动手获取"
            }
            like_view_url = 'http://api.bilibili.com/x/space/upstat?mid=%s' % uid
            fans_url = "http://api.bilibili.com/x/relation/stat?vmid=%s" % uid
            like_view = requests.get(url=like_view_url, headers=headers)
            fans = requests.get(url=fans_url, headers=headers)
            like_view_num = json.loads(like_view.text)
            fans_num = json.loads(fans.text)
            if fans_num['code'] != 0:
                fans_nums = 0
            else:
                fans_nums = fans_num['data']['follower']
            if like_view_num['code'] != 0:
                views = 0
                likes = 0
            else:
                views = like_view_num['data']["archive"]["view"]
                likes = like_view_num['data']['likes']
            self.lcdNumber.display(fans_nums)
            self.lcdNumber_2.display(views)
            self.lcdNumber_3.display(likes)


app = QApplication(sys.argv)
window = MainWindow()
# window.setWindowFlags(Qt.WindowMinimizeButtonHint) # 最大化按钮和关闭按钮都禁用
window.setWindowFlags(Qt.WindowStaysOnTopHint)  # 窗口处于最顶层
window.setFixedSize(window.width(), window.height())  # 固定大小,禁止缩放。
window.show()
sys.exit(app.exec_())

pyinstaller打包为exe文件,因为通过LoadUi加载的QT5设计保存的ui文件,所以需要把ui文件和exe文件放在同一个目录下。

在这里插入图片描述

默认显示自己的数据

在这里插入图片描述

加上uid可以显示其他人的数据。

在这里插入图片描述

有需要的可以自行完善。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值