用 python pyqt 手把手写一个b站常见的数据可视化的框架(一)

最近b站上有不少数据可视化的视频,
在这里插入图片描述
据说基本上都是由 Jannchie见齐 大佬的框架制作的,听说这个框架用起来很方便(虽然我暂时还没用过),不过这么多人用那就表示做的相当好,但是我的毕设是自己搞一个数据可视化系统,毕设总不能拿别人的吧,所以我就干脆搞一个类似的做毕设得了,
话说我舍友也是b站up主,一直吐槽自己辛苦做的mad没人看,别人导几个数据进去就有几十万播放(做mad死路一条.jpg)

用qt就可以了,昨天开始做的,现在还是个半成品,界面很简陋,这几天会完善好,喜欢的可以去github上给个star
先给大家眼睛道个歉
用法还是很简单的,传一个字典进去,字典中每一个key对应一个list,list中储存值的变化,可以设置最大显示数量,和动画时间,和左侧的标签属性,不设置默认为text,以后还可以设置更多花样,这几天会搞定
在这里插入图片描述

演示效果
()在这里插入图片描述在这里插入图片描述
写一下制作过程(只是个半成品正在完善),先说最基本的
先说一下QPropertyAnimation,可以自定义控件的变化与时间

@pyqtSlot()
def on_pushButton_clicked(self):
    self.label = QtWidgets.QLabel(self)
    self.label.setGeometry(QtCore.QRect(150, 142, 141, 141))
    self.label.setStyleSheet("background-color: rgb(119, 78, 255);") 
    self.label.show()
    self.anim = QPropertyAnimation(self.label, b"geometry")#操作self.label
    self.anim.setDuration(1000)#动画时间10s
    self.anim.setStartValue(QtCore.QRect(150, 142, 141, 141))#起始位置
    self.anim.setKeyValueAt(0.5, QtCore.QRect(150, 80, 141, 141))#50%时的位置
    self.anim.setEndValue(QtCore.QRect(60, 80, 141, 141))#结束位置
    self.anim.start()

在这里插入图片描述

1首先写一个界面,为了方便观察背景设为白色,加一个按钮用来开始

在这里插入图片描述

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(1000, 890)
        Dialog.setSizeGripEnabled(True)
        self.setStyleSheet("background-color: rgb(255, 255, 255)")
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(50, 800, 100, 50))
        self.pushButton.setObjectName("pushButton")
        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):

        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.pushButton.setText(_translate("Dialog", "开始吧"))

2写一个随参数变化位置与长度的条
在这里插入图片描述
就是见齐大佬视频里的这个啦,这个条可以通过Qlabel实现,设置其底色为红即可
负责计算每个条的xywl(x,y,width,lenght即位置与大小)等参数的函数以后再说,先默认其是计算好的,
xywl_list表示在移动过程中依次要去的位置,
time为动画时间,未定义默认为每次变化一秒
color

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值