python画旋转圆_Python使用PyQt界面库绘制不停旋转的圆控件

 2023-09-07 阅读 27 评论 0

摘要:Python是一种面向对象的高级动态编程语言,相对于其它如C/C++语言,具有上手快、代码量少、开发效率高等特点,Qt是跨平台的C++图形用户界面应用程序开发框架,是当前主流的GUI开发工具之一,其在Python下的绑定是PyQt库。使用

Python是一种面向对象的高级动态编程语言,相对于其它如C/C++语言,具有上手快、代码量少、开发效率高等特点,Qt是跨平台的C++图形用户界面应用程序开发框架,是当前主流的GUI开发工具之一,其在Python下的绑定是PyQt库。使用“Python+PyQt”架构编写应用软件,可以做到在兼顾软件运行效率的前提下,也可以大大节省开发者的时间成本。

关于自绘控件或自定义控件的编程方法,目前能找到的资料大多是C++语言下Qt的例子,而直接使用PyQt实现的资料很少,这儿给出一个在Python语言中使用PyQt库自定义不停旋转的圆控件的例子。

控件例子说明

代码实现后的控件运行界面如下图所示:

8c1001e93901213fdb6e76aa59e736d12f2e9562.jpg

上图中显示了一个不停旋转的圆,圆内部是蓝白颜色交叉显示的四部分扇形区域,外圈为灰色的圆形带。

代码实现过程

python图形界面开发?在代码实现中,继承于PyQt的QWidget基类,定义了一个旋转的圆控件类----RotateCircleWidget,在该类中重定义paintEvent事件函数,在该函数内部实现圆控件的外观显示。调用定时器函数实现其不停旋转功能。下面逐步说明主要的代码实现方法。

1、类的初始化

初始化每次旋转的角度变量,定义定时器,绑定超时函数及启动定时器,设置每隔50ms旋转一次,代码如下图所示:

u=1619257130,1467794935&fm=173&app=25&f=JPEG?w=576&h=179&s=B284B14893F0BD7014C58C02020070C0

2、重定义paintEvent事件

这是自绘旋转圆控件中代码主要实现的地方,定义了控件在不同情况下的外观,这儿请参考注释,不作详细说明了,主要代码如下图所示:

u=3913442204,215703456&fm=173&app=25&f=JPEG?w=639&h=424&s=B29431C05AACB44F1ED8D0030200E0C0

3、定时器超时事件

在定时器的超时事件中,每次旋转的角度变量自加2,调用update()函数实现控件外观的不停刷新,达到旋转的效果。主要代码如下图所示:

u=2779576468,3443938369&fm=173&app=25&f=JPEG?w=568&h=58

python 旋转 opengl、控件测试例子

调用上面的控件类,将其放到主窗口中,即可看到本文开头不停旋转的圆运行界面。主要实现代码如下图所示:

u=1467840619,905303276&fm=173&app=25&f=JPEG?w=476&h=401&s=BA85B148DAAEB44F06D51C0B0200F0C0

备注

PyQt中大部分函数同C++平台下Qt的函数完全一样,只是在Python和C++下语法有所不同,如变量的定义、赋值等,使用Python+PyQt框架,实现同样的功能,代码量要远远小于C++平台下的代码量,如本例加上注释、空行等才不足80行代码,大大节约了编程时间。

可参考视频演示:python+pyqt自定义控件:旋转圆控件

欢迎加关注,共同交流。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/17670.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息