PyQt5: chapter10-在两次鼠标单击之间画一条线

实例

  1. 创建基于Dialog without Buttons模板窗口
  2. 添加Label部件,其text为Click the mouse and drag it to draw the line of desired size
  3. 保存为demoDrawLine.ui
  4. 使用pyuic生成demoDrawLine.py
  5. 创建callDrawLine.py
import sys
from PyQt5.QtWidgets import QDialog,QApplication
from PyQt5.QtGui import QPainter
from cookbook_200505.demoDrawLine import *

class MyForm(QDialog):
    def __init__(self):
        super().__init__()
        self.ui=Ui_Dialog()
        self.ui.setupUi(self)
        self.pos1=[0,0]
        self.pos2=[0,0]
        self.show()
    def paintEvent(self, event):
        qp=QPainter()
        qp.begin(self)
        qp.drawLine(self.pos1[0],self.pos1[1],self.pos2[0],self.pos2[1])
        qp.end()
    def mousePressEvent(self, event):
        if event.buttons()&QtCore.Qt.LeftButton:
            self.pos1[0],self.pos1[1]=event.pos().x(),event.pos().y()
    def mouseReleaseEvent(self, event):
        self.pos2[0],self.pos2[1]=event.pos().x(),event.pos().y()
        self.update()
if __name__=="__main__":
    app=QApplication(sys.argv)
    w=MyForm()
    w.show()
    sys.exit(app.exec())

猜你喜欢

转载自blog.csdn.net/weixin_43307431/article/details/105935551