【概览】

本文实现如下的程序:(在窗体中绘画出[-100, 100]两个周期的正弦函数图像

主要步骤如下:

1、在eric6中新建项目,新建窗体

2、(自动打开)进入PyQt5 Desinger,编辑图形界面,保存

3、回到eric 6,对上一步得到的界面文件 drawing.ui 文件右击,编译窗体,得到 Ui_drawing.py 文件

4、然后再对 drawing.ui 文件右击,生成对话框代码,得到 drawing.py 文件。(在drawing.py中添加自己的程序逻辑

5、py2exe打包成exe文件(此步略)

【正文】

接【概览】第4步:

在 drawing.py 中,先定义绘画事件:

    def paintEvent(self, event):
qp = QtGui.QPainter()
qp.begin(self)
self.drawPoints(qp) #自定义画点方法
qp.end()

然后,自定义画点方法:

    def drawPoints(self,  qp):
qp.setPen(QtCore.Qt.red)
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)

合起来,drawing.py 是这个样子:

# -*- coding: utf-8 -*-

"""
Module implementing Drawing.
"""
import sys, math from PyQt5 import QtGui, QtCore
from PyQt5.QtWidgets import QDialog, QApplication from Ui_drawing import Ui_Drawing class Drawing(QDialog, Ui_Drawing): def __init__(self, parent=None):
super(Drawing, self).__init__(parent)
self.setupUi(self) def paintEvent(self, event):
qp = QtGui.QPainter()
qp.begin(self)
self.drawPoints(qp)#自定义画点方法
qp.end() def drawPoints(self, qp):
qp.setPen(QtCore.Qt.red)
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)
dlg = Drawing()
dlg.show()
sys.exit(app.exec_())

(欢迎转载,不过请保留作者名及原文链接。)

用 eric6 与 PyQt5 实现python的极速GUI编程(系列03)---- Drawing(绘图)(2)-- 画点的更多相关文章

  1. 用 eric6 与 PyQt5 实现python的极速GUI编程(系列01)--Hello world!

    [题记] 我是一个菜鸟,这个系列是我的学习笔记. PyQt5 出来有一段时间了, PyQt5 较之 PyQt4 有一些变化,而网上流传的几乎都是 PyQt4 的教程,照搬的话大多会出错. eric6 ...

  2. 用 eric6 与 PyQt5 实现python的极速GUI编程(35篇PyQT和200多篇Python)

    [题记] 我是一个菜鸟,这个系列是我的学习笔记. PyQt5 出来有一段时间了, PyQt5 较之 PyQt4 有一些变化,而网上流传的几乎都是 PyQt4 的教程,照搬的话大多会出错. eric6 ...

  3. 用 eric6 与 PyQt5 实现python的极速GUI编程(系列04)---- PyQt5自带教程:地址簿(address book)

    [引子] 在PyQt5自带教程中,地址簿(address book)程序没有完全实现界面与业务逻辑分离. 本文我打算用eric6+PyQt5对其进行改写,以实现界面与逻辑完全分离. [概览] 1.界面 ...

  4. 用 eric6 与 PyQt5 实现python的极速GUI编程(系列03)---- Drawing(绘图)(1)-- 绘写文字

    [概览] 本文实现如下的程序:(在窗体中绘画出文字) 主要步骤如下: 1.在eric6中新建项目,新建窗体 2.(自动打开)进入PyQt5 Desinger,编辑图形界面,保存 3.回到eric 6, ...

  5. 用 eric6 与 PyQt5 实现python的极速GUI编程(系列02)---- 省市县(区)下拉列表多级联动

    [概览] 本文实现如下的程序: 主要步骤如下: 1.在eric6中新建项目,新建窗体 2.(自动打开)进入PyQt5 Desinger,编辑图形界面,保存 3.回到eric 6,对上一步得到的界面文件 ...

  6. 用 eric6 与 PyQt5 实现python的极速GUI编程(系列03)---- Drawing(绘图)(3)-- 画线

    [概览] 本文实现如下的程序:(在窗体中绘画出各种不同风格的线条) 主要步骤如下: 1.在eric6中新建项目,新建窗体 2.(自动打开)进入PyQt5 Desinger,编辑图形界面,保存 3.回到 ...

  7. python基础知识-GUI编程-TK-StringVar

    1.如何引出StringVar 之前一直认为StringVar就是类似于Java的String类型的对象变量,今天在想要设置StringVar变量的值的时候,通过搜索发现StringVar并不是pyt ...

  8. Python gui编程pyQt5安装步骤t

    Python gui编程pyQt5安装步骤         pip install PyQt5 Pip3 install PyQt5               https://riverbankco ...

  9. Python gui编程pyQt5安装步骤

    Python gui编程pyQt5安装步骤 =============================== -m PyQt5.uic.pyuic  $FileName$ -o $FileNameWit ...

随机推荐

  1. 更轻量的 View Controllers

    iew controllers 通常是 iOS 项目中最大的文件,并且它们包含了许多不必要的代码.所以 View controllers 中的代码几乎总是复用率最低的.我们将会看到给 view con ...

  2. OC语言-04-OC语言-核心语法

    一.点语法 1> 基本使用 点语法本质上是set方法/get方法的调用 2> 使用注意 若出现在赋值操作符的右边,在执行时会转换成get方法 若出现在赋值操作符的左边,在执行时会转换成se ...

  3. python 读写、创建 文件

    python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目 ...

  4. AFTER触发器与INSTEAD OF触发器

    在对表进行操作时,总会产生 INSERTED 和(或)DELETED表,不管这个操作是否已经进行.这里的和/或,要看进行的什么操作,插入,产生 INSERTED 表,删除,产生DELETED表,而up ...

  5. [转] Paxos算法2-算法过程(实现)

    请先参考前文:Paxos算法1 1.编号处理 根据P2c ,proposer在提案前会先咨询acceptor查看其批准的最大的编号和value,再决定提交哪个value.之前我们一直强调更高编号的pr ...

  6. 常用oracle函数

    一.逗号拼接字段 SELECT LISTAGG(aa, ',') WITHIN GROUP (ORDER BY aa) AS AA FROM *** where id<5 输出结果例如:1,2, ...

  7. 《MySQL技术内幕——SQL编程》读书笔记(二)——数据类型

    对数据类型的选择将影响与数据库交互的应用程序的性能. 1.通常来说,如果一个页内可以存放尽可能多的行,那么数据库的性能就越好,因此选择一个正确的数据类型至关重要. 2.另一方面,如果在数据库中创建表时 ...

  8. PS网页设计教程XXIX——如何在PS中设计一个画廊布局

    作为编码者,美工基础是偏弱的.我们可以参考一些成熟的网页PS教程,提高自身的设计能力.套用一句话,“熟读唐诗三百首,不会作诗也会吟”. 本系列的教程来源于网上的PS教程,都是国外的,全英文的.本人尝试 ...

  9. CI框架SESSION重写

    这个是我平时用的是 PHP 自己的 Session 机制,是真正的 PHP Session,存储在服务器端,而不是用的 cookie 接口完全兼容于 CI 2.0.x 的 Session 类库,也就是 ...

  10. 将text 文件转为List

    Integer 类型 ArrayList<Integer> Mlist = new ArrayList<Integer>(); Scanner scM = new Scanne ...