admin管理员组文章数量:1666873
文章目录
- 前言
- QPainter
- 三种方法自定义paintEvent()函数
-
- 1、使用Designer的promote功能
- 2、自己定义一个类,并继承QWidget,在自己的类里面重写paintEvent()
- 3、动态的添加方法
前言
QPainter类负责绘画
简单来说,就是你想要将你的app设计成什么样子,都需要重写QPainter来实现
QPainter
简单的绘图,我们通常用QPainter,举个例子:
# -*- coding: utf-8 -*-
# 简单的QPainter程序
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class MyWindow(QMainWindow):
def __init__(self):
super(MyWindow, self).__init__()
self.setFixedSize(400, 400)
self.show()
def paintEvent(self, event):
# 在QMainWindow上绘图
qp = QPainter(self)
# 蓝色,粗细为2,实线
pen = QPen(Qt.blue, 2, Qt.SolidLine)
qp.setPen(pen)
# 画一个直径400的圆
qp.drawEllipse(0, 0, 400, 400)
app = QApplication(sys.argv)
win = MyWindow()
sys.exit(app.exec_())
这就是一个简单的Qt程序,效果就是建立一个400*400大小的窗口,并在中心化一个直径400的圆。
三种方法自定义paintEvent()函数
但这个程序其实很有问题,因为我们自己做开发的时候,不可能直接在主窗口上绘图,通常来讲,我们会给主窗口一个或则多个container,然后container里面再放入各种widget,而我们需要绘制的内容,往往是在这些widget当中的。比如我们将上面的code改改,添加一个Qwidget:
def __init__(self):
super(MyWindow, self).__init__()
self.setFixedSize(400, 400)
self.widget = QWidget(self)
self.widget.setFixedSize(300, 300)
self.widget.setStyleSheet("background-color:white")
self.show()
这里我就遇到一个问题,QPainter说明文档里面倒是
版权声明:本文标题:Qt学习笔记#8:QPainter 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1730076789a1221881.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论