登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 jl2587t 于 2021-2-1 17:02 编辑
基于pyQt5的界面动态绘图(提供实时动态风画图)
本文提供了一个基于pyqt5的界面绘图,主要原理就是设计一个类,继承于QWidget控件,然后重写绘图事件paintEvent,在其内部实现重新绘图,利用update()函数动态更新,文章最后提供了一个动态显示风向风速的案例。
画图类下面作者给出了这个类 class PaintArea(QWidget): def __init__(self,parent = None, *args, **kwargs): super().__init__(parent, *args, **kwargs) self.setPalette(QPalette(QColor(240,240,240)))#设置背景颜色 self.setAutoFillBackground(True)#设置窗口自动填充背景 def paintEvent(self, event):#重写事件 self.resize(self.width(),self.width()) self.painter = QPainter()#创建绘图类 self.painter.begin(self)#开始 #在这里画图 self.painter.end()#结束
基于pyQt5的界面绘图下面是一个基于pyqt5的画图实践,作者画了一个边缘为黑色,内部填充蓝色的圆 from PyQt5.Qt import *
class PaintArea(QWidget): def __init__(self,parent = None, *args, **kwargs): super().__init__(parent, *args, **kwargs) self.setPalette(QPalette(QColor(240,240,240)))#设置背景颜色 self.setAutoFillBackground(True)#设置窗口自动填充背景 def paintEvent(self, event):#重写事件 self.resize(self.width(),self.width()) self.rect_base = QRect(20,20,self.width()-40,self.width()-40) self.painter = QPainter()#创建绘图类 self.painter.begin(self)#开始
self.painter.setBrush(QColor(100,100,255))#设置画刷用于填充 self.painter.setPen(QPen(QColor(0,0,0),10,Qt.SolidLine))#设置画笔,画边缘 self.painter.drawEllipse(self.rect_base)#画园 self.painter.end()#结束
class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("pyqt5画图类") self.resize(500,500) self.setup_ui()
def setup_ui(self): #子控件加这里 self.area = PaintArea(self)#添加画图控件 self.area.resize(300,300)#设置大小 self.area.move(100,100)#设置位置 if __name__ == "__main__": import sys app = QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
拓展实践(实时动态风)利用update()函数,实现动态绘制风向风速,为了方便动态布局,里面的所有长度信息均是动态的,随绘图尺寸改变而改变。
CSDN有更详细的解释 没权利发网址,见谅htps://blog.csdn.net/weixin_42372313/article/details/113509097
|