import sys,math
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class Drawing(QWidget):
def __init__(self,parent=None):
super(Drawing,self).__init__(parent)
self.resize(300,200)
self.setWindowTitle('在窗口画点')
self.pen2 = QPen()
self.pen2.setColor(Qt.green)
self.pen2.setWidth(20)
def paintEvent(self,event):
#初始化绘图工具
qp=QPainter()
#开始在窗口绘制
qp.begin(self)
#自定义画点方法
self.drawPoints(qp)
#结束在窗口的绘制
qp.end()
def drawPoints(self,qp):
qp.setPen(self.pen2)
size=self.size()
for i in range(1000):
#绘制郑玄函数图像,它的周期是【-100,100】
x=100*(-1+2.0*i/1000)+size.width()/2.0
y=-50*math.sin((x-size.width()/2.0)*math.pi/50)+size.height()/2.0
qp.drawPoint(x,y)
if __name__ == '__main__':
app=QApplication(sys.argv)
demo=Drawing()
demo.show()
sys.exit(app.exec_())
from PyQt5 import QtWidgets, QtGui, QtCore
class ImageScroller(QtWidgets.QWidget):
def __init__(self):
self.chosen_points = []
QtWidgets.QWidget.__init__(self)
self._image = QtGui.QPixmap("image.png")
def paintEvent(self, paint_event):
painter = QtGui.QPainter(self)
painter.drawPixmap(self.rect(), self._image)
pen = QtGui.QPen()
pen.setWidth(20)
painter.setPen(pen)
painter.setRenderHint(QtGui.QPainter.Antialiasing, True)
painter.drawPoint(300, 300)
painter.drawLine(100, 100, 400, 400)
for pos in self.chosen_points:
painter.drawPoint(pos)
def mouseReleaseEvent(self, cursor_event):
self.chosen_points.append(cursor_event.pos())
# self.chosen_points.append(self.mapFromGlobal(QtGui.QCursor.pos()))
self.update()
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
w = ImageScroller()
w.resize(640, 480)
w.show()
sys.exit(app.exec_())
补个圆点样式
QtGui.QPen(QColor(127,255,0), 15,Qt.SolidLine,Qt.RoundCap)