PyQt5学习笔记五(窗口绘图控件)

QPainter

QPainter 类在QWidget (控件)上执行绘图操作,它是一个绘制工具,为大部分图形界面提供了高度优化的函数,使QPainter类可以绘制从简单的直线到复杂的饼图。

绘制操作在QWidget.paintEvent()中完成。绘制方法必须放在QtGui.QPainter 对象的begin()和end() 之间。QPainter 类在控件或其他绘图设备上执行较低级别的图形绘制功能。

QPainter 类的方法
方法 描述
begin() 开始在目标设备上绘制。
drawArc() 再开始角度和最终角度之间画弧
drawEllipse() 在一个矩形内画一个椭圆。
drawLine(int x1,int y1,int x2,int y2) 绘制一条指定端点坐标的线。绘制从(x1,y1)到(x2,y2)的直线并且设置当前画笔位置为(x2,y2)
drawPixmap() 从图像文件中提取Pixmap并将显示在特定的位置。
drwaPolygon() 使用坐标数组绘制多边形、
drawRect(int x1,int w, int y2) 给定宽度w和高度W 和高度 h 从左上角坐标(x1,y1)绘制一个图像

 

drawText()

显示给定坐标处的文字。
fillRext() 使用QCcolor 参数填充矩形
setBrush 设置画笔风格
setPen() 设置用于绘制的笔的颜色、大小、和格式。
画笔风格
枚举类型 描述
Qt.Nopen 没有线。比如Qpainter.drawRect()填充,但没有绘制任何边界线。
Qt.SolidLine 一条简单的线。
Qt.DashLine 由一些像素分隔的短线。
Qt.DotLine 由一些像素分隔的点
Qt.DashDotLint 轮流交替的点和短线。
Qt.DashDotDoLine 一条短线,两个点
Qt.MPenStyle 画笔风格的掩码

QPixmap

QPixmap 类用于绘图设备的图像显示,它可以作为一个QPaintDevice 对象,也可以加载到一个控件中,通常是标签或按钮,用于标签或按钮上的显示图像。QPixmap 可以读取的图像文件类型有BMP , GIF , JPG  ,  JPEG ,  PNG,  PBM , PGM , PPM , XBM , XPM 等。

QPixmap类中常用方法
方法 描述
copy() 从QRect 对象复制到 QPixmap对象
fromImage() 将QImage 对象转换为QPixmap对象
grabWidget() 从给定的窗口小控件创建一个像素图
grabWindow() 在窗口中创建数据的像素图
load() 加载图像文件作为QPixmap对象。
save() 将QPixmap 对象保存为文件
toImage() 将QPixmap对象转换为QImage对象

拖曳与剪贴板

为用户提供的拖曳功能很直观,很多桌面应用程序中,复制或移动对象都可以通过拖曳来完成


百度百科:MIME词条

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

它是一个互联网标准,扩展了电子邮件标准,使其能够支持:

非ASCII字符文本;非文本格式附件(二进制、声音、图像等);由多部分(multiple parts)组成的消息体;包含非ASCII字符的头信息(Header information)。

每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。

常见的MIME类型(通用型):

超文本标记语言文本 .html text/html

xml文档 .xml text/xml

XHTML文档 .xhtml application/xhtml+xml

普通文本 .txt text/plain

RTF文本 .rtf application/rtf

PDF文档 .pdf application/pdf

Microsoft Word文件 .word application/msword

PNG图像 .png image/png

GIF图形 .gif image/gif

JPEG图形 .jpeg,.jpg image/jpeg

au声音文件 .au audio/basic

MIDI音乐文件 mid,.midi audio/midi,audio/x-midi

RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio

MPEG文件 .mpg,.mpeg video/mpeg

AVI文件 .avi video/x-msvideo

GZIP文件 .gz application/x-gzip

TAR文件 .tar application/x-tar


