QPainter 类在QWidget (控件)上执行绘图操作,它是一个绘制工具,为大部分图形界面提供了高度优化的函数,使QPainter类可以绘制从简单的直线到复杂的饼图。
绘制操作在QWidget.paintEvent()中完成。绘制方法必须放在QtGui.QPainter 对象的begin()和end() 之间。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 类用于绘图设备的图像显示,它可以作为一个QPaintDevice 对象,也可以加载到一个控件中,通常是标签或按钮,用于标签或按钮上的显示图像。QPixmap 可以读取的图像文件类型有BMP , GIF , JPG , JPEG , PNG, PBM , PGM , PPM , XBM , XPM 等。
方法 | 描述 |
copy() | 从QRect 对象复制到 QPixmap对象 |
fromImage() | 将QImage 对象转换为QPixmap对象 |
grabWidget() | 从给定的窗口小控件创建一个像素图 |
grabWindow() | 在窗口中创建数据的像素图 |
load() | 加载图像文件作为QPixmap对象。 |
save() | 将QPixmap 对象保存为文件 |
toImage() | 将QPixmap对象转换为QImage对象 |
为用户提供的拖曳功能很直观,很多桌面应用程序中,复制或移动对象都可以通过拖曳来完成
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
判断函数 | 设置函数 | 获取函数 | 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 类提供了对系统剪切板的访问,可以在应用程序之间复制和粘贴数据,它的操作类似于QDrag类
QApplication 类有一个静态方法clipboard(), 它返回对剪贴板对象的引用任何类型的MimeData都可以从剪贴板复制或粘贴。
方法 | 描述 |
clear() | 清除剪贴板的内容。 |
setImage() | 将QImage对象复制到剪贴板中。 |
setMimeData() | 将MIME数据设置为剪贴板。 |
setPixmap() | 从剪贴板中复制Pixmap对象。 |
setText() | 从剪贴板中复制文本。 |
text() | 从剪贴板中检索文本。 |
信号 | 描述 |
dataChanged | 当剪贴板内容发生变化时,这个信号被发射。 |
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 通过 setDisplayFormat() 函数来设置显示的日期时间格式。
方法 | 描述 |
setDisplayFormat() | 设置日期时间格式: yyyy, 代表年份,用四位数表示。 MM, 代表月份,取值范围为01-12 dd, 代表日, 取值在01-31 HH, 代表小时, 取值范围在00-23 mm , 代表分钟, 取值范围在00-59 ss, 代表秒, 取值范围在00-59 |
setMinimumDate() | 设置控件的最小日期 |
setMaximumDate() | 设置控件的最大日期 |
time() | 返回编辑的时间 |
date() | 返回编辑的日期 |
信号 | 含义 |
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 控件是由文本按钮、图标或其他小控件按钮组成的可移动面板。通常位于菜单栏下面。
方法 | 描述 |
addAction() | 添加具有文本或图标的工具按钮。 |
addSeperator() | 分组显示工具按钮。 |
addWidget() | 添加工具栏中按钮以外的控件 |
addToolBar() | 使用QMainWindow 类的方法添加一个新的工具栏 |
setMoveable() | 工具栏变得可移动 |
setOrientation() | 工具栏的方向可以设计为Qt.Horizontal 或 Qt.vertical |
MainWindow 对象在底部保留一个水平条,作为状态栏,用于显示永久的或临时的状态信息。
通过主窗口的QMainWindow 的setStatusBar() 函数设置状态栏,核心代码为:
self.statusBar = QStatusBar()
self.setStatusBar(self.statusBar)
方法 | 描述 |
addWidget() | 在状态栏中添加给定的窗口小控件对象 |
addPermanentWIdget() | 在状态栏中永久添加给定的窗口小控件对象。 |
showMessage() | 在状态栏中显示一条临时信息指定时间间隔 |
clearMessage() | 删除正在显示的临时信息。 |
removeWidget() | 从状态栏中删除指定的小控件。 |