MimeData类函数允许检测和使用方便的MIME类型
判断函数 设置函数 获取函数 MIME类
hasText() text() setText() text/plain
hasHtml() html() setHtml() text/html
hasUrls() urls() setUrls() text/uri-list
hasImage() imageDate() setImageDate() image/*
hasColor() colorData() setColorData() application/x-color

许多QWidget对象都支持拖曳动作,允许拖曳数据的控件必须设置 QWidget.setDragEnabled() 为 True,控件应该响应拖曳事件,以便存储所拖曳的数据。

拖曳事件表
事件 描述
DragEnterEvent 当执行一个拖曳控件操作,并且鼠标进入控件时,这个事件将会触发。在这个事件中可以获得被操作的窗口控件,还可以有条件的接受或拒绝该拖曳操作。
DragMoveEvent 在执行一个拖曳控件操作时会触发该事件。
DragLeaveEvent 当执行一个拖曳控件操作,并且鼠标指针离开该控件时,这个事件将会触发。
DropEvent 当拖曳操作在目标控件上被释放时,这个事件被触发

QClipboard

Qclipboard 类提供了对系统剪切板的访问,可以在应用程序之间复制和粘贴数据,它的操作类似于QDrag类

QApplication 类有一个静态方法clipboard(), 它返回对剪贴板对象的引用任何类型的MimeData都可以从剪贴板复制或粘贴。

QClipboard类中常用的方法
方法 描述
clear() 清除剪贴板的内容。
setImage() 将QImage对象复制到剪贴板中。
setMimeData() 将MIME数据设置为剪贴板。
setPixmap() 从剪贴板中复制Pixmap对象。
setText() 从剪贴板中复制文本。
text() 从剪贴板中检索文本。
QClipboard类中的信号
信号 描述
dataChanged 当剪贴板内容发生变化时,这个信号被发射。

日历和时间

QCalendar

Qcalendar 是一个日历控件, 它提供一基于月份的视图,默认选中的是今天的日期,也可以对日期的范围进行规范。

QCalendar类中的常用方法
方法 描述
setDataRange() 设置日期范围供选择
setFirstDayOfWeek

重新设置星期的第一个天,默认是星期日。其参数枚举值如下:

Qt.Monday,  星期一

Qt.Tuesday,  星期二

Qt.Wednesday ,  星期三

Qt.Thursday ,  星期四

Qt.Friday ,  星期五

Qt.Saturday,  星期六

Qt.Sunday , 星期日

setMinimumDate() 设置最小日期
setMaximumDate() 设置最大日期
setSelectedDate() 设置一个QData对象,作为日期控件所选定的日期
maximumDate() 获取日历控件的最大日期
minimumDate() 获取日历控件的最小日期
selectedDate() 返回当前选定的日期
setGridvisible() 设置日历控件是否显示网络

QDateTimeEdit

QDateTimeEdit 是一个允许用户编辑时间的控件,可以使用键盘和上下箭头按钮来增加或减少日期时间值。

QDateTimeEdit 通过 setDisplayFormat() 函数来设置显示的日期时间格式。

QDateTimeEdit 类的常用方法
方法

描述

setDisplayFormat()

设置日期时间格式:

yyyy,  代表年份,用四位数表示。

MM, 代表月份,取值范围为01-12

dd,  代表日,  取值在01-31

HH, 代表小时, 取值范围在00-23

mm ,  代表分钟, 取值范围在00-59

ss, 代表秒, 取值范围在00-59

setMinimumDate() 设置控件的最小日期
setMaximumDate() 设置控件的最大日期
time() 返回编辑的时间
date() 返回编辑的日期
QDateTimeEdit类中的信号
信号 含义
dateChanged 当日期改变发射此信号
dateTimeChanged 当日期时间改变时发射此信号
timeChanged 当时间改变时发射此信号。

菜单栏、工具栏与状态栏

要创建一个弹出菜单,PyQt API 提供了createPopupMenu() 函数;memuBar()函数用于返回主窗口的QMenuBar 对象;addMenu()函数可以将菜单添加到菜单栏中,通过addAction() 函数可以在系统菜单中进行添加操作。

设计菜单系统时的一些重要方法
方法 描述
menuBar() 返回主窗口的QMenuBar对象
addMenu() 在菜单栏中添加一个新的QMenu对象。
addAction() 向QMenu小控件中添加一个操作按钮,其中包含文本或图标。
setEnabled() 将操作按钮状态设置为启用/禁用
addSeperator() 在菜单中添加一条分隔线。
clear() 删除菜单/菜单栏的内容。
setShortcut() 将快捷键关联单操作按钮。
setText() 设置菜单项的文本。
setTitle () 设置QMenu小控件的标题。
text() 返回与QAction对象关联的文本
title() 返回QMenu 小控件的标题

QToolBar

QToolBar 控件是由文本按钮、图标或其他小控件按钮组成的可移动面板。通常位于菜单栏下面。

QToolBar 类中的常用方法
方法 描述
addAction() 添加具有文本或图标的工具按钮。
addSeperator() 分组显示工具按钮。
addWidget() 添加工具栏中按钮以外的控件
addToolBar() 使用QMainWindow 类的方法添加一个新的工具栏
setMoveable() 工具栏变得可移动
setOrientation() 工具栏的方向可以设计为Qt.Horizontal 或 Qt.vertical

QStatusBar

MainWindow 对象在底部保留一个水平条,作为状态栏,用于显示永久的或临时的状态信息。

通过主窗口的QMainWindow 的setStatusBar() 函数设置状态栏,核心代码为:

self.statusBar = QStatusBar()
self.setStatusBar(self.statusBar)
QStatusBar 类的常用方法
方法 描述
addWidget() 在状态栏中添加给定的窗口小控件对象
addPermanentWIdget() 在状态栏中永久添加给定的窗口小控件对象。
showMessage() 在状态栏中显示一条临时信息指定时间间隔
clearMessage() 删除正在显示的临时信息。
removeWidget() 从状态栏中删除指定的小控件。

 

你可能感兴趣的:(pyqt5)