From 61931c294aaae02b790cf798d0432d0e55e7089f Mon Sep 17 00:00:00 2001 From: necan Date: Fri, 8 Jun 2018 19:38:10 +0800 Subject: [PATCH 1/3] Initial commit --- .gitattributes | 2 + "1.\344\273\213\347\273\215.md" | 94 + "10.\345\233\276\345\275\242.md" | 1515 +++++++++++++++++ ...32\344\271\211\347\273\204\344\273\266.md" | 461 +++++ ...13\345\272\217\351\252\250\346\236\266.md" | 859 ++++++++++ ...27\346\226\257\346\226\271\345\235\227.md" | 657 +++++++ "2.\347\254\254\344\270\200\346\255\245.md" | 287 ++++ ...14\345\267\245\345\205\267\346\240\217.md" | 809 +++++++++ "4.\345\270\203\345\261\200.md" | 821 +++++++++ "5.\344\272\213\344\273\266.md" | 912 ++++++++++ "6.\345\257\271\350\257\235\346\241\206.md" | 485 ++++++ "7.\347\273\204\344\273\266.md" | 1270 ++++++++++++++ ...30\347\272\247\347\273\204\344\273\266.md" | 1072 ++++++++++++ "9.\346\213\226\346\224\276.md" | 296 ++++ README.md | 1 + assets/1527417412183.png | Bin 0 -> 1970 bytes assets/1527417584346.png | Bin 0 -> 1833 bytes assets/1527417657992.png | Bin 0 -> 3295 bytes assets/1527561443370.png | Bin 0 -> 309 bytes assets/1527561475646.png | Bin 0 -> 346 bytes assets/1527561515784.png | Bin 0 -> 291 bytes assets/1527561810112.png | Bin 0 -> 573 bytes assets/absolute.png | Bin 0 -> 66293 bytes assets/aline.png | Bin 0 -> 2723 bytes assets/bars.jpg | Bin 0 -> 8135 bytes assets/base.jpg | Bin 0 -> 9508 bytes assets/border.png | Bin 0 -> 3147 bytes assets/browser.png | Bin 0 -> 15042 bytes assets/brushes.png | Bin 0 -> 5774 bytes assets/burning.png | Bin 0 -> 7633 bytes assets/buttonwid.png | Bin 0 -> 4695 bytes assets/calculator.png | Bin 0 -> 10740 bytes assets/checkbox.png | Bin 0 -> 5787 bytes assets/checkmenuitem.png | Bin 0 -> 9499 bytes assets/colours.png | Bin 0 -> 3954 bytes assets/combobox.png | Bin 0 -> 5337 bytes assets/containers.jpg | Bin 0 -> 12318 bytes assets/contextmenu.png | Bin 0 -> 6983 bytes assets/coordinates.png | Bin 0 -> 2075 bytes assets/cpuwidget.png | Bin 0 -> 3578 bytes assets/customdialog.png | Bin 0 -> 11601 bytes assets/custompatterns.png | Bin 0 -> 25461 bytes assets/dynamic.jpg | Bin 0 -> 35985 bytes assets/filehunter.png | Bin 0 -> 36871 bytes assets/focusevent.png | Bin 0 -> 3936 bytes assets/gauge.png | Bin 0 -> 8940 bytes assets/gdi2.png | Bin 0 -> 16634 bytes assets/gotoclass.png | Bin 0 -> 11902 bytes assets/gradients.png | Bin 0 -> 3969 bytes assets/helpwindow.png | Bin 0 -> 26991 bytes assets/htmlwin.png | Bin 0 -> 15847 bytes assets/hunter.png | Bin 0 -> 23922 bytes assets/hyperlink.png | Bin 0 -> 8506 bytes assets/iconsshortcuts.png | Bin 0 -> 7700 bytes assets/inheritance.png | Bin 0 -> 8085 bytes assets/joinscaps.png | Bin 0 -> 4955 bytes assets/lines.png | Bin 0 -> 106885 bytes assets/listbox2.png | Bin 0 -> 11483 bytes assets/messagebox.png | Bin 0 -> 10788 bytes assets/modules.jpg | Bin 0 -> 28527 bytes assets/moveevent.png | Bin 0 -> 5029 bytes assets/newclass.png | Bin 0 -> 24277 bytes assets/pens.png | Bin 0 -> 3875 bytes assets/player.png | Bin 0 -> 10436 bytes assets/points.png | Bin 0 -> 6180 bytes assets/radiobutton.png | Bin 0 -> 7814 bytes assets/region_operations.png | Bin 0 -> 4125 bytes assets/rename.png | Bin 0 -> 5477 bytes assets/repository.png | Bin 0 -> 28355 bytes assets/review.png | Bin 0 -> 6006 bytes assets/ruler.png | Bin 0 -> 10821 bytes assets/shapes.png | Bin 0 -> 9833 bytes assets/simple.png | Bin 0 -> 4486 bytes assets/simplemenu.png | Bin 0 -> 7076 bytes assets/simpletoolbar.png | Bin 0 -> 5895 bytes assets/slider.png | Bin 0 -> 4827 bytes assets/spinctrl.png | Bin 0 -> 11532 bytes assets/spreadsheet.png | Bin 0 -> 35037 bytes assets/standardidentifiers.png | Bin 0 -> 14284 bytes assets/star.png | Bin 0 -> 23906 bytes assets/staticbox.png | Bin 0 -> 9261 bytes assets/staticline.png | Bin 0 -> 20561 bytes assets/statictext.png | Bin 0 -> 22953 bytes assets/staticwidgets.jpg | Bin 0 -> 13691 bytes assets/statusbar.png | Bin 0 -> 11152 bytes assets/submenu.png | Bin 0 -> 19782 bytes assets/tetris.png | Bin 0 -> 3692 bytes assets/tetrominoes.png | Bin 0 -> 5709 bytes assets/togglebuttons.png | Bin 0 -> 8066 bytes assets/toolbars.png | Bin 0 -> 7812 bytes assets/toplevel.jpg | Bin 0 -> 19294 bytes assets/undoredo.png | Bin 0 -> 6686 bytes 92 files changed, 9541 insertions(+) create mode 100644 .gitattributes create mode 100644 "1.\344\273\213\347\273\215.md" create mode 100644 "10.\345\233\276\345\275\242.md" create mode 100644 "11.\350\207\252\345\256\232\344\271\211\347\273\204\344\273\266.md" create mode 100644 "12.\347\250\213\345\272\217\351\252\250\346\236\266.md" create mode 100644 "13.\344\277\204\347\275\227\346\226\257\346\226\271\345\235\227.md" create mode 100644 "2.\347\254\254\344\270\200\346\255\245.md" create mode 100644 "3.\350\217\234\345\215\225\345\222\214\345\267\245\345\205\267\346\240\217.md" create mode 100644 "4.\345\270\203\345\261\200.md" create mode 100644 "5.\344\272\213\344\273\266.md" create mode 100644 "6.\345\257\271\350\257\235\346\241\206.md" create mode 100644 "7.\347\273\204\344\273\266.md" create mode 100644 "8.\351\253\230\347\272\247\347\273\204\344\273\266.md" create mode 100644 "9.\346\213\226\346\224\276.md" create mode 100644 README.md create mode 100644 assets/1527417412183.png create mode 100644 assets/1527417584346.png create mode 100644 assets/1527417657992.png create mode 100644 assets/1527561443370.png create mode 100644 assets/1527561475646.png create mode 100644 assets/1527561515784.png create mode 100644 assets/1527561810112.png create mode 100644 assets/absolute.png create mode 100644 assets/aline.png create mode 100644 assets/bars.jpg create mode 100644 assets/base.jpg create mode 100644 assets/border.png create mode 100644 assets/browser.png create mode 100644 assets/brushes.png create mode 100644 assets/burning.png create mode 100644 assets/buttonwid.png create mode 100644 assets/calculator.png create mode 100644 assets/checkbox.png create mode 100644 assets/checkmenuitem.png create mode 100644 assets/colours.png create mode 100644 assets/combobox.png create mode 100644 assets/containers.jpg create mode 100644 assets/contextmenu.png create mode 100644 assets/coordinates.png create mode 100644 assets/cpuwidget.png create mode 100644 assets/customdialog.png create mode 100644 assets/custompatterns.png create mode 100644 assets/dynamic.jpg create mode 100644 assets/filehunter.png create mode 100644 assets/focusevent.png create mode 100644 assets/gauge.png create mode 100644 assets/gdi2.png create mode 100644 assets/gotoclass.png create mode 100644 assets/gradients.png create mode 100644 assets/helpwindow.png create mode 100644 assets/htmlwin.png create mode 100644 assets/hunter.png create mode 100644 assets/hyperlink.png create mode 100644 assets/iconsshortcuts.png create mode 100644 assets/inheritance.png create mode 100644 assets/joinscaps.png create mode 100644 assets/lines.png create mode 100644 assets/listbox2.png create mode 100644 assets/messagebox.png create mode 100644 assets/modules.jpg create mode 100644 assets/moveevent.png create mode 100644 assets/newclass.png create mode 100644 assets/pens.png create mode 100644 assets/player.png create mode 100644 assets/points.png create mode 100644 assets/radiobutton.png create mode 100644 assets/region_operations.png create mode 100644 assets/rename.png create mode 100644 assets/repository.png create mode 100644 assets/review.png create mode 100644 assets/ruler.png create mode 100644 assets/shapes.png create mode 100644 assets/simple.png create mode 100644 assets/simplemenu.png create mode 100644 assets/simpletoolbar.png create mode 100644 assets/slider.png create mode 100644 assets/spinctrl.png create mode 100644 assets/spreadsheet.png create mode 100644 assets/standardidentifiers.png create mode 100644 assets/star.png create mode 100644 assets/staticbox.png create mode 100644 assets/staticline.png create mode 100644 assets/statictext.png create mode 100644 assets/staticwidgets.jpg create mode 100644 assets/statusbar.png create mode 100644 assets/submenu.png create mode 100644 assets/tetris.png create mode 100644 assets/tetrominoes.png create mode 100644 assets/togglebuttons.png create mode 100644 assets/toolbars.png create mode 100644 assets/toplevel.jpg create mode 100644 assets/undoredo.png diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git "a/1.\344\273\213\347\273\215.md" "b/1.\344\273\213\347\273\215.md" new file mode 100644 index 0000000..dd6c08c --- /dev/null +++ "b/1.\344\273\213\347\273\215.md" @@ -0,0 +1,94 @@ +## wxPython 简介 + +wxPython 是一个用于创建桌面 GUI 应用程序的跨平台工具包。 wxPython 的主要作者是 *Robin Dunn*。 借助wxPython,开发人员可以在 Windows,Mac 和各种 Unix 系统上创建应用程序。 wxPython 封装了 wxWidgets,而 wxWidgets 是一个成熟的跨平台 C ++ 库。 + +## wxPython 模块 + +wxPython 由五个基本模块组成。 + +![img](assets/modules.jpg) + + + +Controls 模块:提供了图形应用程序中常见的 widgets。例如 Button、Toolbar 或 Notebook。Widgets 在 Windows 上叫做 controls。 + +Core 模块:由开发的基本中用到的基本类组成。这些类包括 Object 类,它是所有类的基类;Sizers,用于 widget 布局;Events;像 Point 和 Rectangle 这样的基本几何类。 + +GDI 模块:The Graphics Device Interface,图形设备接口。是用于绘制 widgets 的一组类。 + +Misc 模块:包含各种其他类和模块功能。 这些类用于记录日志,应用程序配置,系统设置,显示或操纵杆。 + +Windows 模块:由形成应用程序的各种窗口组成,例如 面板 Panel,对话框 Dialog,框架 Frame 或滚动窗口 Scrolled Window。 + +## wxPython API + +wxPython API 是一组方法和对象。 组件 Widgets 是 GUI 应用程序的重要组成部分。组件 Widgets 在 Windows 下被称作控件 controls。 我们大致可以将程序员分成两组:编写应用程序或库。 在我们的例子中,wxPython 是应用程序员用来编写应用程序的库。 从技术上讲,wxPython 是一个名为 wxWidgets 的 C ++ GUI API 的封装。 所以它不是一个本地 API; 即它不是直接用 Python 编写的。 + +在 wxPython 中,我们有很多组件。 这些可以分成一些逻辑组。 + +### 基本 Widgets + +这些组件为派生组件提供基本功能。 他们被称为祖先 ancestors。 他们通常不直接使用。 + +![img](assets/base.jpg) + +### 顶层 Widgets + +这些组件彼此独立存在。 + +![img](assets/toplevel.jpg) + +### Containers + +容器 Containers 包含其他组件 Widgets。 + +![img](assets/containers.jpg) + +### 动态 Widgets + +这些组件可以由用户编辑。 + +![img](assets/dynamic.jpg) + +### 静态 Static Widgets + +这些组件显示信息。 它们不能由用户编辑。 + +![img](assets/staticwidgets.jpg) + +### 其他 Widgets + +这些组件在应用程序中实现状态栏,工具栏和菜单栏。 + +![img](assets/bars.jpg) + +### 继承关系 + +wxPython 中的组件 widgets 之间有特定的关系。 这种关系是通过继承来发展的。 继承是面向对象编程的关键部分。 组件形成一个层次结构。 组件可以继承其他组件的功能。现有的类被称为基类,父母或祖先。 继承我们的组件称为派生组件,子组件或后代。 + +![img](assets/inheritance.png) + +假设我们在应用程序中使用了一个按钮组件按钮构件继承自四个不同的基类。 最接近的类是 `wx.Control` 类。 按钮组件是一种小窗口。所有出现在屏幕上的组件都是窗口。 因此它们从 `wx.Window` 类继承而来。 有些 objects 是不可见的。 比如 sizers,设备上下文 device context  或 locale 对象。 也有可见的类,但它们不是窗口。 例如,颜色对象 a colour object,插入符号对象 caret object 或游标对象 cursor object。 并非所有的组件都是控件。 例如 `wx.Dialog` 不是一种控件。控件是放置在其他称为容器 Containers 的组件上的组件。 这就是为什么我们有一个单独的 `wx.Control` 基类。 + +每个窗口都能对事件做出反应。 按钮组件也是如此。 通过点击按钮,我们启动 `wx.EVT_COMMAND_BUTTON_CLICKED` 事件。 按钮组件通过 `wx.Window` 类继承 `wx.EvtHandler`。 每个对事件作出反应的组件都必须从 `wx.EvtHandler` 类继承。 最后,所有对象都从 `wx.Object` 类继承。 + + + + + + + + + + + + + + + + + + + + + diff --git "a/10.\345\233\276\345\275\242.md" "b/10.\345\233\276\345\275\242.md" new file mode 100644 index 0000000..8ff6a2c --- /dev/null +++ "b/10.\345\233\276\345\275\242.md" @@ -0,0 +1,1515 @@ +# wxPython graphics + +GDI(图形设备接口 Graphics Device Interface)是用于处理图形的接口。它用于与图形设备(如显示器,打印机或文件)进行交互。GDI 允许程序员在屏幕或打印机上显示数据,而不必关心特定设备的细节。GDI 将程序员与硬件隔离开来。 + +从程序员的角度来看,GDI 是一组处理图形的类和方法。 GDI 由 2D 矢量图形、字体和图像组成。 + +![The GDI](assets/gdi2.png) + +要开始绘制图形,我们必须创建一个设备上下文 device context(DC)对象。在 wxPython 中,设备上下文称为 `wx.DC`。文档中将 `wx.DC` 定义为可以绘制图形和文本的设备上下文。它以一个通用的方式表示设备的数量。同一段代码可以写入不同种类的设备,无论是屏幕还是打印机。 `wx.DC` 不应该直接使用。相反,程序员应该选择一个派生类。每个派生类都应该在特定条件下使用。 + +## paint 和 draw 区别 + +paint 指用颜色画,如油画颜料、水彩或者水墨画。wxpython 中指的是涂颜色,比如用笔刷。 + +draw 通常指用铅笔、钢笔或者粉笔画,一般并不涂上颜料。wxpython 中指的是钢笔画边、线、轮廓,用于描边,和 ps 的钢笔工具类似。 + +## Derived wx.DC classes + +- wxBufferedDC +- wxBufferedPaintDC +- wxPostScriptDC +- wxMemoryDC +- wxPrinterDC +- wxScreenDC +- wxClientDC +- wxPaintDC +- wxWindowDC + +`wx.ScreenDC` 用于在屏幕上的任何位置绘制。 + +`wx.WindowDC` 如果我们想在整个窗口上 paint(仅限 Windows),则使用 `wx.WindowDC`,这包括窗口装饰。 + +`wx.ClientDC` 用于绘制窗口的客户区  client area 。客户区域是没有装饰的窗口区域(标题和边框)。 + +`wx.PaintDC` 也用于绘制客户区。但是 `wx.PaintDC` 和 `wx.ClientDC` 有一个区别。`wx.PaintDC` 只能从 `wx.PaintEvent` 中使用。`wx.ClientDC` 不应该从 `wx.PaintEvent` 中使用。 + +`wx.MemoryDC` 用于在位图上绘制图形。 + +`wx.PostScriptDC` 用于在任何平台上写入 `PostScript` 文件。 + +`wx.PrinterDC` 用于访问打印机(仅限Windows)。 + +## Drawing a simple line + +我们的第一个例子将在窗口的客户区绘制一条简单的线。 + +```python +DrawLine(self, x1, y1, x2, y2) +``` + +该方法从第一点到第二点绘制一条线;不包括第二点。 + +**draw_line.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program draws a line on the +frame window after a while. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + wx.CallLater(2000, self.DrawLine) + + self.SetTitle("Line") + self.Centre() + + def DrawLine(self): + + dc = wx.ClientDC(self) + dc.DrawLine(50, 60, 190, 60) + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +我们在两秒钟后在框架窗口上绘制一条线。 + +```python +wx.FutureCall(2000, self.DrawLine) +``` + +在创建窗口后我们调用 `DrawLine()` 方法。我们这样做是因为当窗口被创建时,窗口也会绘制,我们所有的绘画都会因此丢失。我们可以在创建窗口后开始绘制。这就是为什么我们调用 `wx.FutureCall()` 方法的原因。 + +```python +def DrawLine(self): + + dc = wx.ClientDC(self) + dc.DrawLine(50, 60, 190, 60) +``` + +我们创建一个 `wx.ClientDC` 设备上下文。唯一的参数是我们想要绘制的窗口。在我们的例子中,它是 `self`,它是对我们的 `wx.Frame` 小部件的引用。我们调用设备上下文的 `DrawLine()` 方法。这个调用实际上在我们的窗口上画了一条线。 + +了解以下行为非常重要。如果我们调整窗口的大小,这条线就会消失。为什么会出现这种情况?如果调整大小,每个窗口都会重新绘制。如果它被最大化,它也被重新绘制。如果我们用另一个窗口覆盖窗口并在之后移开另一个窗口,原来的窗口也会重新绘制。该窗口又被绘到默认状态,我们的绘的线丢失。我们必须在每次调整窗口大小时画出线条。解决方案是 `wx.PaintEvent`。每次触发此事件时,窗口都会重新绘制。我们将在一个方法中绘画我们的线条,然后绑定到绘图事件 paint event。 + +以下示例展示了它是如何完成的。 + +**draw_line2.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program draws a line in +a paint event. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.Bind(wx.EVT_PAINT, self.OnPaint) + + self.SetTitle("Line") + self.Centre() + + def OnPaint(self, e): + + dc = wx.PaintDC(self) + dc.DrawLine(50, 60, 190, 60) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +我们画同一条线。 这次是对绘图事件作出反应。 + +```python +self.Bind(wx.EVT_PAINT, self.OnPaint) +``` + +在这里,我们将 `OnPaint` 方法绑定到 `wx.PaintEvent` 事件。 这意味着每次我们的窗口被重新绘制时,我们都会调用 `OnPaint()` 方法。 现在,如果我们调整窗口大小(覆盖它,最大化它),线条都不会消失。 + +```python +dc = wx.PaintDC(self) +``` + +请注意,这次我们使用了 `wx.PaintDC` 设备上下文。 + +![Drawing a line](assets/aline.png) + +## Computer graphics + +有两种不同的计算机图形:矢量 vector 和光栅 raster 图像。光栅图像将图像表示为像素集合。矢量图形是使用几何图元,如点、直线、曲线或多边形来表示图像。这些原语是使用数学方程创建的。 + +这两种计算机图形都有优点和缺点。矢量图像相对于栅格图像的优点是: + +- 更小的尺寸 +- 无限缩放的能力 +- 移动,缩放,填充或旋转不会降低图像的质量 + +## Types of primitives + +以下是图形基元的部分列表。 + +- points 点 +- lines 直线 +- polylines 折线 +- polygons 多边形 +- circles 圆形 +- ellipses 椭圆形 +- splines 样条曲线 + +### Device context attributes + +设备上下文包含许多属性,例如画笔、钢笔或字体。 `wx.Brush` 是用于填充区域的绘图工具。它用于绘制形状的背景。它有颜色和样式属性。`wx.Pen` 用于绘制形状的轮廓。它有颜色、宽度和样式属性。`wx.Font` 是一个决定文本外观的对象。 + +## Basic elements + +在以下几行中,我们介绍几个基本对象:颜色 colours,画笔 brushes,钢笔 pens,连接线 joins,顶盖 caps和渐变 gradients。 + +### Colours + +颜色是表示红色、绿色和蓝色(RGB)强度值组合的对象。有效的 RGB 值在 0 到 255 范围内。有三种设置颜色的方法。我们可以创建一个 `wx.Colour` 对象,使用预定义的颜色名称或使用十六进制值字符串。 `wx.Colour(0,0,255)`、`'BLUE'`、`'#0000FF'`。这三种符号产生相同的颜色。 + +在 [colorjack.com](http://www.colorjack.com/) 网站上可以找到使用颜色的完美工具。或者我们可以使用 Gimp 这样的工具。 + +我们还有一个预定义的颜色名称列表,可以在我们的程序中使用。 + +| AQUAMARINE | BLACK | BLUE | BLUE VIOLET | BROWN | +| ---------------- | ----------------- | ----------------- | ----------------- | ------------------- | +| CADET BLUE | CORAL | CORNFLOWER BLUE | CYAN | DARK GREY | +| DARK GREEN | DARK OLIVE GREEN | DARK ORCHID | DARK SLATE BLUE | DARK SLATE GREY | +| DARK TURQUOISE | DIM GREY | FIREBRICK | FOREST GREEN | GOLD | +| GOLDENROD | GREY | GREEN | GREEN YELLOW | INDIAN RED | +| KHAKI | LIGHT BLUE | LIGHT GREY | LIGHT STEEL BLUE | LIME GREEN | +| MAGENTA | MAROON | MEDIUM AQUAMARINE | MEDIUM BLUE | MEDIUM FOREST GREEN | +| MEDIUM GOLDENROD | MEDIUM ORCHID | MEDIUM SEA GREEN | MEDIUM SLATE BLUE | MEDIUM SPRING GREEN | +| MEDIUM TURQUOISE | MEDIUM VIOLET RED | MIDNIGHT BLUE | NAVY | ORANGE | +| ORANGE RED | ORCHID | PALE GREEN | PINK | PLUM | +| PURPLE | RED | SALMON | SEA GREEN | SIENNA | +| SKY BLUE | SLATE BLUE | SPRING GREEN | STEEL BLUE | TAN | +| THISTLE | TURQUOISE | VIOLET | VIOLET RED | WHEAT | +| WHITE | YELLOW | YELLOW GREEN | | | + +以下示例使用几个颜色值。 + +**colours.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program draws nine coloured rectangles +on the window. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.Bind(wx.EVT_PAINT, self.OnPaint) + + self.SetTitle("Colours") + self.Centre() + + + def OnPaint(self, e): + + dc = wx.PaintDC(self) + dc.SetPen(wx.Pen('#d4d4d4')) + + dc.SetBrush(wx.Brush('#c56c00')) + dc.DrawRectangle(10, 15, 90, 60) + + dc.SetBrush(wx.Brush('#1ac500')) + dc.DrawRectangle(130, 15, 90, 60) + + dc.SetBrush(wx.Brush('#539e47')) + dc.DrawRectangle(250, 15, 90, 60) + + dc.SetBrush(wx.Brush('#004fc5')) + dc.DrawRectangle(10, 105, 90, 60) + + dc.SetBrush(wx.Brush('#c50024')) + dc.DrawRectangle(130, 105, 90, 60) + + dc.SetBrush(wx.Brush('#9e4757')) + dc.DrawRectangle(250, 105, 90, 60) + + dc.SetBrush(wx.Brush('#5f3b00')) + dc.DrawRectangle(10, 195, 90, 60) + + dc.SetBrush(wx.Brush('#4c4c4c')) + dc.DrawRectangle(130, 195, 90, 60) + + dc.SetBrush(wx.Brush('#785f36')) + dc.DrawRectangle(250, 195, 90, 60) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +我们绘制九个矩形,并填充不同的颜色。 + +```python +dc.SetBrush(wx.Brush('#c56c00')) +dc.DrawRectangle(10, 15, 90, 60) +``` + +我们用十六进制表示法指定画笔的颜色。画笔是形状的背景填充。 然后我们用 `DrawRectangle()` 方法绘制矩形。 + +![Colours](assets/colours.png) + +### wx.Pen + +笔是基本的图形对象。 它用于绘制直线、圆形,或矩形、椭圆、多边形或其他形状的轮廓。 + +```python +wx.Pen(wx.Colour colour, width=1, style=wx.SOLID) +``` + +`wx.Pen` 构造函数有三个参数:颜色 colour,宽度 width 和样式 style。 以下是可能的钢笔样式列表: + +- wx.SOLID +- wx.DOT +- wx.LONG_DASH +- wx.SHORT_DASH +- wx.DOT_DASH +- wx.TRANSPARENT + +**pens.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program draws six rectangles with different pens. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.Bind(wx.EVT_PAINT, self.OnPaint) + + self.SetTitle("Pens") + self.Centre() + + def OnPaint(self, event): + dc = wx.PaintDC(self) + + dc.SetPen(wx.Pen('#4c4c4c', 1, wx.SOLID)) + dc.DrawRectangle(10, 15, 90, 60) + + dc.SetPen(wx.Pen('#4c4c4c', 1, wx.DOT)) + dc.DrawRectangle(130, 15, 90, 60) + + dc.SetPen(wx.Pen('#4c4c4c', 1, wx.LONG_DASH)) + dc.DrawRectangle(250, 15, 90, 60) + + dc.SetPen(wx.Pen('#4c4c4c', 1, wx.SHORT_DASH)) + dc.DrawRectangle(10, 105, 90, 60) + + dc.SetPen(wx.Pen('#4c4c4c', 1, wx.DOT_DASH)) + dc.DrawRectangle(130, 105, 90, 60) + + dc.SetPen(wx.Pen('#4c4c4c', 1, wx.TRANSPARENT)) + dc.DrawRectangle(250, 105, 90, 60) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +如果我们不指定自定义画笔,则使用默认画笔。 默认画笔是 `wx.WHITE_BRUSH`。 矩形的周长由钢笔画出。 最后一个没有边界。 它是透明的,即不可见。 + +![Pens](assets/pens.png) + +### Joins and Caps + +笔对象有另外两个参数:join 和 cap。join 定义了如何绘制线之间的连接。 + +join 样式有以下选项: + +- wx.JOIN_MITER +- wx.JOIN_BEVEL +- wx.JOIN_ROUND + +当使用 `wx.JOIN_MITER` 时,线的外边缘被延伸。 他们以一定角度相遇,这个区域被填满。 + +![1527561443370](assets/1527561443370.png) + +在 `wx.JOIN_BEVEL` 中,两条线之间的三角形缺口被填充。 + +![1527561475646](assets/1527561475646.png) + +在 `wx.JOIN_ROUND` 中,两条线之间的圆弧被填满。 + +![1527561515784](assets/1527561515784.png) + +默认值是 `wx.JOIN_ROUND`。 + +cap 定义了线条将如何由钢笔画出。 选项是: + +- wx.CAP_ROUND +- wx.CAP_PROJECTING +- wx.CAP_BUTT + +`wx.CAP_ROUND` 绘制圆角端。 + +`wx.CAP_PROJECTING` 和 `wx.CAP_BUTT` 绘制方形端。它们之间的区别在于 `wx.CAP_PROJECTING` 将延伸超出终点,直线尺寸的一半。`wx.CAP_ROUND` 也会延伸到终点之外。 + +![1527561810112](assets/1527561810112.png) + +**joins_caps.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program draws uses different joins +and caps in drawing. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.Bind(wx.EVT_PAINT, self.OnPaint) + + self.SetTitle("Joins and caps") + self.Centre() + + def OnPaint(self, e): + + dc = wx.PaintDC(self) + + pen = wx.Pen('#4c4c4c', 10, wx.SOLID) + + pen.SetJoin(wx.JOIN_MITER) + dc.SetPen(pen) + dc.DrawRectangle(15, 15, 80, 50) + + pen.SetJoin(wx.JOIN_BEVEL) + dc.SetPen(pen) + dc.DrawRectangle(125, 15, 80, 50) + + pen.SetJoin(wx.JOIN_ROUND) + dc.SetPen(pen) + dc.DrawRectangle(235, 15, 80, 50) + + pen.SetCap(wx.CAP_BUTT) + dc.SetPen(pen) + dc.DrawLine(30, 150, 150, 150) + + pen.SetCap(wx.CAP_PROJECTING) + dc.SetPen(pen) + dc.DrawLine(30, 190, 150, 190) + + pen.SetCap(wx.CAP_ROUND) + dc.SetPen(pen) + dc.DrawLine(30, 230, 150, 230) + + pen2 = wx.Pen('#4c4c4c', 1, wx.SOLID) + dc.SetPen(pen2) + dc.DrawLine(30, 130, 30, 250) + dc.DrawLine(150, 130, 150, 250) + dc.DrawLine(155, 130, 155, 250) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +```python +pen = wx.Pen('#4c4c4c', 10, wx.SOLID) +``` + +为了看到各种 join 和 cap 样式,我们需要将钢笔宽度设置为大于1。 + +```python +dc.DrawLine(150, 130, 150, 250) +dc.DrawLine(155, 130, 155, 250) +``` + +注意下面的图右边两条包围的垂直线。 它们之间的距离是 5px。 它恰好是当前笔宽的一半。 + +![Joins and Caps](assets/joinscaps.png) + +### Gradients + +在计算机图形学中,渐变是从浅色到深色或从一种颜色到另一种颜色的平滑混合。 在 2D drawing 程序和 paint 程序中,渐变用于创建丰富多彩的背景和特殊效果,以及模拟灯光和阴影。 + +```python +GradientFillLinear(self, rect, initialColour, destColour, nDirection=RIGHT) +``` + +此方法使用线性渐变填充由 `rect` 指定的区域,从 `initialColour` 开始并最终消失为 `destColour`。`nDirection` 参数指定颜色更改的方向; 默认值是 `wx.EAST`。 + +**gradients.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program draws four rectangles filled +with gradients. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.Bind(wx.EVT_PAINT, self.OnPaint) + + self.SetTitle("Gradients") + self.Centre() + + def OnPaint(self, event): + + dc = wx.PaintDC(self) + + dc.GradientFillLinear((20, 20, 180, 40), '#ffec00', '#000000', wx.NORTH) + dc.GradientFillLinear((20, 80, 180, 40), '#ffec00', '#000000', wx.SOUTH) + dc.GradientFillLinear((20, 140, 180, 40), '#ffec00', '#000000', wx.EAST) + dc.GradientFillLinear((20, 200, 180, 40), '#ffec00', '#000000', wx.WEST) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在这个例子中,四个矩形用渐变填充。 + +![Gradients](assets/gradients.png) + +### wx.Brush + +画笔是一个基本的图形对象。 它用于绘制图形形状的背景,例如矩形,椭圆或多边形。 + +wxPython 有以下内置的笔刷类型: + +- wx.SOLID +- wx.STIPPLE +- wx.BDIAGONAL_HATCH +- wx.CROSSDIAG_HATCH +- wx.FDIAGONAL_HATCH +- wx.CROSS_HATCH +- wx.HORIZONTAL_HATCH +- wx.VERTICAL_HATCH +- wx.TRANSPARENT + +**brushes.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program draws eight rectangles filled +with different brushes. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.Bind(wx.EVT_PAINT, self.OnPaint) + + self.SetTitle("Brushes") + self.Centre() + + def OnPaint(self, e): + + dc = wx.PaintDC(self) + + dc.SetBrush(wx.Brush('#4c4c4c', wx.CROSS_HATCH)) + dc.DrawRectangle(10, 15, 90, 60) + + dc.SetBrush(wx.Brush('#4c4c4c', wx.SOLID)) + dc.DrawRectangle(130, 15, 90, 60) + + dc.SetBrush(wx.Brush('#4c4c4c', wx.BDIAGONAL_HATCH)) + dc.DrawRectangle(250, 15, 90, 60) + + dc.SetBrush(wx.Brush('#4c4c4c', wx.CROSSDIAG_HATCH)) + dc.DrawRectangle(10, 105, 90, 60) + + dc.SetBrush(wx.Brush('#4c4c4c', wx.FDIAGONAL_HATCH)) + dc.DrawRectangle(130, 105, 90, 60) + + dc.SetBrush(wx.Brush('#4c4c4c', wx.HORIZONTAL_HATCH)) + dc.DrawRectangle(250, 105, 90, 60) + + dc.SetBrush(wx.Brush('#4c4c4c', wx.VERTICAL_HATCH)) + dc.DrawRectangle(10, 195, 90, 60) + + dc.SetBrush(wx.Brush('#4c4c4c', wx.TRANSPARENT)) + dc.DrawRectangle(130, 195, 90, 60) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +示例中使用了八种不同的内置画笔类型。 + +![Brushes](assets/brushes.png) + +### Custom Patterns + +我们不限制使用预定义的模式。 我们可以轻松创建自己的自定义模式。 + +**custom_patterns.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program draws three rectangles with custom +brush patterns. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.Bind(wx.EVT_PAINT, self.OnPaint) + + self.SetTitle("Custom patterns") + self.Centre() + + def OnPaint(self, e): + + dc = wx.PaintDC(self) + + dc.SetPen(wx.Pen('#C7C3C3')) + + brush1 = wx.Brush(wx.Bitmap('pattern1.png')) + dc.SetBrush(brush1) + dc.DrawRectangle(10, 15, 90, 60) + + brush2 = wx.Brush(wx.Bitmap('pattern2.png')) + dc.SetBrush(brush2) + dc.DrawRectangle(130, 15, 90, 60) + + brush3 = wx.Brush(wx.Bitmap('pattern3.png')) + dc.SetBrush(brush3) + dc.DrawRectangle(250, 15, 90, 60) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +我们创建了一些小的位图。这些位图是在 Gimp 中创建的。 + +```python +brush1 = wx.Brush(wx.Bitmap('pattern1.png')) +dc.SetBrush(brush1) +dc.DrawRectangle(10, 15, 90, 60) +``` + +从位图创建画笔并将其设置为设备上下文。它用于填充矩形的内部。 + +![Custom Patterns](assets/custompatterns.png) + +### Points + +最简单的几何对象是一个点,是窗口上的一个普通点。 + +```python +DrawPoint(self, x, y) +``` + +此方法在 x,y 坐标处绘制一个点。 + +**points.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program draws one thousand points +randomly on the window. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx +import random + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.Bind(wx.EVT_PAINT, self.OnPaint) + + self.SetTitle("Points") + self.Centre() + + def OnPaint(self, e): + + dc = wx.PaintDC(self) + + dc.SetPen(wx.Pen('RED')) + + for i in range(1000): + + w, h = self.GetSize() + x = random.randint(1, w-1) + y = random.randint(1, h-1) + dc.DrawPoint(x, y) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +单点可能很难看到,所以我们创建了1000 个点。 + +```python +dc.SetPen(wx.Pen('RED')) +``` + +在这里,我们将笔的颜色设置为红色。 + +```python +w, h = self.GetSize() +x = random.randint(1, w-1) +``` + +点随机分布在窗口的客户区域周围。 它们也是动态分布的。如果我们调整窗口的大小,这些点将随着一个新的客户端大小随机绘制。`randint(a, b)` 方法返回范围 [a,b] 中的随机整数,包括 a, b。 + +![Points](assets/points.png) + +## Shapes + +形状 Shapes 是更复杂的几何对象。 我们在下面的例子中绘制各种几何形状。 + +**shapes.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program draws various shapes on +the window. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.Bind(wx.EVT_PAINT, self.OnPaint) + + self.SetTitle("Shapes") + self.Centre() + + + def OnPaint(self, e): + + dc = wx.PaintDC(self) + dc.SetBrush(wx.Brush('#777')) + dc.SetPen(wx.Pen("#777")) + + dc.DrawEllipse(20, 20, 90, 60) + dc.DrawRoundedRectangle(130, 20, 90, 60, 10) + dc.DrawArc(240, 40, 340, 40, 290, 20) + + dc.DrawPolygon(((130, 140), (180, 170), (180, 140), (220, 110), (140, 100))) + dc.DrawRectangle(20, 120, 80, 50) + dc.DrawSpline(((240, 170), (280, 170), (285, 110), (325, 110))) + + dc.DrawLines(((20, 260), (100, 260), (20, 210), (100, 210))) + dc.DrawCircle(170, 230, 35) + dc.DrawRectangle(250, 200, 60, 60) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在我们的例子中,我们绘制了椭圆、圆角矩形、弧形、矩形、多边形,样条线,直线、圆和正方形(从右到左,从上到下)。圆是一种特殊的椭圆形,方形是一种特殊的矩形。 + +![Shapes](assets/shapes.png) + +## Regions + +设备上下文可以分成几个部分,称为区域 regions。 区域可以是任何形状,例如矩形或圆形。 通过 `Union`、`Intersect`、`Substract` 和 `Xor` 操作,我们可以创建复杂区域。 区域用于轮廓 outlining,填充 filling 和裁剪 clipping。 + +我们可以通过三种方式创建区域。 最简单的方法是创建一个矩形区域 rectangular region。 可以从位图的点列表中创建更复杂的区域。 + +在我们创建这些区域之前,我们会先创建一个小例子。 我们将这个主题分成几个部分,以便更容易理解。 你可能会发现复习一下你在学校学的数学是个好主意。 在[这里](http://en.wikipedia.org/wiki/Circle)我们可以找到一篇好文章。 + +**lines.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program draws various shapes on +the window. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx +from math import hypot, sin, cos, pi + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.Bind(wx.EVT_PAINT, self.OnPaint) + + self.SetTitle('Lines') + self.Centre() + + def OnPaint(self, e): + + dc = wx.PaintDC(self) + size_x, size_y = self.GetClientSize() + dc.SetDeviceOrigin(size_x/2, size_y/2) + + radius = hypot(size_x/2, size_y/2) + angle = 0 + + while (angle < 2*pi): + x = radius*cos(angle) + y = radius*sin(angle) + dc.DrawLine((0, 0), (x, y)) + angle = angle + 2*pi/360 + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在这个例子中,我们从客户区中间画出 360 条线。 两条线之间的距离是 1 度。 我们创造一个有趣的图像。 + +```python +import wx +from math import hypot, sin, cos, pi +``` + +我们需要数学模块中的三个数学函数和一个常量。 + +```python +dc.SetDeviceOrigin(size_x/2, size_y/2) +``` + +方法 `SetDeviceOrigin()` 创建坐标系新的起点。我们把它放在客户区的中间。通过重新定位坐标系,我们使得绘图更简单。 + +```python +radius = hypot(size_x/2, size_y/2) +``` + +我们调用 `hypot()` 方法得到了直角三角形的斜边。这是最长的一条线,我们可以从客户区中间开始绘制。这是从起点到窗口角落的线的长度。 这样,大部分线条都没有完全绘制。 重叠部分不可见。 + +```python +x = radius*cos(angle) +y = radius*sin(angle) +``` + +这些是参数化功能。它们用于在曲线上找到 [x, y] 点。所有的 360 条线都是从坐标系的起点到圆上的点的连成的线条。 + +![Lines](assets/lines.png) + +## Clipping + +`Clipping` 限制绘制到某个区域。裁剪 Clipping 通常用于创建效果并提高应用程序的性能。我们使用 `SetClippingRegionAsRegion()` 方法限制绘图到某个区域。 + +在下面的例子中,我们将修改和改进我们之前的程序。 + +**star.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program demonstrates a clipping operation +when drawing a star object. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx +from math import hypot, sin, cos, pi + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.Bind(wx.EVT_PAINT, self.OnPaint) + + self.SetTitle("Star") + self.Centre() + + def OnPaint(self, e): + + dc = wx.PaintDC(self) + + dc.SetPen(wx.Pen('#424242')) + size_x, size_y = self.GetClientSize() + dc.SetDeviceOrigin(size_x/2, size_y/2) + + points = (((0, 85), (75, 75), (100, 10), (125, 75), (200, 85), + (150, 125), (160, 190), (100, 150), (40, 190), (50, 125))) + + region = wx.Region(points) + dc.SetDeviceClippingRegion(region) + + radius = hypot(size_x/2, size_y/2) + angle = 0 + + while (angle < 2*pi): + + x = radius*cos(angle) + y = radius*sin(angle) + dc.DrawLine((0, 0), (x, y)) + angle = angle + 2*pi/360 + + dc.DestroyClippingRegion() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +我们再次绘制所有的 360 个线条。 但是这一次,只有客户区的一部分被绘制。 我们限制绘图的区域是一个星形对象。 + +```python +region = wx.Region(points) +dc.SetDeviceClippingRegion(region) +``` + +我们从点列表中创建一个区域。 `SetDeviceClippingRegion()` 方法将绘图限制在指定的区域。 在我们的例子中,它是一个星形对象。 + +```python +dc.DestroyClippingRegion() +``` + +我们必须销毁裁剪区域 clipping region。 + +![Star](assets/star.png) + +## Region operations + +区域 Regions 可以组合起来创建更复杂的形状。 我们可以使用四个集合操作:union,intersect,substract,xor。 + +以下示例显示了所有四个操作中的操作。 + +**region_operations.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program performs set operations on regions. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.Bind(wx.EVT_PAINT, self.OnPaint) + + self.SetTitle("Regions") + self.Centre() + + def OnPaint(self, e): + + dc = wx.PaintDC(self) + dc.SetPen(wx.Pen('#d4d4d4')) + + dc.DrawRectangle(20, 20, 50, 50) + dc.DrawRectangle(30, 40, 50, 50) + + dc.SetBrush(wx.Brush('#ffffff')) + dc.DrawRectangle(100, 20, 50, 50) + dc.DrawRectangle(110, 40, 50, 50) + + region1 = wx.Region(100, 20, 50, 50) + region2 = wx.Region(110, 40, 50, 50) + region1.Intersect(region2) + + rect = region1.GetBox() + dc.SetDeviceClippingRegion(region1) + dc.SetBrush(wx.Brush('#ff0000')) + dc.DrawRectangle(rect) + dc.DestroyClippingRegion() + + dc.SetBrush(wx.Brush('#ffffff')) + dc.DrawRectangle(180, 20, 50, 50) + dc.DrawRectangle(190, 40, 50, 50) + + region1 = wx.Region(180, 20, 50, 50) + region2 = wx.Region(190, 40, 50, 50) + region1.Union(region2) + dc.SetDeviceClippingRegion(region1) + + rect = region1.GetBox() + dc.SetBrush(wx.Brush('#fa8e00')) + dc.DrawRectangle(rect) + dc.DestroyClippingRegion() + + dc.SetBrush(wx.Brush('#ffffff')) + dc.DrawRectangle(20, 120, 50, 50) + dc.DrawRectangle(30, 140, 50, 50) + region1 = wx.Region(20, 120, 50, 50) + region2 = wx.Region(30, 140, 50, 50) + region1.Xor(region2) + + rect = region1.GetBox() + dc.SetDeviceClippingRegion(region1) + dc.SetBrush(wx.Brush('#619e1b')) + dc.DrawRectangle(rect) + dc.DestroyClippingRegion() + + dc.SetBrush(wx.Brush('#ffffff')) + dc.DrawRectangle(100, 120, 50, 50) + dc.DrawRectangle(110, 140, 50, 50) + region1 = wx.Region(100, 120, 50, 50) + region2 = wx.Region(110, 140, 50, 50) + region1.Subtract(region2) + + rect = region1.GetBox() + dc.SetDeviceClippingRegion(region1) + dc.SetBrush(wx.Brush('#715b33')) + dc.DrawRectangle(rect) + dc.DestroyClippingRegion() + + dc.SetBrush(wx.Brush('#ffffff')) + dc.DrawRectangle(180, 120, 50, 50) + dc.DrawRectangle(190, 140, 50, 50) + region1 = wx.Region(180, 120, 50, 50) + region2 = wx.Region(190, 140, 50, 50) + region2.Subtract(region1) + + rect = region2.GetBox() + dc.SetDeviceClippingRegion(region2) + dc.SetBrush(wx.Brush('#0d0060')) + dc.DrawRectangle(rect) + dc.DestroyClippingRegion() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在这个例子中,我们展示了六个区域集 region set 操作。 + +```python + region1 = wx.Region(100, 20, 50, 50) + region2 = wx.Region(110, 40, 50, 50) + region1.Intersect(region2) +``` + +该代码执行两个区域的交集 intersection 操作。 + +![Set operations on regions](assets/region_operations.png) + +## Mapping modes + +映射模式 mapping mode 定义了用于将页面空间 page-space 单元转换为设备空间 device-space 单元的度量单位,还定义了设备 x 和 y 轴的方向。 + +### Speak in English, measure in metric + +英语成为全球沟通语言。公制体系也成为了全球的测量体系。 根据这个维基百科[文章](http://en.wikipedia.org/wiki/Metric_system),只有三个例外。 美国,利比里亚和缅甸。 例如,美国人使用华氏温度来测量温度、用加仑来给汽车加油或磅来称重。 + +尽管我们在欧洲使用公制系统,但仍然有例外。美国主导IT,我们正在进口他们的标准。所以我们也说我们有一个 17 英寸的显示器。图形可以放入文件中,显示在显示器或其他设备(相机、摄像机、手机)的屏幕上或用打印机打印。纸张大小可以毫米,点或英寸为单位设置,屏幕的分辨率以像素为单位,文本的质量由每英寸的点数决定。 我们也有点,比特或样本。 这是我们拥有逻辑和设备单位的原因之一。 + +## Logical and device units + +如果我们在客户区域绘制文本或几何图元,我们使用逻辑单位来定位它们。 + +如果我们想绘制一些文本,我们提供 text 参数和 x, y 位置。x,y 是逻辑单位。设备然后以设备单位绘制文本。 逻辑和设备单位可能相同,也可能不同。 人们使用逻辑单位(毫米),设备单位对于特定设备来说是本地的。例如,屏幕的本机设备单位是像素。 HEWLETT PACKARD LaserJet 1022 的本机设备单位是1200 dpi(每英寸点数)。 + +到目前为止,我们已经谈到了各种测量单位。设备的映射模式 mapping mode 是一种如何将逻辑单元转换为设备单元的方式。 wxPython 有以下映射模式: + +| Mapping Mode | Logical Unit | +| -------------- | ------------------------------------ | +| wx.MM_TEXT | 1 pixel | +| wx.MM_METRIC | 1 millimeter | +| wx.MM_LOMETRIC | 1/10 of a millimeter | +| wx.MM_POINTS | 1 point, 1/72 of an inch | +| wx.MM_TWIPS | 1/20 of a point or 1/1440 of an inch | + +默认的映射模式是 `wx.MM_TEXT`。 在这种模式下,逻辑单元与设备单元相同。当人们在屏幕上定位对象或设计网页时,他们通常以像素为单位进行思考。 网页设计师创建三个列页面,这些列以像素为单位设置。页面的最低公分母通常是800像素等。这种想法是很自然的,因为我们知道我们的监视器具有例如 1024x768 像素我们不打算做转换,而是习惯用像素来思考。如果我们想以毫米为单位绘制结构,我们可以使用两种公制映射模式。 直接以毫米为单位绘制屏幕太大,这就是为什么我们有 `wx.MM_LOMETRIC` 映射模式。 + +要设置不同的映射模式,我们使用 `SetMapMode()` 方法。 + +## Ruler example + +标尺以像素为单位测量屏幕对象。 + +**ruler.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program creates a ruler. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx + + +RW = 701 # ruler width +RM = 10 # ruler margin +RH = 80 # ruler height + + +class Example(wx.Frame): + + def __init__(self, parent): + wx.Frame.__init__(self, parent, size=(RW + 2*RM, RH), + style=wx.FRAME_NO_TASKBAR | wx.NO_BORDER | wx.STAY_ON_TOP) + self.font = wx.Font(7, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, + wx.FONTWEIGHT_BOLD, False, 'Courier 10 Pitch') + + self.InitUI() + + def InitUI(self): + + self.Bind(wx.EVT_PAINT, self.OnPaint) + self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) + self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp) + self.Bind(wx.EVT_RIGHT_DOWN, self.OnRightDown) + self.Bind(wx.EVT_MOTION, self.OnMouseMove) + + self.Centre() + self.Show(True) + + def OnPaint(self, e): + + dc = wx.PaintDC(self) + + brush = wx.Brush(wx.Bitmap('granite.png')) + dc.SetBrush(brush) + dc.DrawRectangle(0, 0, RW+2*RM, RH) + dc.SetFont(self.font) + + dc.SetPen(wx.Pen('#F8FF25')) + dc.SetTextForeground('#F8FF25') + + for i in range(RW): + + if not (i % 100): + + dc.DrawLine(i+RM, 0, i+RM, 10) + w, h = dc.GetTextExtent(str(i)) + dc.DrawText(str(i), i+RM-w/2, 11) + + elif not (i % 20): + + dc.DrawLine(i+RM, 0, i+RM, 8) + + elif not (i % 2): + + dc.DrawLine(i+RM, 0, i+RM, 4) + + def OnLeftDown(self, e): + + x, y = self.ClientToScreen(e.GetPosition()) + ox, oy = self.GetPosition() + + dx = x - ox + dy = y - oy + + self.delta = ((dx, dy)) + + def OnMouseMove(self, e): + + if e.Dragging() and e.LeftIsDown(): + + self.SetCursor(wx.Cursor(wx.CURSOR_HAND)) + + x, y = self.ClientToScreen(e.GetPosition()) + fp = (x - self.delta[0], y - self.delta[1]) + self.Move(fp) + + def OnLeftUp(self, e): + + self.SetCursor(wx.Cursor(wx.CURSOR_ARROW)) + + def OnRightDown(self, e): + + self.Close() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在这个例子中,我们创建了一个标尺。 此标尺以像素为单位测量屏幕对象。我们保留默认的映射模式,即 `wx.MM_TEXT`。 正如我们之前已经提到的,这种模式具有相同的逻辑和设备单位。 在我们的例子中,这些是像素。 + +```python +def __init__(self, parent): + wx.Frame.__init__(self, parent, size=(RW + 2*RM, RH), + style=wx.FRAME_NO_TASKBAR | wx.NO_BORDER | wx.STAY_ON_TOP) +``` + +我们创建了一个无边框窗口。 标尺是 721 px 宽:RW + 2RM = 701 + 20 = 721。标尺显示 700 个数字; 0 ... 700 是 701 个像素。标尺在两边都有边距,210 是 20像素。它们一同创建了 721 个像素。 + +```python +brush = wx.Brush(wx.Bitmap('granite.png')) +dc.SetBrush(brush) +dc.DrawRectangle(0, 0, RW+2*RM, RH) +``` + +在这里,我们在窗口上绘制一个自定义图案。 我们已经在 Gimp 中使用了预定义的模式。 它被称为花岗岩。 + +```python +w, h = dc.GetTextExtent(str(i)) +dc.DrawText(str(i), i+RM-w/2, 11) +``` + +这些直线确保我们正确地对齐文本。 `GetTextExtent()` 方法返回文本的宽度和高度。 + +我们的窗口周围没有边框。所以我们必须手动处理移动。`OnLeftDown()` 和 `OnMouseMove()` 方法使我们能够移动标尺。 + +```python +def OnLeftDown(self, e): + + x, y = self.ClientToScreen(e.GetPosition()) + ox, oy = self.GetPosition() + + dx = x - ox + dy = y - oy + + self.delta = ((dx, dy)) +``` + +在 `OnLeftDown()` 方法中,我们确定窗口和鼠标的光标坐标; delta 值是鼠标指针距窗口左上角的距离。 我们需要 delta 值来移动窗口。 + +```python +def OnMouseMove(self, e): + + if e.Dragging() and e.LeftIsDown(): + + self.SetCursor(wx.Cursor(wx.CURSOR_HAND)) + + x, y = self.ClientToScreen(e.GetPosition()) + fp = (x - self.delta[0], y - self.delta[1]) + self.Move(fp) +``` + +当我们同时拖动窗口并按下鼠标左键时,代码被执行。在代码块中,我们使用 `SetCursor()` 更改鼠标光标并使用 `Move()` 方法移动窗口。 delta 值用于获取距离。 + +```python +def OnLeftUp(self, e): + + self.SetCursor(wx.Cursor(wx.CURSOR_ARROW)) +``` + +当我们释放鼠标左键时,我们将光标变回箭头。 + +```python +def OnRightDown(self, e): + + self.Close() +``` + +右击窗口区域关闭窗口。 + +![Ruler example](assets/ruler.png) + +在本章中,我们在 wxPython中 使用了图形。 \ No newline at end of file diff --git "a/11.\350\207\252\345\256\232\344\271\211\347\273\204\344\273\266.md" "b/11.\350\207\252\345\256\232\344\271\211\347\273\204\344\273\266.md" new file mode 100644 index 0000000..5b72992 --- /dev/null +++ "b/11.\350\207\252\345\256\232\344\271\211\347\273\204\344\273\266.md" @@ -0,0 +1,461 @@ +# Creating custom widgets + +工具包 Toolkits 通常只提供最常用的组件,如按钮 buttons、文本组件 text widgets、滚动条 scrollbars、滑块 sliders 等。没有工具包可以提供所有可能的组件。 wxPython 有很多组件;更多专用的组件需要客户端程序员自己创建。 + +自定义组件有两种创建方式:我们修改或增强现有的组件,或者我们从头创建一个自定义组件。 + +## A hyperlink widget + +第一个例子将创建一个超链接。 超链接组件将基于现有的 `wx.lib.stattext.GenStaticText` 组件。 + +**hyperlink.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program creates a Hyperlink widget. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx +from wx.lib.stattext import GenStaticText +import webbrowser + + +class Link(GenStaticText): + + def __init__(self, *args, **kw): + super(Link, self).__init__(*args, **kw) + + self.font1 = wx.Font(11, wx.SWISS, wx.NORMAL, wx.BOLD, True, 'Verdana') + self.font2 = wx.Font(11, wx.SWISS, wx.NORMAL, wx.BOLD, False, 'Verdana') + + self.SetFont(self.font2) + self.SetForegroundColour('#0000ff') + + self.Bind(wx.EVT_MOUSE_EVENTS, self.OnMouseEvent) + self.Bind(wx.EVT_MOTION, self.OnMouseEvent) + + def SetUrl(self, url): + + self.url = url + + + def OnMouseEvent(self, e): + + if e.Moving(): + + self.SetCursor(wx.Cursor(wx.CURSOR_HAND)) + self.SetFont(self.font1) + + elif e.LeftUp(): + + webbrowser.open_new(self.url) + + else: + self.SetCursor(wx.NullCursor) + self.SetFont(self.font2) + + e.Skip() + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + panel = wx.Panel(self) + + vbox = wx.BoxSizer(wx.VERTICAL) + hbox = wx.BoxSizer(wx.HORIZONTAL) + + st = GenStaticText(panel, label='Go to web site:') + st.SetFont(wx.Font(11, wx.SWISS, wx.NORMAL, wx.BOLD, False, 'Verdana')) + hbox.Add(st, flag=wx.LEFT, border=20) + + link_wid = Link(panel, label='ZetCode') + link_wid.SetUrl('http://www.zetcode.com') + hbox.Add(link_wid, flag=wx.LEFT, border=20) + + vbox.Add(hbox, flag=wx.TOP, border=30) + panel.SetSizer(vbox) + + self.SetTitle('A Hyperlink') + self.Centre() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +此超链接组件基于现有的组件。在这个例子中,我们不绘制任何东西,我们只是使用一个现有的组件,我们稍微修改一下。 + +```python +from wx.lib.stattext import GenStaticText +import webbrowser +``` + +在这里我们导入了我们从中派生出的超链接组件和 webbrowser 模块的基础组件。webbrowser模块是 Python 的标准模块。 我们将使用它在默认浏览器中打开链接。 + +```python +self.SetFont(self.font2) +self.SetForegroundColour('#0000ff') +``` + +创建超链接组件的想法很简单。 我们从基础 `wx.lib.stattext.GenStaticText` 组件类继承。 所以我们有一个文本组件。然后我们修改一下。 我们改变文字的字体和颜色。 + +```python +if e.Moving(): + + self.SetCursor(wx.Cursor(wx.CURSOR_HAND)) + self.SetFont(self.font1) +``` + +如果我们将鼠标指针悬停在链接上,我们给字体带下划线,并将鼠标指针更改为手形光标。 + +```python +elif e.LeftUp(): + + webbrowser.open_new(self.url) +``` + +如果我们点击链接,我们会在默认浏览器中打开链接。 + +![Hyperlink widget](assets/hyperlink.png) + +## Burning widget + +这是我们从头开始创建的组件示例。我们在窗口的底部放置一个 `wx.Panel` 并手动绘制整个组件。如果您曾烧制过 CD 或 DVD,您已经看到了这种组件。 + +**burning.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program creates a Burning widget. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx + +class Burning(wx.Panel): + def __init__(self, parent): + wx.Panel.__init__(self, parent, size=(-1, 30), style=wx.SUNKEN_BORDER) + + self.parent = parent + self.font = wx.Font(9, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, + wx.FONTWEIGHT_NORMAL, False, 'Courier 10 Pitch') + + self.Bind(wx.EVT_PAINT, self.OnPaint) + self.Bind(wx.EVT_SIZE, self.OnSize) + + + def OnPaint(self, e): + + num = range(75, 700, 75) + dc = wx.PaintDC(self) + dc.SetFont(self.font) + w, h = self.GetSize() + + self.cw = self.parent.GetParent().cw + + step = int(round(w / 10.0)) + + j = 0 + + till = (w / 750.0) * self.cw + full = (w / 750.0) * 700 + + if self.cw >= 700: + + dc.SetPen(wx.Pen('#FFFFB8')) + dc.SetBrush(wx.Brush('#FFFFB8')) + dc.DrawRectangle(0, 0, full, 30) + dc.SetPen(wx.Pen('#ffafaf')) + dc.SetBrush(wx.Brush('#ffafaf')) + dc.DrawRectangle(full, 0, till-full, 30) + else: + + dc.SetPen(wx.Pen('#FFFFB8')) + dc.SetBrush(wx.Brush('#FFFFB8')) + dc.DrawRectangle(0, 0, till, 30) + + + dc.SetPen(wx.Pen('#5C5142')) + + for i in range(step, 10*step, step): + + dc.DrawLine(i, 0, i, 6) + width, height = dc.GetTextExtent(str(num[j])) + dc.DrawText(str(num[j]), i-width/2, 8) + j = j + 1 + + def OnSize(self, e): + + self.Refresh() + + +class Example(wx.Frame): + + def __init__(self, *args, **kwargs): + super(Example, self).__init__(*args, **kwargs) + + self.InitUI() + + def InitUI(self): + + self.cw = 75 + + panel = wx.Panel(self) + CenterPanel = wx.Panel(panel) + + self.sld = wx.Slider(CenterPanel, value=75, maxValue=750, size=(200, -1), + style=wx.SL_LABELS) + + vbox = wx.BoxSizer(wx.VERTICAL) + hbox = wx.BoxSizer(wx.HORIZONTAL) + hbox2 = wx.BoxSizer(wx.HORIZONTAL) + hbox3 = wx.BoxSizer(wx.HORIZONTAL) + + self.wid = Burning(panel) + hbox.Add(self.wid, 1, wx.EXPAND) + + hbox2.Add(CenterPanel, 1, wx.EXPAND) + hbox3.Add(self.sld, 0, wx.LEFT|wx.TOP, 35) + + CenterPanel.SetSizer(hbox3) + + vbox.Add(hbox2, 1, wx.EXPAND) + vbox.Add(hbox, 0, wx.EXPAND) + + self.Bind(wx.EVT_SCROLL, self.OnScroll) + + panel.SetSizer(vbox) + + self.sld.SetFocus() + + self.SetTitle("Burning widget") + self.Centre() + + def OnScroll(self, e): + + self.cw = self.sld.GetValue() + self.wid.Refresh() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +此组件以图形方式显示介质的总容量和可用空间。组件由滑块 slider 控制。 我们的自定义组件的最小值为0,最大值为 750。如果值达到 700,我们开始绘制红色。 这通常表示烧制过量。 + +```python +w, h = self.GetSize() +self.cw = self.parent.GetParent().cw +... +till = (w / 750.0) * self.cw +full = (w / 750.0) * 700 +``` + +我们动态地绘制组件。窗口越大,烧制的组件就越大。 反之亦然。 这就是为什么我们必须计算我们绘制自定义组件的 `wx.Panel` 的尺寸。 `till` 参数确定要绘制的总尺寸。 该值来自滑块组件。这是整个区域 area 的一部分。 `full` 参数决定了我们开始用红色绘制的点。 注意使用浮点数算术。这是为了达到更高的精度。 + +实际绘图由三个步骤组成。我们绘制黄色或红色和黄色的矩形。然后我们绘制垂直线,它将组件分成几个部分。 最后,我们画出数字,指示介质的使用量。 + +```python +def OnSize(self, e): + + self.Refresh() +``` + +每次调整窗口大小时,我们都会刷新窗口组件。 这会导致组件重新绘制自己。 + +```python +def OnScroll(self, e): + + self.cw = self.sld.GetValue() + self.wid.Refresh() +``` + +如果我们滚动滑块,我们会得到当前实际值并将其保存到 `self.cw` 参数中。当烧制组件被绘制时,这个值被使用。 然后我们让该组件被重绘。 + +![Burning widget](assets/burning.png) + +## The CPU widget + +有系统应用程序可以测量系统资源,如温度、内存或 CPU 消耗。专用组件的创建使应用程序更具吸引力。 + +以下组件经常用于系统应用程序。 + +**cpu.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program creates a CPU widget. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx + + +class CPU(wx.Panel): + + def __init__(self, parent): + wx.Panel.__init__(self, parent, size=(80, 110)) + + self.parent = parent + self.SetBackgroundColour('#000000') + self.Bind(wx.EVT_PAINT, self.OnPaint) + + + def OnPaint(self, e): + + dc = wx.PaintDC(self) + + dc.SetDeviceOrigin(0, 100) + dc.SetAxisOrientation(True, True) + + pos = self.parent.GetParent().GetParent().sel + rect = pos / 5 + + for i in range(1, 21): + + if i > rect: + + dc.SetBrush(wx.Brush('#075100')) + dc.DrawRectangle(10, i*4, 30, 5) + dc.DrawRectangle(41, i*4, 30, 5) + + else: + dc.SetBrush(wx.Brush('#36ff27')) + dc.DrawRectangle(10, i*4, 30, 5) + dc.DrawRectangle(41, i*4, 30, 5) + + +class Example(wx.Frame): + + def __init__(self, *args, **kwargs): + super(Example, self).__init__(*args, **kwargs) + + self.InitUI() + + def InitUI(self): + + self.sel = 0 + + panel = wx.Panel(self) + centerPanel = wx.Panel(panel) + + self.cpu = CPU(centerPanel) + + hbox = wx.BoxSizer(wx.HORIZONTAL) + + self.slider = wx.Slider(panel, value=self.sel, maxValue=100, size=(-1, 100), + style=wx.VERTICAL | wx.SL_INVERSE) + self.slider.SetFocus() + + hbox.Add(centerPanel, 0, wx.LEFT | wx.TOP, 20) + hbox.Add(self.slider, 0, wx.LEFT | wx.TOP, 30) + + self.Bind(wx.EVT_SCROLL, self.OnScroll) + + panel.SetSizer(hbox) + + self.SetTitle("CPU") + self.Centre() + + + def OnScroll(self, e): + + self.sel = e.GetInt() + self.cpu.Refresh() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +我们创建一个黑色面板。然后我们在这个面板上绘制小矩形。矩形的颜色取决于滑块的值。颜色可以是深绿色 dark green 或亮绿色 bright green。 + +```python +dc.SetDeviceOrigin(0, 100) +dc.SetAxisOrientation(True, True) +``` + +在这里,我们将默认坐标系更改为笛卡尔坐标系。 这是为了使绘图直观。 + +```python +pos = self.parent.GetParent().GetParent().sel +rect = pos / 5 +``` + +这里我们得到了 sizer 的值。 我们每列有 20 个矩形。 滑块有 100 个数字。 rect 参数将滑块值转换为将以亮绿色绘制的矩形。 + +```python +for i in range(1, 21): + + if i > rect: + dc.SetBrush(wx.Brush('#075100')) + dc.DrawRectangle(10, i*4, 30, 5) + dc.DrawRectangle(41, i*4, 30, 5) + + else: + dc.SetBrush(wx.Brush('#36ff27')) + dc.DrawRectangle(10, i*4, 30, 5) + dc.DrawRectangle(41, i*4, 30, 5) +``` + +在这里,我们绘制了 40 个矩形,每列 20 个。如果正在绘制的矩形的数量大于转换后的 rect 值,我们将它绘制成深绿色;否则以亮绿色。 + +![CPU widget](assets/cpuwidget.png) + +在本章中,我们在 wxPython 中创建了自定义组件。 \ No newline at end of file diff --git "a/12.\347\250\213\345\272\217\351\252\250\346\236\266.md" "b/12.\347\250\213\345\272\217\351\252\250\346\236\266.md" new file mode 100644 index 0000000..a17c2b9 --- /dev/null +++ "b/12.\347\250\213\345\272\217\351\252\250\346\236\266.md" @@ -0,0 +1,859 @@ +# Application skeletons in wxPython + +在本节中,我们将创建一些应用程序框架。 我们的脚本将解决界面,但不会实现功能。 目标是展示如何在 wxPython 中完成几个众所周知的 GUI 界面。 + +## File Manager + +File Hunter 是文件管理器的骨架。 它复制了 Unix 系统上的文件管理器 Krusader。 如果我们双击分离器组件,它会将 File Hunter 分成两部分,宽度相同。如果我们调整主窗口的大小,会发生同样的情况。 + +**file_hunter.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program creates a skeleton +of a file manager UI. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx +import os +import time + +ID_BUTTON=100 +ID_EXIT=200 +ID_SPLITTER=300 + + +class MyListCtrl(wx.ListCtrl): + + def __init__(self, parent): + wx.ListCtrl.__init__(self, parent, style=wx.LC_REPORT) + + images = ['images/empty.png', 'images/folder.png', 'images/source-py.png', + 'images/image.png', 'images/pdf.png', 'images/up16.png'] + + self.InsertColumn(0, 'Name') + self.InsertColumn(1, 'Ext') + self.InsertColumn(2, 'Size', wx.LIST_FORMAT_RIGHT) + self.InsertColumn(3, 'Modified') + + self.SetColumnWidth(0, 220) + self.SetColumnWidth(1, 70) + self.SetColumnWidth(2, 100) + self.SetColumnWidth(3, 420) + + self.il = wx.ImageList(16, 16) + + for i in images: + + self.il.Add(wx.Bitmap(i)) + + self.SetImageList(self.il, wx.IMAGE_LIST_SMALL) + + j = 1 + + self.InsertItem(0, '..') + self.SetItemImage(0, 5) + + files = os.listdir('.') + + for i in files: + + (name, ext) = os.path.splitext(i) + ex = ext[1:] + size = os.path.getsize(i) + sec = os.path.getmtime(i) + + self.InsertItem(j, name) + self.SetItem(j, 1, ex) + self.SetItem(j, 2, str(size) + ' B') + self.SetItem(j, 3, time.strftime('%Y-%m-%d %H:%M', time.localtime(sec))) + + if os.path.isdir(i): + self.SetItemImage(j, 1) + elif ex == 'py': + self.SetItemImage(j, 2) + elif ex == 'jpg': + self.SetItemImage(j, 3) + elif ex == 'pdf': + self.SetItemImage(j, 4) + else: + self.SetItemImage(j, 0) + + if (j % 2) == 0: + + self.SetItemBackgroundColour(j, '#e6f1f5') + + j = j + 1 + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.splitter = wx.SplitterWindow(self, ID_SPLITTER, style=wx.SP_BORDER) + self.splitter.SetMinimumPaneSize(50) + + p1 = MyListCtrl(self.splitter) + p2 = MyListCtrl(self.splitter) + self.splitter.SplitVertically(p1, p2) + + self.Bind(wx.EVT_SIZE, self.OnSize) + self.Bind(wx.EVT_SPLITTER_DCLICK, self.OnDoubleClick, id=ID_SPLITTER) + + filemenu= wx.Menu() + filemenu.Append(ID_EXIT, "E&xit"," Terminate the program") + editmenu = wx.Menu() + netmenu = wx.Menu() + showmenu = wx.Menu() + configmenu = wx.Menu() + helpmenu = wx.Menu() + + menuBar = wx.MenuBar() + menuBar.Append(filemenu, "&File") + menuBar.Append(editmenu, "&Edit") + menuBar.Append(netmenu, "&Net") + menuBar.Append(showmenu, "&Show") + menuBar.Append(configmenu, "&Config") + menuBar.Append(helpmenu, "&Help") + self.SetMenuBar(menuBar) + self.Bind(wx.EVT_MENU, self.OnExit, id=ID_EXIT) + + tb = self.CreateToolBar( wx.TB_HORIZONTAL | wx.NO_BORDER | + wx.TB_FLAT) + + tb.AddTool(10, 'Previous', wx.Bitmap('images/previous.png'), shortHelp='Previous') + tb.AddTool(20, 'Up', wx.Bitmap('images/up.png'), shortHelp='Up one directory') + tb.AddTool(30, 'Home', wx.Bitmap('images/home.png'), shortHelp='Home') + tb.AddTool(40, 'Refresh', wx.Bitmap('images/refresh.png'), shortHelp='Refresh') + tb.AddSeparator() + tb.AddTool(50, 'Edit text', wx.Bitmap('images/textedit.png'), shortHelp='Edit text') + tb.AddTool(60, 'Terminal', wx.Bitmap('images/terminal.png'), shortHelp='Terminal') + tb.AddSeparator() + tb.AddTool(70, 'Help', wx.Bitmap('images/help.png'), shortHelp='Show help') + tb.Realize() + + self.sizer2 = wx.BoxSizer(wx.HORIZONTAL) + + button1 = wx.Button(self, ID_BUTTON + 1, "F3 View") + button2 = wx.Button(self, ID_BUTTON + 2, "F4 Edit") + button3 = wx.Button(self, ID_BUTTON + 3, "F5 Copy") + button4 = wx.Button(self, ID_BUTTON + 4, "F6 Move") + button5 = wx.Button(self, ID_BUTTON + 5, "F7 Mkdir") + button6 = wx.Button(self, ID_BUTTON + 6, "F8 Delete") + button7 = wx.Button(self, ID_BUTTON + 7, "F9 Rename") + button8 = wx.Button(self, ID_EXIT, "F10 Quit") + + self.sizer2.Add(button1, 1, wx.EXPAND) + self.sizer2.Add(button2, 1, wx.EXPAND) + self.sizer2.Add(button3, 1, wx.EXPAND) + self.sizer2.Add(button4, 1, wx.EXPAND) + self.sizer2.Add(button5, 1, wx.EXPAND) + self.sizer2.Add(button6, 1, wx.EXPAND) + self.sizer2.Add(button7, 1, wx.EXPAND) + self.sizer2.Add(button8, 1, wx.EXPAND) + + self.Bind(wx.EVT_BUTTON, self.OnExit, id=ID_EXIT) + + self.sizer = wx.BoxSizer(wx.VERTICAL) + self.sizer.Add(self.splitter,1,wx.EXPAND) + self.sizer.Add(self.sizer2,0,wx.EXPAND) + self.SetSizer(self.sizer) + + # size = wx.DisplaySize() + # self.SetSize(size) + + sb = self.CreateStatusBar() + sb.SetStatusText(os.getcwd()) + + self.SetTitle("File Hunter") + self.Center() + + + def OnExit(self, e): + + self.Close(True) + + def OnSize(self, e): + + size = self.GetSize() + self.splitter.SetSashPosition(size.x / 2) + + e.Skip() + + def OnDoubleClick(self, e): + + size = self.GetSize() + self.splitter.SetSashPosition(size.x / 2) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +该示例创建一个双面板文件管理器 UI。 + +```python +class MyListCtrl(wx.ListCtrl): + + def __init__(self, parent): + wx.ListCtrl.__init__(self, parent, style=wx.LC_REPORT) +``` + +该应用程序的主要区域被 `wx.ListCtrl` 组件占用。 + +```python +self.il = wx.ImageList(16, 16) + +for i in images: + + self.il.Add(wx.Bitmap(i)) + +self.SetImageList(self.il, wx.IMAGE_LIST_SMALL) +``` + +列表控件包含一个列表图像,用于指示文件类型。 + +```python +files = os.listdir('.') + +for i in files: + + (name, ext) = os.path.splitext(i) + ex = ext[1:] + size = os.path.getsize(i) + sec = os.path.getmtime(i) + ... +``` + +我们得到当前工作目录的内容,并确定文件扩展名、大小和最后修改时间。 + +```python +if os.path.isdir(i): + self.SetItemImage(j, 1) +elif ex == 'py': + self.SetItemImage(j, 2) +elif ex == 'jpg': + self.SetItemImage(j, 3) +elif ex == 'pdf': + self.SetItemImage(j, 4) +else: + self.SetItemImage(j, 0) +``` + +根据文件扩展名选择文件的图标。 + +```python +self.splitter = wx.SplitterWindow(self, ID_SPLITTER, style=wx.SP_BORDER) +self.splitter.SetMinimumPaneSize(50) + +p1 = MyListCtrl(self.splitter) +p2 = MyListCtrl(self.splitter) +self.splitter.SplitVertically(p1, p2) +``` + +我们有两个由分离器小部件垂直分隔的列表控件。 + +```python +menuBar = wx.MenuBar() +menuBar.Append(filemenu, "&File") +menuBar.Append(editmenu, "&Edit") +... +``` + +我们有一个菜单栏 menubar。 + +```python +tb = self.CreateToolBar( wx.TB_HORIZONTAL | wx.NO_BORDER | + wx.TB_FLAT) + +tb.AddTool(10, 'Previous', wx.Bitmap('images/previous.png'), shortHelp='Previous') +tb.AddTool(20, 'Up', wx.Bitmap('images/up.png'), shortHelp='Up one directory') +... +``` + +我们有一个工具栏 toolbar. + +```python +self.sizer2 = wx.BoxSizer(wx.HORIZONTAL) + +button1 = wx.Button(self, ID_BUTTON + 1, "F3 View") +button2 = wx.Button(self, ID_BUTTON + 2, "F4 Edit") +button3 = wx.Button(self, ID_BUTTON + 3, "F5 Copy") +button4 = wx.Button(self, ID_BUTTON + 4, "F6 Move") +... +``` + +八个按钮放置在水平 sizer 中, sizer 被添加到窗口的底部。 + +![File manager](assets/filehunter.png)manager + +## SpreadSheet + +以下示例创建电子表格应用程序的 UI。 + +**spreadsheet.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program creates a SpreadSheet UI. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +from wx.lib import sheet +import wx + + +class MySheet(wx.grid.Grid): + + def __init__(self, *args, **kw): + super(MySheet, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + nOfRows = 55 + nOfCols = 25 + + self.row = self.col = 0 + self.CreateGrid(nOfRows, nOfCols) + + self.SetColLabelSize(20) + self.SetRowLabelSize(50) + + self.Bind(wx.grid.EVT_GRID_SELECT_CELL, self.OnGridSelectCell) + + for i in range(nOfRows): + self.SetRowSize(i, 20) + + for i in range(nOfCols): + self.SetColSize(i, 75) + + def OnGridSelectCell(self, e): + + self.row, self.col = e.GetRow(), e.GetCol() + + control = self.GetParent().GetParent().position + value = self.GetColLabelValue(self.col) + self.GetRowLabelValue(self.row) + control.SetValue(value) + + e.Skip() + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + fonts = ['Times New Roman', 'Times', 'Courier', 'Courier New', 'Helvetica', + 'Sans', 'verdana', 'utkal', 'aakar', 'Arial'] + font_sizes = ['10', '11', '12', '14', '16'] + + box = wx.BoxSizer(wx.VERTICAL) + menuBar = wx.MenuBar() + + menu1 = wx.Menu() + menuBar.Append(menu1, '&File') + menu2 = wx.Menu() + menuBar.Append(menu2, '&Edit') + menu3 = wx.Menu() + menuBar.Append(menu3, '&Edit') + menu4 = wx.Menu() + menuBar.Append(menu4, '&Insert') + menu5 = wx.Menu() + menuBar.Append(menu5, 'F&ormat') + menu6 = wx.Menu() + menuBar.Append(menu6, '&Tools') + menu7 = wx.Menu() + menuBar.Append(menu7, '&Data') + menu8 = wx.Menu() + menuBar.Append(menu8, '&Help') + + self.SetMenuBar(menuBar) + + toolbar1 = wx.ToolBar(self, style= wx.TB_HORIZONTAL) + + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('images/new.png')) + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('images/open.png')) + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('images/save.png')) + + toolbar1.AddSeparator() + + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('images/cut.png')) + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('images/copy.png')) + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('images/paste.png')) + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('images/delete.png')) + + toolbar1.AddSeparator() + + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('images/undo.png')) + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('images/redo.png')) + + toolbar1.AddSeparator() + + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('images/asc.png')) + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('images/desc.png')) + + toolbar1.AddSeparator() + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('images/chart.png')) + + toolbar1.AddSeparator() + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('images/exit.png')) + + toolbar1.Realize() + + toolbar2 = wx.ToolBar(self, wx.TB_HORIZONTAL | wx.TB_TEXT) + + self.position = wx.TextCtrl(toolbar2) + + font = wx.ComboBox(toolbar2, value='Times', choices=fonts, size=(100, -1), + style=wx.CB_DROPDOWN) + + font_height = wx.ComboBox(toolbar2, value='10', choices=font_sizes, + size=(50, -1), style=wx.CB_DROPDOWN) + + toolbar2.AddControl(self.position) + toolbar2.AddControl(font) + toolbar2.AddControl(font_height) + + toolbar2.AddSeparator() + + toolbar2.AddCheckTool(wx.ID_ANY, '', wx.Bitmap('images/text-bold.png')) + toolbar2.AddCheckTool(wx.ID_ANY, '', wx.Bitmap('images/text-italic.png')) + toolbar2.AddCheckTool(wx.ID_ANY, '', wx.Bitmap('images/text-underline.png')) + + toolbar2.AddSeparator() + + toolbar2.AddTool(wx.ID_ANY, '', wx.Bitmap('images/align-left.png')) + toolbar2.AddTool(wx.ID_ANY, '', wx.Bitmap('images/align-center.png')) + toolbar2.AddTool(wx.ID_ANY, '', wx.Bitmap('images/align-right.png')) + + box.Add(toolbar1, border=5) + box.Add((5,5) , 0) + box.Add(toolbar2) + box.Add((5,10) , 0) + + toolbar2.Realize() + self.SetSizer(box) + + notebook = wx.Notebook(self, style=wx.RIGHT) + + sheet1 = MySheet(notebook) + sheet2 = MySheet(notebook) + sheet3 = MySheet(notebook) + sheet1.SetFocus() + + notebook.AddPage(sheet1, 'Sheet1') + notebook.AddPage(sheet2, 'Sheet2') + notebook.AddPage(sheet3, 'Sheet3') + + box.Add(notebook, 1, wx.EXPAND) + + self.CreateStatusBar() + + self.SetSize((550, 550)) + self.SetTitle("SpreadSheet") + self.Centre() + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +示例代码创建了 SpreadSheet 应用程序的 UI。 我有一个菜单栏 menubar,工具栏 toolbars 和一个中央网格组件 grid widget。 + +```python +class MySheet(wx.grid.Grid): + + def __init__(self, *args, **kw): + super(MySheet, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + nOfRows = 55 + nOfCols = 25 + + self.row = self.col = 0 + self.CreateGrid(nOfRows, nOfCols) + ... +``` + +我们创建一个自定义的 `wx.grid.Grid` 小部件。我们的每张 sheets 都有五十五行和二十五列。使用 `CreateGrid()` 方法创建单元网格。 + +```python +control = self.GetParent().GetParent().position +``` + +位置文本控件 position text control 显示网格窗口组件 grid widget 选中的单元格。它是第二个工具栏的第一个组件。 在 `MySheet` 类中,我们需要获取 `Example` 类中定义的文本控件的引用。`MySheet` 是 notebook 的孩子。而 notebook 是 `Example` 的孩子。所以我们设法通过两次调用 `GetParent()` 方法来获得位置文本控件。 + +```v +notebook = wx.Notebook(self, style=wx.RIGHT) + +sheet1 = MySheet(notebook) +sheet2 = MySheet(notebook) +sheet3 = MySheet(notebook) +sheet1.SetFocus() + +notebook.AddPage(sheet1, 'Sheet1') +notebook.AddPage(sheet2, 'Sheet2') +notebook.AddPage(sheet3, 'Sheet3') +``` + +三张 sheets 被创建并放入笔记本组件 notebook widget 中。 + +![Spreadsheet](assets/spreadsheet.png) + +## Player + +以下示例是常见的视频播放器的骨架。 + +**player.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program creates a Player UI. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.CreateMenuBar() + + panel = wx.Panel(self) + + pnl1 = wx.Panel(self) + pnl1.SetBackgroundColour(wx.BLACK) + pnl2 = wx.Panel(self) + + slider1 = wx.Slider(pnl2, value=18, minValue=0, maxValue=1000) + pause = wx.BitmapButton(pnl2, bitmap=wx.Bitmap('images/pause.png')) + play = wx.BitmapButton(pnl2, bitmap=wx.Bitmap('images/play.png')) + forw = wx.BitmapButton(pnl2, bitmap=wx.Bitmap('images/forw.png')) + back = wx.BitmapButton(pnl2, bitmap=wx.Bitmap('images/back.png')) + vol = wx.BitmapButton(pnl2, bitmap=wx.Bitmap('images/volume.png')) + slider2 = wx.Slider(pnl2, value=1, minValue=0, maxValue=100, + size=(120, -1)) + + vbox = wx.BoxSizer(wx.VERTICAL) + hbox1 = wx.BoxSizer(wx.HORIZONTAL) + hbox2 = wx.BoxSizer(wx.HORIZONTAL) + + hbox1.Add(slider1, proportion=1) + hbox2.Add(pause) + hbox2.Add(play, flag=wx.RIGHT, border=5) + hbox2.Add(forw, flag=wx.LEFT, border=5) + hbox2.Add(back) + hbox2.Add((-1, -1), proportion=1) + hbox2.Add(vol) + hbox2.Add(slider2, flag=wx.TOP|wx.LEFT, border=5) + + vbox.Add(hbox1, flag=wx.EXPAND|wx.BOTTOM, border=10) + vbox.Add(hbox2, proportion=1, flag=wx.EXPAND) + pnl2.SetSizer(vbox) + + sizer = wx.BoxSizer(wx.VERTICAL) + sizer.Add(pnl1, proportion=1, flag=wx.EXPAND) + sizer.Add(pnl2, flag=wx.EXPAND|wx.BOTTOM|wx.TOP, border=10) + + self.SetMinSize((350, 300)) + self.CreateStatusBar() + self.SetSizer(sizer) + + self.SetSize((350, 200)) + self.SetTitle('Player') + self.Centre() + + def CreateMenuBar(self): + + menubar = wx.MenuBar() + filem = wx.Menu() + play = wx.Menu() + view = wx.Menu() + tools = wx.Menu() + favorites = wx.Menu() + help = wx.Menu() + + filem.Append(wx.ID_ANY, '&Quit', 'Quit application') + + menubar.Append(filem, '&File') + menubar.Append(play, '&Play') + menubar.Append(view, '&View') + menubar.Append(tools, '&Tools') + menubar.Append(favorites, 'F&avorites') + menubar.Append(help, '&Help') + + self.SetMenuBar(menubar) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +为了构建界面,我们使用了位图按钮 bitmap buttons、滑块 sliders、面板 panels 和菜单栏 menubar。 + +```python +pnl1 = wx.Panel(self) +pnl1.SetBackgroundColour(wx.BLACK) +``` + +该应用程序的主要区域被黑色背景的面板占据。 + +```python +slider1 = wx.Slider(pnl2, value=18, minValue=0, maxValue=1000) +``` + +`wx.Slider` 用于显示电影的进度。 + +```python +pause = wx.BitmapButton(pnl2, bitmap=wx.Bitmap('images/pause.png')) +play = wx.BitmapButton(pnl2, bitmap=wx.Bitmap('images/play.png')) +``` + +位图按钮 Bitmap buttons 用于控制按钮 control buttons。 + +```python +self.SetMinSize((350, 300)) +``` + +这里我们设置了播放器的最小尺寸。将窗口缩小到某个值以下没什么意义。 + +![Player](assets/player.png) + +## Browser + +在以下示例中,我们模仿了经典浏览器 UI 的外观。 + +**browser.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This program creates a browser UI. + +author: Jan Bodnar +website: zetcode.com +last edited: May 2018 +""" + +import wx +from wx.lib.buttons import GenBitmapTextButton + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.CreateMenuBar() + + panel = wx.Panel(self) + # panel.SetBackgroundColour('white') + + vbox = wx.BoxSizer(wx.VERTICAL) + hbox1 = wx.BoxSizer(wx.HORIZONTAL) + hbox2 = wx.BoxSizer(wx.HORIZONTAL) + + line1 = wx.StaticLine(panel) + vbox.Add(line1, 0, wx.EXPAND) + + toolbar1 = wx.Panel(panel, size=(-1, 30)) + + back = wx.BitmapButton(toolbar1, bitmap=wx.Bitmap('images/back.png'), + style=wx.NO_BORDER) + forward = wx.BitmapButton(toolbar1, bitmap=wx.Bitmap('images/forw.png'), + style=wx.NO_BORDER) + refresh = wx.BitmapButton(toolbar1, bitmap=wx.Bitmap('images/refresh.png'), + style=wx.NO_BORDER) + stop = wx.BitmapButton(toolbar1, bitmap=wx.Bitmap('images/stop.png'), + style=wx.NO_BORDER) + home = wx.BitmapButton(toolbar1, bitmap=wx.Bitmap('images/home.png'), + style=wx.NO_BORDER) + address = wx.ComboBox(toolbar1, size=(50, -1)) + go = wx.BitmapButton(toolbar1, bitmap=wx.Bitmap('images/play.png'), + style=wx.NO_BORDER) + text = wx.TextCtrl(toolbar1, size=(150, -1)) + + hbox1.Add(back) + hbox1.Add(forward) + hbox1.Add(refresh) + hbox1.Add(stop) + hbox1.Add(home) + hbox1.Add(address, 1, wx.TOP, 3) + hbox1.Add(go, 0, wx.TOP | wx.LEFT, 3) + hbox1.Add(text, 0, wx.TOP | wx.RIGHT, 3) + + toolbar1.SetSizer(hbox1) + vbox.Add(toolbar1, 0, wx.EXPAND) + line = wx.StaticLine(panel) + vbox.Add(line, 0, wx.EXPAND) + + toolbar2 = wx.Panel(panel, size=(-1, 30)) + bookmark1 = wx.BitmapButton(toolbar2, bitmap=wx.Bitmap('images/love.png'), + style=wx.NO_BORDER) + bookmark2 = wx.BitmapButton(toolbar2, bitmap=wx.Bitmap('images/book.png'), + style=wx.NO_BORDER) + bookmark3 = wx.BitmapButton(toolbar2, bitmap=wx.Bitmap('images/sound.png'), + style=wx.NO_BORDER) + + hbox2.Add(bookmark1, flag=wx.RIGHT, border=5) + hbox2.Add(bookmark2, flag=wx.RIGHT, border=5) + hbox2.Add(bookmark3) + + toolbar2.SetSizer(hbox2) + vbox.Add(toolbar2, 0, wx.EXPAND) + + line2 = wx.StaticLine(panel) + vbox.Add(line2, 0, wx.EXPAND) + + panel.SetSizer(vbox) + + self.CreateStatusBar() + + self.SetTitle("Browser") + self.Centre() + + def CreateMenuBar(self): + + menubar = wx.MenuBar() + file = wx.Menu() + file.Append(wx.ID_ANY, '&Quit', '') + edit = wx.Menu() + view = wx.Menu() + go = wx.Menu() + bookmarks = wx.Menu() + tools = wx.Menu() + help = wx.Menu() + + menubar.Append(file, '&File') + menubar.Append(edit, '&Edit') + menubar.Append(view, '&View') + menubar.Append(go, '&Go') + menubar.Append(bookmarks, '&Bookmarks') + menubar.Append(tools, '&Tools') + menubar.Append(help, '&Help') + + self.SetMenuBar(menubar) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +为了创建一个 sizeable combo box,我们不能使用 `wx.Toolbar`。我们基于 `wx.Panel` 创建我们的自定义工具栏。 + +```python +toolbar1 = wx.Panel(panel, size=(-1, 40)) +``` + +我们创建一个普通的 `wx.Panel`。 + +```python +hbox1 = wx.BoxSizer(wx.HORIZONTAL) +... +hbox1.Add(back) +hbox1.Add(forward) +hbox1.Add(refresh) +``` + +我们创建一个水平 sizer 并添加所有必要的按钮。 + +```python +hbox1.Add(address, 1, wx.TOP, 4) +``` + +然后我们将组合框 combo box 添加到 sizer 中。这种组合框通常称为地址栏。请注意,它是唯一将比例设置为 1 的组件。这对于使其可调整大小是必需的。 + +```python +line2 = wx.StaticLine(panel) +vbox.Add(line2, 0, wx.EXPAND) +``` + +工具栏由一条线隔开。 + +![Browser UI](assets/browser.png) + +在这部分 wxPython 教程中,我们创建了一些应用程序骨架。 \ No newline at end of file diff --git "a/13.\344\277\204\347\275\227\346\226\257\346\226\271\345\235\227.md" "b/13.\344\277\204\347\275\227\346\226\257\346\226\271\345\235\227.md" new file mode 100644 index 0000000..16d3849 --- /dev/null +++ "b/13.\344\277\204\347\275\227\346\226\257\346\226\271\345\235\227.md" @@ -0,0 +1,657 @@ +# The Tetris game in wxPython + +俄罗斯方块游戏是有史以来最受欢迎的电脑游戏之一。最初的游戏是由俄罗斯程序员 Alexey Pajitnov 于 1985 年设计和编程的。从那以后,俄罗斯方块在几乎所有的计算机平台上都有很多变种。 + +俄罗斯方块被称为下降块益智游戏。在这个游戏中,我们有七种不同的形状,称为 tetromino:S形、Z形、T形、L形、线形、Mirrored L形和方形。每个形状都由四个正方形构成。形状将跌落在板子 board 上。俄罗斯方块游戏的目标是移动和旋转形状,使它们尽可能适合。 如果我们设法形成一排,那么这一排就会被消掉,然后得分。我们玩俄罗斯方块游戏,直到最上面顶出去。 + +![Tetrominoes](assets/tetrominoes.png) + +wxPython 是一个用于创建应用程序的工具包。还有其他一些旨在创建电脑游戏的库。尽管如此,wxPython 和其他应用程序工具包都可用于创建游戏。 + +## The development + +我们没有俄罗斯方块游戏的图像,我们使用 wxPython 中的绘图 API 绘制 tetrominoes。每个电脑游戏的背后都有一个数学模型。 俄罗斯方块也不例外。 + +游戏背后的一些思想: + +- 我们用 `wx.Timer` 创建游戏循环 +- 绘制 tetrominoes +- 形状以方形为基础逐个移动(而不是逐个移动像素) +- 在数学上, board 是一个简单的数字列表 + +**tetris.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This is Tetris game clone in wxPython. + +author: Jan Bodnar +website: www.zetcode.com +last modified: May 2018 +""" + +import wx +import random + +class Tetris(wx.Frame): + + def __init__(self, parent): + wx.Frame.__init__(self, parent, size=(180, 380), + style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER ^ wx.MAXIMIZE_BOX) + + self.initFrame() + + def initFrame(self): + + self.statusbar = self.CreateStatusBar() + self.statusbar.SetStatusText('0') + self.board = Board(self) + self.board.SetFocus() + self.board.start() + + self.SetTitle("Tetris") + self.Centre() + + +class Board(wx.Panel): + + BoardWidth = 10 + BoardHeight = 22 + Speed = 300 + ID_TIMER = 1 + + def __init__(self, *args, **kw): + + super(Board, self).__init__(*args, **kw) + + self.initBoard() + + def initBoard(self): + + self.timer = wx.Timer(self, Board.ID_TIMER) + self.isWaitingAfterLine = False + self.curPiece = Shape() + self.nextPiece = Shape() + self.curX = 0 + self.curY = 0 + self.numLinesRemoved = 0 + self.board = [] + + self.isStarted = False + self.isPaused = False + + self.Bind(wx.EVT_PAINT, self.OnPaint) + self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown) + self.Bind(wx.EVT_TIMER, self.OnTimer, id=Board.ID_TIMER) + + self.clearBoard() + + def shapeAt(self, x, y): + + return self.board[(y * Board.BoardWidth) + x] + + def setShapeAt(self, x, y, shape): + + self.board[(y * Board.BoardWidth) + x] = shape + + def squareWidth(self): + + return self.GetClientSize().GetWidth() // Board.BoardWidth + + def squareHeight(self): + + return self.GetClientSize().GetHeight() // Board.BoardHeight + + def start(self): + + if self.isPaused: + return + + self.isStarted = True + self.isWaitingAfterLine = False + self.numLinesRemoved = 0 + self.clearBoard() + + self.newPiece() + self.timer.Start(Board.Speed) + + def pause(self): + + if not self.isStarted: + return + + self.isPaused = not self.isPaused + statusbar = self.GetParent().statusbar + + if self.isPaused: + self.timer.Stop() + statusbar.SetStatusText('paused') + else: + self.timer.Start(Board.Speed) + statusbar.SetStatusText(str(self.numLinesRemoved)) + + self.Refresh() + + def clearBoard(self): + + for i in range(Board.BoardHeight * Board.BoardWidth): + self.board.append(Tetrominoes.NoShape) + + def OnPaint(self, event): + + dc = wx.PaintDC(self) + + size = self.GetClientSize() + boardTop = size.GetHeight() - Board.BoardHeight * self.squareHeight() + + for i in range(Board.BoardHeight): + for j in range(Board.BoardWidth): + + shape = self.shapeAt(j, Board.BoardHeight - i - 1) + + if shape != Tetrominoes.NoShape: + self.drawSquare(dc, + 0 + j * self.squareWidth(), + boardTop + i * self.squareHeight(), shape) + + if self.curPiece.shape() != Tetrominoes.NoShape: + + for i in range(4): + + x = self.curX + self.curPiece.x(i) + y = self.curY - self.curPiece.y(i) + + self.drawSquare(dc, 0 + x * self.squareWidth(), + boardTop + (Board.BoardHeight - y - 1) * self.squareHeight(), + self.curPiece.shape()) + + + def OnKeyDown(self, event): + + if not self.isStarted or self.curPiece.shape() == Tetrominoes.NoShape: + event.Skip() + return + + keycode = event.GetKeyCode() + + if keycode == ord('P') or keycode == ord('p'): + self.pause() + return + + if self.isPaused: + return + + elif keycode == wx.WXK_LEFT: + self.tryMove(self.curPiece, self.curX - 1, self.curY) + + elif keycode == wx.WXK_RIGHT: + self.tryMove(self.curPiece, self.curX + 1, self.curY) + + elif keycode == wx.WXK_DOWN: + self.tryMove(self.curPiece.rotatedRight(), self.curX, self.curY) + + elif keycode == wx.WXK_UP: + self.tryMove(self.curPiece.rotatedLeft(), self.curX, self.curY) + + elif keycode == wx.WXK_SPACE: + self.dropDown() + + elif keycode == ord('D') or keycode == ord('d'): + self.oneLineDown() + + else: + event.Skip() + + + def OnTimer(self, event): + + if event.GetId() == Board.ID_TIMER: + + if self.isWaitingAfterLine: + self.isWaitingAfterLine = False + self.newPiece() + + else: + self.oneLineDown() + + else: + event.Skip() + + + def dropDown(self): + + newY = self.curY + + while newY > 0: + if not self.tryMove(self.curPiece, self.curX, newY - 1): + break + newY -= 1 + + self.pieceDropped() + + def oneLineDown(self): + + if not self.tryMove(self.curPiece, self.curX, self.curY - 1): + self.pieceDropped() + + + def pieceDropped(self): + + for i in range(4): + + x = self.curX + self.curPiece.x(i) + y = self.curY - self.curPiece.y(i) + self.setShapeAt(x, y, self.curPiece.shape()) + + self.removeFullLines() + + if not self.isWaitingAfterLine: + self.newPiece() + + + def removeFullLines(self): + + numFullLines = 0 + + statusbar = self.GetParent().statusbar + + rowsToRemove = [] + + for i in range(Board.BoardHeight): + n = 0 + for j in range(Board.BoardWidth): + if not self.shapeAt(j, i) == Tetrominoes.NoShape: + n = n + 1 + + if n == 10: + rowsToRemove.append(i) + + rowsToRemove.reverse() + + for m in rowsToRemove: + for k in range(m, Board.BoardHeight): + for l in range(Board.BoardWidth): + self.setShapeAt(l, k, self.shapeAt(l, k + 1)) + + numFullLines = numFullLines + len(rowsToRemove) + + if numFullLines > 0: + + self.numLinesRemoved = self.numLinesRemoved + numFullLines + statusbar.SetStatusText(str(self.numLinesRemoved)) + self.isWaitingAfterLine = True + self.curPiece.setShape(Tetrominoes.NoShape) + self.Refresh() + + + def newPiece(self): + + self.curPiece = self.nextPiece + statusbar = self.GetParent().statusbar + self.nextPiece.setRandomShape() + + self.curX = Board.BoardWidth // 2 + 1 + self.curY = Board.BoardHeight - 1 + self.curPiece.minY() + + if not self.tryMove(self.curPiece, self.curX, self.curY): + + self.curPiece.setShape(Tetrominoes.NoShape) + self.timer.Stop() + self.isStarted = False + statusbar.SetStatusText('Game over') + + + def tryMove(self, newPiece, newX, newY): + + for i in range(4): + + x = newX + newPiece.x(i) + y = newY - newPiece.y(i) + + if x < 0 or x >= Board.BoardWidth or y < 0 or y >= Board.BoardHeight: + return False + + if self.shapeAt(x, y) != Tetrominoes.NoShape: + return False + + self.curPiece = newPiece + self.curX = newX + self.curY = newY + self.Refresh() + + return True + + + def drawSquare(self, dc, x, y, shape): + + colors = ['#000000', '#CC6666', '#66CC66', '#6666CC', + '#CCCC66', '#CC66CC', '#66CCCC', '#DAAA00'] + + light = ['#000000', '#F89FAB', '#79FC79', '#7979FC', + '#FCFC79', '#FC79FC', '#79FCFC', '#FCC600'] + + dark = ['#000000', '#803C3B', '#3B803B', '#3B3B80', + '#80803B', '#803B80', '#3B8080', '#806200'] + + pen = wx.Pen(light[shape]) + pen.SetCap(wx.CAP_PROJECTING) + dc.SetPen(pen) + + dc.DrawLine(x, y + self.squareHeight() - 1, x, y) + dc.DrawLine(x, y, x + self.squareWidth() - 1, y) + + darkpen = wx.Pen(dark[shape]) + darkpen.SetCap(wx.CAP_PROJECTING) + dc.SetPen(darkpen) + + dc.DrawLine(x + 1, y + self.squareHeight() - 1, + x + self.squareWidth() - 1, y + self.squareHeight() - 1) + dc.DrawLine(x + self.squareWidth() - 1, + y + self.squareHeight() - 1, x + self.squareWidth() - 1, y + 1) + + dc.SetPen(wx.TRANSPARENT_PEN) + dc.SetBrush(wx.Brush(colors[shape])) + dc.DrawRectangle(x + 1, y + 1, self.squareWidth() - 2, + self.squareHeight() - 2) + + +class Tetrominoes(object): + + NoShape = 0 + ZShape = 1 + SShape = 2 + LineShape = 3 + TShape = 4 + SquareShape = 5 + LShape = 6 + MirroredLShape = 7 + + +class Shape(object): + + coordsTable = ( + ((0, 0), (0, 0), (0, 0), (0, 0)), + ((0, -1), (0, 0), (-1, 0), (-1, 1)), + ((0, -1), (0, 0), (1, 0), (1, 1)), + ((0, -1), (0, 0), (0, 1), (0, 2)), + ((-1, 0), (0, 0), (1, 0), (0, 1)), + ((0, 0), (1, 0), (0, 1), (1, 1)), + ((-1, -1), (0, -1), (0, 0), (0, 1)), + ((1, -1), (0, -1), (0, 0), (0, 1)) + ) + + def __init__(self): + + self.coords = [[0,0] for i in range(4)] + self.pieceShape = Tetrominoes.NoShape + + self.setShape(Tetrominoes.NoShape) + + def shape(self): + + return self.pieceShape + + def setShape(self, shape): + + table = Shape.coordsTable[shape] + for i in range(4): + for j in range(2): + self.coords[i][j] = table[i][j] + + self.pieceShape = shape + + def setRandomShape(self): + + self.setShape(random.randint(1, 7)) + + def x(self, index): + + return self.coords[index][0] + + def y(self, index): + + return self.coords[index][1] + + def setX(self, index, x): + + self.coords[index][0] = x + + def setY(self, index, y): + + self.coords[index][1] = y + + def minX(self): + + m = self.coords[0][0] + for i in range(4): + m = min(m, self.coords[i][0]) + + return m + + def maxX(self): + + m = self.coords[0][0] + for i in range(4): + m = max(m, self.coords[i][0]) + + return m + + def minY(self): + + m = self.coords[0][1] + for i in range(4): + m = min(m, self.coords[i][1]) + + return m + + def maxY(self): + + m = self.coords[0][1] + + for i in range(4): + m = max(m, self.coords[i][1]) + + return m + + def rotatedLeft(self): + + if self.pieceShape == Tetrominoes.SquareShape: + return self + + result = Shape() + result.pieceShape = self.pieceShape + + for i in range(4): + result.setX(i, self.y(i)) + result.setY(i, -self.x(i)) + + return result + + def rotatedRight(self): + + if self.pieceShape == Tetrominoes.SquareShape: + return self + + result = Shape() + result.pieceShape = self.pieceShape + + for i in range(4): + result.setX(i, -self.y(i)) + result.setY(i, self.x(i)) + + return result + + +def main(): + + app = wx.App() + ex = Tetris(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +游戏简化了一点,以便更容易理解。它在应用程序启动后立即启动。我们可以通过按 p 键暂停游戏。空格键立即将下降的俄罗斯方块将到底部。d 键将方块片段往下走下一行(它可以用来加速下降)。游戏以恒定速度进行,没有实现加速。得分是我们消掉的行数。 + +```python +def __init__(self, *args, **kw): + + super(Board, self).__init__(*args, **kw) +``` + +Windows 用户注意事项:如果您不能使用箭头键,请将 `style = wx.WANTS_CHARS` 添加到 board 的构造函数中。 + +```python +... +self.curX = 0 +self.curY = 0 +self.numLinesRemoved = 0 +self.board = [] +... +``` + +在我们开始游戏循环之前,我们初始化一些重要变量。`self.board` 变量是一个从 0 到 7 的数字列表。它表示 board 上方块的各种形状和方块的残存形状。 + +```python +for i in range(Board.BoardHeight): + for j in range(Board.BoardWidth): + + shape = self.shapeAt(j, Board.BoardHeight - i - 1) + + if shape != Tetrominoes.NoShape: + self.drawSquare(dc, + 0 + j * self.squareWidth(), + boardTop + i * self.squareHeight(), shape) +``` + +游戏画分为两步。在第一步中,我们绘制所有形状,或者保留已经掉到板子 board 底部的残存形状。 所有的形状都记录在 `self.board` 列表变量中。 我们使用 `shapeAt()` 方法来访问它。 + +```python +if self.curPiece.shape() != Tetrominoes.NoShape: + + for i in range(4): + + x = self.curX + self.curPiece.x(i) + y = self.curY - self.curPiece.y(i) + + self.drawSquare(dc, 0 + x * self.squareWidth(), + boardTop + (Board.BoardHeight - y - 1) * self.squareHeight(), + self.curPiece.shape()) +``` + +下一步是绘制正在下将的实际方块片段。 + +```python +elif keycode == wx.WXK_LEFT: + self.tryMove(self.curPiece, self.curX - 1, self.curY) +``` + +在 `OnKeyDown()` 方法中,我们检查按下的键。 如果我们按下左箭头键,我们试着将方块片段移向左边。 我们说试着,是因为方块片段可能无法移动。 + +```python +def tryMove(self, newPiece, newX, newY): + + for i in range(4): + x = newX + newPiece.x(i) + y = newY - newPiece.y(i) + if x < 0 or x >= Board.BoardWidth or y < 0 or y >= Board.BoardHeight: + return False + if self.shapeAt(x, y) != Tetrominoes.NoShape: + return False + + self.curPiece = newPiece + self.curX = newX + self.curY = newY + self.Refresh() + + return True +``` + +在 `tryMove()` 方法中,我们尝试移动我们的形状。如果形状位于板子 board 的边缘或与其他方块片段相邻,则返回 False;否则我们将当前下降的棋子放到新的位置并返回 True。 + +```python +def OnTimer(self, event): + + if event.GetId() == Board.ID_TIMER: + if self.isWaitingAfterLine: + self.isWaitingAfterLine = False + self.newPiece() + else: + self.oneLineDown() + else: + event.Skip() +``` + +在 `OnTimer()` 方法中,我们要么在前一个被放到底部之后,创建一个新的方块片段,或者我们将一个下降的方块片段向下移动一行。 + +```python +def removeFullLines(self): + + numFullLines = 0 + + rowsToRemove = [] + + for i in range(Board.BoardHeight): + n = 0 + for j in range(Board.BoardWidth): + if not self.shapeAt(j, i) == Tetrominoes.NoShape: + n = n + 1 + + if n == 10: + rowsToRemove.append(i) + + rowsToRemove.reverse() + + for m in rowsToRemove: + for k in range(m, Board.BoardHeight): + for l in range(Board.BoardWidth): + self.setShapeAt(l, k, self.shapeAt(l, k + 1)) +... +``` + +如果方块片段碰到底部,我们调用 `removeFullLines()` 方法。 首先我们找出整行并删除它。 我们让当前行上方的所有行整体下移一行,来删除这一行。请注意,我们颠倒了要删除的行的顺序。否则,它将无法正确工作。在我们的情况下,我们使用 naive gravity。 也就是说这些方块片段可能会漂浮在空隙之上。 + +```python +def newPiece(self): + + self.curPiece = self.nextPiece + statusbar = self.GetParent().statusbar + self.nextPiece.setRandomShape() + self.curX = Board.BoardWidth / 2 + 1 + self.curY = Board.BoardHeight - 1 + self.curPiece.minY() + + if not self.tryMove(self.curPiece, self.curX, self.curY): + + self.curPiece.setShape(Tetrominoes.NoShape) + self.timer.Stop() + self.isStarted = False + statusbar.SetStatusText('Game over') +``` + + `newPiece()` 方法随机创建一个新的俄罗斯方块片段。 如果方块片段无法进入初始位置,游戏结束。 + +The `Shape` class saves information about the tetris piece. + +`Shape` 类保存有关俄罗斯方块的信息。 + +```python +self.coords = [[0,0] for i in range(4)] +``` + +创建形状后,我们创建一个空的坐标列表。 该列表将保存俄罗斯方块的坐标。 例如,元组 (0, -1)、(0, 0)、(-1, 0)、(-1, -1) 表示旋转的 S 形。 下图阐明了该形状。 + +![Coordinates](assets/coordinates.png) + +当我们画出当前正在下落的方块片段时,我们在 `self.curX` 和 `self.curY` 位置绘制它。然后我们查看坐标表并绘制所有四个方块。 + +![Tetris](assets/tetris.png) + +这是 wxPython 中的一个俄罗斯方块游戏。 \ No newline at end of file diff --git "a/2.\347\254\254\344\270\200\346\255\245.md" "b/2.\347\254\254\344\270\200\346\255\245.md" new file mode 100644 index 0000000..93549af --- /dev/null +++ "b/2.\347\254\254\344\270\200\346\255\245.md" @@ -0,0 +1,287 @@ +# First steps in wxPython + +## 简单的例子 + +我们从一个非常简单的例子开始。 我们的第一个脚本只会显示一个小窗口。 + +它不会做太多。 我们将逐行分析脚本。 + +**simple.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import wx + +app = wx.App() + +frame = wx.Frame(None, title='Simple application') +frame.Show() + +app.MainLoop() +``` + +讲解: + +```python +import wx +``` + +这一行导入基本的 wxPython 模块。 即 core、controls、gdi、misc 和 windows。 从技术上讲,`wx` 是一个命名空间。 基本模块中的所有功能和对象都将以 `wx.` 开头 `wx.`  字首。 + +下一行代码将创建一个应用程序对象。 + +```python +app = wx.App() +``` + +每个 wxPython 程序都必须有一个应用程序对象。 + +```python +frame = wx.Frame(None, title='Simple application') +frame.Show() +``` + +这里我们创建一个 `wx.Frame` 对象。 `wx.Frame` 组件是一个重要的容器组件。 我们将在稍后详细分析这个组件。 `wx.Frame` 组件是其他组件的父组件。 它本身没有父母 parent。 如果我们为父参数 parent parameter 指定 `None` ,则表明我们的组件没有父母。 它是组件层次结构中的顶级组件。在我们创建了 `wx.Frame` 组件之后,我们必须调用 `Show()` 方法将其显示在屏幕上。 + +```python +app.MainLoop() +``` + +最后一行进入主循环。主循环是一个无限循环。它捕获和分发我们应用程序生命周期中存在的所有事件。 + +这是一个非常简单的例子。尽管这个简单,我们可以用这个窗口做很多事情。 我们可以调整窗口大小,最大限度地缩小窗口大小。这个功能需要编写很多代码。 所有这些都是隐藏的,并由 wxPython 工具箱默认提供。没有理由重新发明轮子。 + +![Simple example](assets/simple.png) + +## wx.Frame + +wx.Frame 组件是 wxPython 中最重要的组件之一。它是一个容器组件。这意味着它可以包含其他组件。实际上它可以包含任何不是框架 frame 或对话框 dialog 的窗口。 `wx.Frame` 包含一个标题栏 title bar,边框 borders 和一个中央容器区域 central container area。标题栏和边框是可选的。他们可以通过各种标志 flags 去除。 + +`wx.Frame` 具有以下构造函数: + +展示形式:`类型 参数名=默认值` + +```python +wx.Frame(wx.Window parent, int id=-1, string title='', wx.Point pos=wx.DefaultPosition, + wx.Size size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, string name="frame") +``` + +构造函数有七个参数。第一个参数没有默认值。其他六个参数有。 + +### wx.DEFAULT_FRAME_STYLE + +`wx.DEFAULT_FRAME_STYLE` 是一组默认标志 flags: `wx.MINIMIZE_BOX` | `wx.MAXIMIZE_BOX` | `wx.RESIZE_BORDER` |`wx.SYSTEM_MENU` | `wx.CAPTION` | `wx.CLOSE_BOX` | `wx.CLIP_CHILDREN` 。通过组合各种样式,我们可以改变 `wx.Frame` 组件的样式。 + +#### 默认 + +具备所有风格属性 + +```python +import wx + +app = wx.App() +frame = wx.Frame(None) +frame.Show(True) + +app.MainLoop() +``` + +![1527417412183](assets/1527417412183.png) + +#### wx.MINIMIZE_BOX + +![1527417584346](assets/1527417584346.png) + +#### wx.RESIZE_BORDER + +可以伸缩 + +![1527417657992](assets/1527417657992.png) + +这些属性单独使用其实看不出效果,一般是组合使用 + +#### 组合 + +**no_minimize.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# no_minimize.py + +import wx + +app = wx.App() +frame = wx.Frame(None, style=wx.MAXIMIZE_BOX | wx.RESIZE_BORDER + | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX) +frame.Show(True) + +app.MainLoop() +``` + +我们的目的是显示一个没有最小化框的窗口。 所以我们没有在 style 参数中指定这个标志。 + +## 大小和位置 + +我们可以通过两种方式指定应用程序的大小:在构造函数中使用 size 参数,或者我们可以调用 `SetSize()` 方法。 + +**set_size.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# set_size.py + +import wx + + +class Example(wx.Frame): + def __init__(self, parent, title): + super(Example, self).__init__(parent, title=title, + size=(350, 250)) + + +def main(): + app = wx.App() + ex = Example(None, title='Sizing') + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在这个例子中,应用程序的大小为 250 x 200 像素。 + +```python +def __init__(self, parent, title): + super(Example, self).__init__(parent, title=title, + size=(350, 250)) +``` + +在构造函数中,我们将 `wx.Frame` 组件的宽度设置为 350 像素。 组件的高度为 250 像素。 + +同样,我们可以将我们的应用程序放置在屏幕上。默认情况下,窗口放置在屏幕的左上角。但是在不同的操作系统平台甚至窗口管理器上它可能不同。一些窗口管理器自己放置应用程序窗。它们中的一些还做了一些优化,让窗口不重叠。程序员可以通过编程来定位窗口。我们已经在我们的 `wx.Frame` 组件的构造函数中看到了一个 `pos` 参数。通过提供非默认值,我们可以自己控制位置。 + +| 方法 | 描述 | +| ----------------------------------------------- | ------------------------ | +| `Move(wx.Point point)` | 移动一个窗口到指定的位置 | +| `MoveXY(int x, int y)` | 移动一个窗口到指定的位置 | +| `SetPosition(wx.Point point)` | 设置窗口的位置 | +| `SetDimensions(x, y, width, height, sizeFlags)` | 设置窗口的位置和大小 | + +有几种方法可以做到这一点。 + +**moving.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# moving.py + +import wx + + +class Example(wx.Frame): + + def __init__(self, parent, title): + super(Example, self).__init__(parent, title=title, + size=(300, 200)) + + self.Move((800, 250)) + + +def main(): + + app = wx.App() + ex = Example(None, title='Moving') + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +有一种特殊情况,我们可能希望我们的窗口最大化显示。在这种情况下,窗口位于 (0, 0) 并占据整个屏幕。wxPython 内部计算屏幕坐标。为了最大化我们的 `wx.Frame`,我们调用 `Maximize()` 方法。 + +## Centering on the screen + +如果我们想要将我们的应用程序居中在屏幕上,wxPython 有一个方便的方法。Centre()` 方法将窗口置于屏幕中央。无需计算屏幕的宽度和高度。只需调用该方法即可。 + +**centering.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# centering.py + +import wx + + +class Example(wx.Frame): + + def __init__(self, parent, title): + super(Example, self).__init__(parent, title=title, + size=(300, 200)) + + self.Centre() + + +def main(): + + app = wx.App() + ex = Example(None, title='Centering') + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在这个例子中,我们在屏幕上居中放置一个小窗口。 + +```python +self.Centre() +``` + +`Centre()` 方法将窗口在屏幕上居中。 + +在本章中,我们在 wxPython 中创建了一些简单的代码示例。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/3.\350\217\234\345\215\225\345\222\214\345\267\245\345\205\267\346\240\217.md" "b/3.\350\217\234\345\215\225\345\222\214\345\267\245\345\205\267\346\240\217.md" new file mode 100644 index 0000000..568f062 --- /dev/null +++ "b/3.\350\217\234\345\215\225\345\222\214\345\267\245\345\205\267\346\240\217.md" @@ -0,0 +1,809 @@ +# Menus and toolbars + +GUI 应用程序中的一个常见部分是菜单栏。菜单栏由称为 menus 的对象组成。顶层菜单在菜单栏上有自己的标签 labels。菜单有菜单项 menu items。菜单项是在应用程序内部执行特定操作的命令。菜单也可以有子菜单 submenus,它们有自己的菜单项。在 wxPython 中有三个类用于创建菜单栏 menubars:`wx.MenuBar`,`wx.Menu` 和 `wx.MenuItem`。 + +## 简单的菜单 + +在我们的第一个例子中,我们将创建一个菜单文件。菜单将只有一个菜单项。 通过选择菜单项目让应用程序退出。 + +**simple_menu.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This example shows a simple menu. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kwargs): + super(Example, self).__init__(*args, **kwargs) + + self.InitUI() + + def InitUI(self): + + menubar = wx.MenuBar() + fileMenu = wx.Menu() + fileItem = fileMenu.Append(wx.ID_EXIT, 'Quit', 'Quit application') + menubar.Append(fileMenu, '&File') + self.SetMenuBar(menubar) + + self.Bind(wx.EVT_MENU, self.OnQuit, fileItem) + + self.SetSize((300, 200)) + self.SetTitle('Simple menu') + self.Centre() + + def OnQuit(self, e): + self.Close() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +这是一个最小菜单栏功能的小例子。 + +```python +menubar = wx.MenuBar() +``` + +首先我们创建一个菜单栏对象。 + +```python +fileMenu = wx.Menu() +``` + +接下来我们创建一个菜单对象。 + +```python +fileItem = fileMenu.Append(wx.ID_EXIT, 'Quit', 'Quit application') +``` + +我们将菜单项追加到菜单对象中。 第一个参数是菜单项的 ID。 标准 id 会自动添加图标和快捷键,在我们的例子,是 Ctrl + Q(然而译者我用的 Windows 并没有生成图标和快捷键)。 第二个参数是菜单项的名称。 最后一个参数定义了选择菜单项时的简短帮助。 这里我们没有明确地创建一个 `wx.MenuItem` 。 它由幕后的 `Append()` 方法创建。 该方法返回创建的菜单项 menu item。 该引用在稍后将用于绑定事件。 + +```python +self.Bind(wx.EVT_MENU, self.OnQuit, fileItem) +``` + +我们将菜单项的 `wx.EVT_MENU` (菜单退出事件绑定器)绑定到自定义的 `OnQuit()` 方法。 该方法将关闭应用程序。 + +```python +menubar.Append(fileMenu, '&File') +self.SetMenuBar(menubar) +``` + +之后,我们将菜单添加到菜单栏中。& 符号创建一个加速键,& 后面的字符加下划线(Windows 无效,Ubuntu 上也没看到效果,鸡肋,可以去掉)。这样菜单可以通过 Alt + F 快捷键访问。 最后,我们调用 `SetMenuBar()` 方法。此方法属于 `wx.Frame` 组件。 它设置菜单栏。 + +![A simple menu example](assets/simplemenu.png) + +## 图标和快捷键 + +下一个例子与前一个例子基本相同。 这一次,我们手动创建一个 `wx.MenuItem` 。 + +**icons_shortcuts.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example, we manually create +a menu item. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + +APP_EXIT = 1 + + +class Example(wx.Frame): + + def __init__(self, *args, **kwargs): + super(Example, self).__init__(*args, **kwargs) + + self.InitUI() + + def InitUI(self): + + menubar = wx.MenuBar() + fileMenu = wx.Menu() + qmi = wx.MenuItem(fileMenu, APP_EXIT, '&Quit\tCtrl+Q') + qmi.SetBitmap(wx.Bitmap('exit.png')) + fileMenu.Append(qmi) + + self.Bind(wx.EVT_MENU, self.OnQuit, id=APP_EXIT) + + menubar.Append(fileMenu, '&File') + self.SetMenuBar(menubar) + + self.SetSize((350, 250)) + self.SetTitle('Icons and shortcuts') + self.Centre() + + def OnQuit(self, e): + self.Close() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在这个例子中,我们创建了一个退出菜单项。 我们选择一个自定义图标和菜单项的快捷键。 + +```python +qmi = wx.MenuItem(fileMenu, APP_EXIT, '&Quit\tCtrl+Q') +qmi.SetBitmap(wx.Bitmap('exit.png')) +fileMenu.Append(qmi) +``` + +我们创建一个 `wx.MenuItem` 对象。 & 符号指定一个加速键。 & 符号后面的字符加下划线(没啥用,去掉也不影响后面的快捷键)。实际的快捷键由字符组合定义。我们指定了 Ctrl + Q。 所以如果我们按 Ctrl + Q ,应用程序会关闭。我们在 & 符号和快捷方式之间放置了一个 tab 符。这样,我们设法在它们之间留出一些空间。要为菜单项提供图标,我们调用 `SetBitmap()` 方法,手动创建的菜单项通过调用 `AppendItem()` 方法附加到菜单。 + +```python +self.Bind(wx.EVT_MENU, self.OnQuit, id=APP_EXIT) +``` + +当我们选择菜单项时,`OnQuit()` 方法被调用。 + +![Icons and shortcuts](assets/iconsshortcuts.png) + +## 子菜单和分隔符 + +每个菜单也可以有一个子菜单,这样我们可以将类似的命令放入组中。例如,它可以隐藏/显示各种工具栏(如个人栏,地址栏,状态栏或导航栏)到称为工具栏 toolbars 的子菜单 submenu 的命令。在菜单中,我们可以用分隔符分隔命令。这是一条简单的线路。通常的做法是使用单个分隔符来分隔诸如新建、打开、保存命令和打印、打印预览等命令。在我们的例子中,我们将看到,我们如何创建子菜单和菜单分隔符。 + +**submenu.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example, we create a submenu and a menu +separator. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kwargs): + super(Example, self).__init__(*args, **kwargs) + + self.InitUI() + + def InitUI(self): + + menubar = wx.MenuBar() + + fileMenu = wx.Menu() + fileMenu.Append(wx.ID_NEW, '&New') + fileMenu.Append(wx.ID_OPEN, '&Open') + fileMenu.Append(wx.ID_SAVE, '&Save') + fileMenu.AppendSeparator() + + imp = wx.Menu() + imp.Append(wx.ID_ANY, 'Import newsfeed list...') + imp.Append(wx.ID_ANY, 'Import bookmarks...') + imp.Append(wx.ID_ANY, 'Import mail...') + + fileMenu.Append(wx.ID_ANY, 'I&mport', imp) + + qmi = wx.MenuItem(fileMenu, wx.ID_EXIT, '&Quit\tCtrl+W') + fileMenu.Append(qmi) + + self.Bind(wx.EVT_MENU, self.OnQuit, qmi) + + menubar.Append(fileMenu, '&File') + self.SetMenuBar(menubar) + + self.SetSize((350, 250)) + self.SetTitle('Submenu') + self.Centre() + + def OnQuit(self, e): + self.Close() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在上面的例子中,我们创建了新建,打开和保存标准菜单项。 具有水平分隔符的子菜单。 子菜单还有三个菜单项。 + +```python +fileMenu.Append(wx.ID_NEW, '&New') +fileMenu.Append(wx.ID_OPEN, '&Open') +fileMenu.Append(wx.ID_SAVE, '&Save') +``` + +这里我们有三个常用菜单项:New、Open、Save。 + +```python +fileMenu.AppendSeparator() +``` + +菜单分隔符 `AppendSeparator()` 方法添加。 + +```python +imp = wx.Menu() +imp.Append(wx.ID_ANY, 'Import newsfeed list...') +imp.Append(wx.ID_ANY, 'Import bookmarks...') +imp.Append(wx.ID_ANY, 'Import mail...') + +fileMenu.Append(wx.ID_ANY, 'I&mport', imp) +``` + +一个子菜单也是一个 `wx.Menu` 。菜单上附有三个菜单项。子菜单通过 `Append()` 方法附加到 File 菜单。 + +![A submenu example](assets/submenu.png) + +## 勾选菜单项 Check menu item + +有下面几种菜单项 + +- normal item +- check item +- radio item + +在下面的例子中,我们将演示检查菜单项。 检查菜单项在菜单中由勾号可视地表示。 + +**checkmenu_item.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This example creates a checked +menu item. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kwargs): + super(Example, self).__init__(*args, **kwargs) + + self.InitUI() + + def InitUI(self): + + menubar = wx.MenuBar() + viewMenu = wx.Menu() + + self.shst = viewMenu.Append(wx.ID_ANY, 'Show statusbar', + 'Show Statusbar', kind=wx.ITEM_CHECK) + self.shtl = viewMenu.Append(wx.ID_ANY, 'Show toolbar', + 'Show Toolbar', kind=wx.ITEM_CHECK) + + viewMenu.Check(self.shst.GetId(), True) + viewMenu.Check(self.shtl.GetId(), True) + + self.Bind(wx.EVT_MENU, self.ToggleStatusBar, self.shst) + self.Bind(wx.EVT_MENU, self.ToggleToolBar, self.shtl) + + menubar.Append(viewMenu, '&View') + self.SetMenuBar(menubar) + + self.toolbar = self.CreateToolBar() + self.toolbar.AddTool(1, '', wx.Bitmap('exit.png')) + self.toolbar.Realize() + + self.statusbar = self.CreateStatusBar() + self.statusbar.SetStatusText('Ready') + + self.SetSize((450, 350)) + self.SetTitle('Check menu item') + self.Centre() + + + def ToggleStatusBar(self, e): + + if self.shst.IsChecked(): + self.statusbar.Show() + else: + self.statusbar.Hide() + + def ToggleToolBar(self, e): + + if self.shtl.IsChecked(): + self.toolbar.Show() + else: + self.toolbar.Hide() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +我们有一个 viewMenu,上面有两个勾选的菜单项。两个菜单项将会显示或隐藏状态栏和工具栏。 + +```python +self.shst = viewMenu.Append(wx.ID_ANY, 'Show statusbar', + 'Show Statusbar', kind=wx.ITEM_CHECK) +self.shtl = viewMenu.Append(wx.ID_ANY, 'Show toolbar', + 'Show Toolbar', kind=wx.ITEM_CHECK) +``` + +如果我们想添加一个勾选菜单项,我们为 `wx.ITEM_CHECK` 设置一个 `kind` 参数。默认参数是 `wx.ITEM_NORMAL`。 `Append()` 方法返回一个 `wx.MenuItem` 。 + +```python +viewMenu.Check(self.shst.GetId(), True) +viewMenu.Check(self.shtl.GetId(), True) +``` + +当程序启动,状态栏和工具栏都可见。 所以我们用 `Check()` 方法检查两个项目。 + +```python +def ToggleStatusBar(self, e): + + if self.shst.IsChecked(): + self.statusbar.Show() + else: + self.statusbar.Hide() +``` + +We show or hide the statusbar according to the state of the check menu item. We find out the state of the check menu item with the `IsChecked()` method. Same with toolbar. + +我们根据勾选菜单项的状态显示或隐藏状态栏。 通过 `IsChecked()` 方法找到的菜单项的状态。工具栏同理。 + +![Check menu item](assets/checkmenuitem.png) + +## 上下文菜单 Context menu + +上下文菜单是在某种上下文条件下出现的命令列表。 例如,在 Firefox 网页浏览器中,当我们右击一个网页时,我们会得到一个上下文菜单。在上下文菜单处,我们可以重新加载页面,返回或查看页面源代码。如果我们点击一个工具栏,我们会得到另一个用于管理工具栏的上下文菜单。上下文菜单有时称为弹出式菜单。 + +**context_menu.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example, we create a context menu. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + +class MyPopupMenu(wx.Menu): + + def __init__(self, parent): + super(MyPopupMenu, self).__init__() + + self.parent = parent + + mmi = wx.MenuItem(self, wx.NewId(), 'Minimize') + self.Append(mmi) + self.Bind(wx.EVT_MENU, self.OnMinimize, mmi) + + cmi = wx.MenuItem(self, wx.NewId(), 'Close') + self.Append(cmi) + self.Bind(wx.EVT_MENU, self.OnClose, cmi) + + + def OnMinimize(self, e): + self.parent.Iconize() + + def OnClose(self, e): + self.parent.Close() + + +class Example(wx.Frame): + + def __init__(self, *args, **kwargs): + super(Example, self).__init__(*args, **kwargs) + + self.InitUI() + + def InitUI(self): + + self.Bind(wx.EVT_RIGHT_DOWN, self.OnRightDown) + + self.SetSize((350, 250)) + self.SetTitle('Context menu') + self.Centre() + + def OnRightDown(self, e): + self.PopupMenu(MyPopupMenu(self), e.GetPosition()) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在这个例子中,我们为主窗口创建了一个上下文菜单。它有两个项目。 一个将最小化应用程序,另一个将终止它。 + +```python +class MyPopupMenu(wx.Menu): + + def __init__(self, parent): + super(MyPopupMenu, self).__init__() +``` + +我们创建一个单独的 `wx.Menu` 类。 + +```python +mmi = wx.MenuItem(self, wx.NewId(), 'Minimize') +self.Append(mmi) +self.Bind(wx.EVT_MENU, self.OnMinimize, mmi) +``` + +一个菜单项被创建并附加到上下文菜单。一个事件处理程序 event handler 绑定到此菜单项。 + +```python +self.Bind(wx.EVT_RIGHT_DOWN, self.OnRightDown) +``` + +如果我们右键点击框架 frame,我们调用 `OnRightDown()` 方法。 为此,我们使用 `wx.EVT_RIGHT_DOWN` 事件绑定程序 event binder。 + +```python +def OnRightDown(self, e): + self.PopupMenu(MyPopupMenu(self), e.GetPosition()) +``` + +在 `OnRightDown()` 方法中,我们调用 `PopupMenu()` 方法,该方法显示上下文菜单。 第一个参数是要显示的菜单,第二个参数是上下文菜单出现的位置。上下文菜单出现在鼠标光标的位置。 为了获得实际的鼠标位置,我们调用提供的事件对象的 `GetPosition()` 方法。 + +![Context menu](assets/contextmenu.png) + +## 工具栏 Toolbars + +菜单将我们可以在应用程序中使用的所有命令分组。工具栏提供了对最常用命令的快速访问。 + +要创建一个工具栏,我们调用框架组件 frame widget 的 `CreateToolBar()` 方法。 + +**toolbar.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This example creates a simple toolbar. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kwargs): + super(Example, self).__init__(*args, **kwargs) + + self.InitUI() + + def InitUI(self): + + toolbar = self.CreateToolBar() + qtool = toolbar.AddTool(wx.ID_ANY, 'Quit', wx.Bitmap('exit.png')) + toolbar.Realize() + + self.Bind(wx.EVT_TOOL, self.OnQuit, qtool) + + self.SetSize((350, 250)) + self.SetTitle('Simple toolbar') + self.Centre() + + def OnQuit(self, e): + self.Close() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在我们的例子中,我们有一个带有一个工具的工具栏。 当我们点击它时,该工具将关闭应用程序。 + +```python +toolbar = self.CreateToolBar() +``` + +我们创建一个工具栏。 默认情况下,工具栏是水平的,没有边框和显示。 + +```python +qtool = toolbar.AddTool(wx.ID_ANY, 'Quit', wx.Bitmap('texit.png')) +``` + +要创建一个工具栏工具,我们调用 `AddTool()` 方法。第二个参数是工具的标签,第三个参数是工具的图像。请注意,标签 label 不可见,因为默认样式仅显示图标。 + +```python +toolbar.Realize() +``` + +将我们的项目放到工具栏后,我们调用 `Realize()` 方法。 在 Linux 上调用此方法不是强制性的。 在 windows 上是必须的(不然不会添加工具)。 + +```python +self.Bind(wx.EVT_TOOL, self.OnQuit, qtool) +``` + +要处理工具栏的事件,我们使用 `wx.EVT_TOOL` 事件绑定器。 + +![Simple toolbar](assets/simpletoolbar.png) + +如果我们想创建多个工具栏,我们必须以不同的方式处理。 + +**toolbars.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +''' +ZetCode wxPython tutorial + +In this example, we create two horizontal +toolbars. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +''' + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kwargs): + super(Example, self).__init__(*args, **kwargs) + + self.InitUI() + + def InitUI(self): + + vbox = wx.BoxSizer(wx.VERTICAL) + + toolbar1 = wx.ToolBar(self) + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('tnew.png')) + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('topen.png')) + toolbar1.AddTool(wx.ID_ANY, '', wx.Bitmap('tsave.png')) + toolbar1.Realize() + + toolbar2 = wx.ToolBar(self) + qtool = toolbar2.AddTool(wx.ID_EXIT, '', wx.Bitmap('texit.png')) + toolbar2.Realize() + + vbox.Add(toolbar1, 0, wx.EXPAND) + vbox.Add(toolbar2, 0, wx.EXPAND) + + self.Bind(wx.EVT_TOOL, self.OnQuit, qtool) + + self.SetSizer(vbox) + + self.SetSize((350, 250)) + self.SetTitle('Toolbars') + self.Centre() + + def OnQuit(self, e): + self.Close() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在上面的例子中,我们创建了两个水平工具栏。 + +```python +toolbar1 = wx.ToolBar(self) +... +toolbar2 = wx.ToolBar(self) +``` + +我们创建了两个工具栏对象,并把它们放入一个垂直的盒子里。 + +![Toolbars](assets/toolbars.png) + +## 启用和禁用 Enable & disable + +下面的例子中,我们展示了如何启用和禁用工具栏按钮。 我们还添加到分隔线。 + +**undo_redo.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example, we create two horizontal +toolbars. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, *args, **kwargs): + super(Example, self).__init__(*args, **kwargs) + + self.InitUI() + + def InitUI(self): + + self.count = 5 + + self.toolbar = self.CreateToolBar() + tundo = self.toolbar.AddTool(wx.ID_UNDO, '', wx.Bitmap('tundo.png')) + tredo = self.toolbar.AddTool(wx.ID_REDO, '', wx.Bitmap('tredo.png')) + self.toolbar.EnableTool(wx.ID_REDO, False) + self.toolbar.AddSeparator() + texit = self.toolbar.AddTool(wx.ID_EXIT, '', wx.Bitmap('texit.png')) + self.toolbar.Realize() + + self.Bind(wx.EVT_TOOL, self.OnQuit, texit) + self.Bind(wx.EVT_TOOL, self.OnUndo, tundo) + self.Bind(wx.EVT_TOOL, self.OnRedo, tredo) + + self.SetSize((350, 250)) + self.SetTitle('Undo redo') + self.Centre() + + def OnUndo(self, e): + if self.count > 1 and self.count <= 5: + self.count = self.count - 1 + + if self.count == 1: + self.toolbar.EnableTool(wx.ID_UNDO, False) + + if self.count == 4: + self.toolbar.EnableTool(wx.ID_REDO, True) + + def OnRedo(self, e): + if self.count < 5 and self.count >= 1: + self.count = self.count + 1 + + if self.count == 5: + self.toolbar.EnableTool(wx.ID_REDO, False) + + if self.count == 2: + self.toolbar.EnableTool(wx.ID_UNDO, True) + + + def OnQuit(self, e): + self.Close() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在我们的例子中,我们有三个工具栏按钮。一个按钮用于退出应用程序。 另外两个用于撤消和重做按钮。它们模拟应用程序中的 撤销/重做 功能。(有关实际示例,请参阅提示和技巧)我们有 4 次变化。 撤销/重做 按钮相应地进行启用和禁用。 + +```python +self.toolbar.EnableTool(wx.ID_REDO, False) +self.toolbar.AddSeparator() +``` + +在开始时,重做按钮被禁用。我们通过调用 `EnableTool()` 方法来实现。我们可以在工具栏中创建一些逻辑组。 我们可以用分隔符分开各种按钮组。 为此,我们调用 `AddSeparator()` 方法。 + +```python +def OnUndo(self, e): + if self.count > 1 and self.count <= 5: + self.count = self.count - 1 + + if self.count == 1: + self.toolbar.EnableTool(wx.ID_UNDO, False) + + if self.count == 4: + self.toolbar.EnableTool(wx.ID_REDO, True) +``` + +我们模拟撤销和重做功能,有四次变化。 如果没有任何可撤消的内容,撤消按钮被禁用。 撤消第一次更改后,我们启用重做按钮。同样的逻辑适用于 `OnRedo()` 方法。 + +![Undo redo](assets/undoredo.png) + +在 wxPython 教程的这一部分,我们使用了菜单和工具栏。 \ No newline at end of file diff --git "a/4.\345\270\203\345\261\200.md" "b/4.\345\270\203\345\261\200.md" new file mode 100644 index 0000000..332dd2e --- /dev/null +++ "b/4.\345\270\203\345\261\200.md" @@ -0,0 +1,821 @@ +# Layout management in wxPython + +一个典型的应用程序由各种组件组成。这些组件放置在容器组件中。 程序员必须管理应用程序的布局。这不是一件容易的事。 在 wxPython 中,可以使用绝对定位或使用 sizers 来布局组件。 + +## 绝对定位 + +绝对定位:程序员以像素为单位指定组件的位置和大小。 绝对定位有几个缺点: + +- 如果我们调整窗口的大小,组件的大小和位置不会随之改变。 +- 应用在各种平台上看起来不同。 +- 更改应用程序中的字体可能会破坏布局。 +- 如果我们决定改变布局,我们必须完全重做我们的布局,这是乏味和耗时的。 + +我们可能会出现要使用绝对定位的情况。 例如,小的测试例子中。 但大多数情况下,在真实世界的程序中,程序员使用 sizers。 + +在我们的例子中,我们有一个简单的文本编辑框架。 如果我们调整窗口大小,`wx.TextCtrl` 的大小不会像我们预期的那样改变。 + +**absolute.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example, we lay out widgets using +absolute positioning. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, parent, title): + super(Example, self).__init__(parent, title=title, + size=(350, 300)) + + self.InitUI() + self.Centre() + + def InitUI(self): + + self.panel = wx.Panel(self) + + self.panel.SetBackgroundColour("gray") + + self.LoadImages() + + self.mincol.SetPosition((20, 20)) + self.bardejov.SetPosition((40, 160)) + self.rotunda.SetPosition((170, 50)) + + + def LoadImages(self): + + self.mincol = wx.StaticBitmap(self.panel, wx.ID_ANY, + wx.Bitmap("mincol.jpg", wx.BITMAP_TYPE_ANY)) + + self.bardejov = wx.StaticBitmap(self.panel, wx.ID_ANY, + wx.Bitmap("bardejov.jpg", wx.BITMAP_TYPE_ANY)) + + self.rotunda = wx.StaticBitmap(self.panel, wx.ID_ANY, + wx.Bitmap("rotunda.jpg", wx.BITMAP_TYPE_ANY)) + + +def main(): + + app = wx.App() + ex = Example(None, title='Absolute positioning') + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在上面的例子中,我们使用绝对坐标定位三个图像。 + +``` +self.mincol.SetPosition((20, 20)) +``` + +使用 `SetPosition()` 方法,我们将图像放置在 x = 20,y = 20 坐标处。 + +![absolute positioning 1](assets/absolute.png) + +## 使用 sizer + +Sizer 确实解决了我们提到的绝对定位问题。 wxPython 有以下 sizer: + +- wx.BoxSizer +- wx.StaticBoxSizer +- wx.GridSizer +- wx.FlexGridSizer +- wx.GridBagSizer + +## wx.BoxSizer + +`wx.BoxSizer` 使我们能够将多个组件放入行或列中。 我们可以将另一个 sizer 放入现有的 sizer 中。 这样我们可以创建非常复杂的布局。 + +```python + box = wx.BoxSizer(integer orient) # orient:v. 确定自己的方向 + box.Add(wx.Window window, integer proportion=0, integer flag = 0, integer border = 0) +``` + +orient:方向可以是 `wx.HORIZONTAL` 或 `wx.HORIZONTAL`。 通过 `Add()` 方法将组件添加到 `wx.BoxSizer` 中。 为了理解它,我们需要看看它的参数。 + +proportion:比例参数定义组件在定义的方向上更改的比率。 假设我们有三个比例为 0, 1 和 2 的按钮,它们被添加到一个水平的 `wx.BoxSizer`。比例为 0 的按钮根本不会改变。比例为 2 的按钮在水平方向的变化是比例为 1 的 2 倍。 + +flag:使用 flag 参数,您可以进一步配置 `wx.BoxSizer` 中的组件的行为。 + +border:我们可以控制组件之间的外边距 border,以像素为单位在组件之间添加一些空间。 + +为了用到 border,我们需要定义 border 的边界 sides。我们可以将它们与 `|` 操作符相结合;例如 `wx.LEFT | wx.BOTTOM`。 我们可以在这些标志 flag 之间选择: + +- wx.LEFT +- wx.RIGHT +- wx.BOTTOM +- wx.TOP +- wx.ALL + +使用 `setSizer()` 方法将 sizer 设置为面板 panel。 + +**border.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example we place a panel inside +another panel. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, parent, title): + super(Example, self).__init__(parent, title=title) + + self.InitUI() + self.Centre() + + def InitUI(self): + + panel = wx.Panel(self) + + panel.SetBackgroundColour('#4f5049') + vbox = wx.BoxSizer(wx.VERTICAL) + + midPan = wx.Panel(panel) + midPan.SetBackgroundColour('#ededed') + + vbox.Add(midPan, wx.ID_ANY, wx.EXPAND | wx.ALL, 20) + panel.SetSizer(vbox) + + +def main(): + + app = wx.App() + ex = Example(None, title='Border') + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在上面的例子中,我们在面板 panel 周围放置了一些空间。 + +```python +vbox.Add(midPan, wx.ID_ANY, wx.EXPAND | wx.ALL, 20) +``` + +`wx.ID_ANY`:代指任意 id。即不管是安装 installing 事件处理器 event handler,还是创建一个新的窗口,我们都不关心 id 的值。 + +在 `border.py` 我们在 `midPan` 面板上放置了 20px 的 border。 `wx.ALL` 将边框大小应用于所有四条边 sides。 + +如果我们使用 `wx.EXPAND` 标志 flag,我们的组件将使用分配给它的所有空间。最后,我们还可以定义我们的组件的对齐方式。我们用下列标志来做: + +- wx.ALIGN_LEFT +- wx.ALIGN_RIGHT +- wx.ALIGN_TOP +- wx.ALIGN_BOTTOM +- wx.ALIGN_CENTER_VERTICAL +- wx.ALIGN_CENTER_HORIZONTAL +- wx.ALIGN_CENTER + +![Border around a panel](assets/border.png) + +## GoToClass example + +在下面的例子中,我们介绍几个重要的想法。 + +**goto_class.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + + +""" +ZetCode wxPython tutorial + +In this example we create a Go To class +layout with wx.BoxSizer. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, parent, title): + super(Example, self).__init__(parent, title=title) + + self.InitUI() + self.Centre() + + def InitUI(self): + + panel = wx.Panel(self) + + font = wx.SystemSettings.GetFont(wx.SYS_SYSTEM_FONT) + + font.SetPointSize(9) + + vbox = wx.BoxSizer(wx.VERTICAL) + + hbox1 = wx.BoxSizer(wx.HORIZONTAL) + st1 = wx.StaticText(panel, label='Class Name') + st1.SetFont(font) + hbox1.Add(st1, flag=wx.RIGHT, border=8) + tc = wx.TextCtrl(panel) + hbox1.Add(tc, proportion=1) + vbox.Add(hbox1, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10) + + vbox.Add((-1, 10)) + + hbox2 = wx.BoxSizer(wx.HORIZONTAL) + st2 = wx.StaticText(panel, label='Matching Classes') + st2.SetFont(font) + hbox2.Add(st2) + vbox.Add(hbox2, flag=wx.LEFT | wx.TOP, border=10) + + vbox.Add((-1, 10)) + + hbox3 = wx.BoxSizer(wx.HORIZONTAL) + tc2 = wx.TextCtrl(panel, style=wx.TE_MULTILINE) + hbox3.Add(tc2, proportion=1, flag=wx.EXPAND) + vbox.Add(hbox3, proportion=1, flag=wx.LEFT|wx.RIGHT|wx.EXPAND, + border=10) + + vbox.Add((-1, 25)) + + hbox4 = wx.BoxSizer(wx.HORIZONTAL) + cb1 = wx.CheckBox(panel, label='Case Sensitive') + cb1.SetFont(font) + hbox4.Add(cb1) + cb2 = wx.CheckBox(panel, label='Nested Classes') + cb2.SetFont(font) + hbox4.Add(cb2, flag=wx.LEFT, border=10) + cb3 = wx.CheckBox(panel, label='Non-Project classes') + cb3.SetFont(font) + hbox4.Add(cb3, flag=wx.LEFT, border=10) + vbox.Add(hbox4, flag=wx.LEFT, border=10) + + vbox.Add((-1, 25)) + + hbox5 = wx.BoxSizer(wx.HORIZONTAL) + btn1 = wx.Button(panel, label='Ok', size=(70, 30)) + hbox5.Add(btn1) + btn2 = wx.Button(panel, label='Close', size=(70, 30)) + hbox5.Add(btn2, flag=wx.LEFT|wx.BOTTOM, border=5) + vbox.Add(hbox5, flag=wx.ALIGN_RIGHT|wx.RIGHT, border=10) + + panel.SetSizer(vbox) + + +def main(): + + app = wx.App() + ex = Example(None, title='Go To Class') + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +布局很明了,我们创建一个 垂直 sizer,再把五个水平 sizers 放进去。 + +```python +font = wx.SystemSettings.GetFont(wx.SYS_SYSTEM_FONT) + +font.SetPointSize(9) +``` + +我们将字体大小更改为 9 像素。 + +```python +vbox.Add(hbox3, proportion=1, flag=wx.LEFT|wx.RIGHT|wx.EXPAND, + border=10) + +vbox.Add((-1, 25)) +``` + +我们已经知道我们可以控制结合了 flag 参数和 border 参数的 widgets 之间的距离。但是有一个真正的约束。 在 `Add()` 方法中,我们只能为所有给定的边 sides 指定一个边框。 例子中,我们给右边和左边 10 个像素。我们不能给 25 px 的底部。我们可以做的是给底部 10 像素,或者 0 像素,即省略 `wx.BOTTOM`。 所以如果我们需要不同的值,我们可以添加一些额外的空间。 使用 `Add()` 方法,我们也可以插入组件和空间。 + +```python +vbox.Add(hbox5, flag=wx.ALIGN_RIGHT|wx.RIGHT, border=10) +``` + +我们将两个按钮放在窗口的右侧。要实现这需要做三件事:proportion、align flag 和 `wx.EXPAND` flag。 比例 proportion 必须为 0。当我们调整窗口大小时,我们不应该改变它们的大小。我们不能指定 `wx.EXPAND` 标志。这些按钮仅覆盖已经分配给它们的区域。最后,我们必须指定 `wx.ALIGN_RIGHT` 标志。水平 sizer 从窗口左侧扩展到右侧。所以如果我们指定了 `wx.ALIGN_RIGHT` 标志,那么这些按钮就会放在右侧。 + +![GoToClass window](assets/gotoclass.png) + +## wx.GridSizer + +`wx.GridSizer` 在二维表格中展示组件。 表格中的每个单元具有相同的大小。 + +```python +wx.GridSizer(int rows=1, int cols=0, int vgap=0, int hgap=0) +``` + +在构造函数中,我们指定表中的行数和列数,纵向和横向的单元格之间的间隔(单位是像素)。 + +在我们的例子中,我们创建了一个计算器的骨架。 + +**calculator.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + + +""" +ZetCode wxPython tutorial + +In this example we create a layout +of a calculator with wx.GridSizer. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, parent, title): + super(Example, self).__init__(parent, title=title) + + self.InitUI() + self.Centre() + + + def InitUI(self): + + menubar = wx.MenuBar() + fileMenu = wx.Menu() + menubar.Append(fileMenu, '&File') + self.SetMenuBar(menubar) + + vbox = wx.BoxSizer(wx.VERTICAL) + self.display = wx.TextCtrl(self, style=wx.TE_RIGHT) + vbox.Add(self.display, flag=wx.EXPAND|wx.TOP|wx.BOTTOM, border=4) + gs = wx.GridSizer(5, 4, 5, 5) + + gs.AddMany( [(wx.Button(self, label='Cls'), 0, wx.EXPAND), + (wx.Button(self, label='Bck'), 0, wx.EXPAND), + (wx.StaticText(self), wx.EXPAND), + (wx.Button(self, label='Close'), 0, wx.EXPAND), + (wx.Button(self, label='7'), 0, wx.EXPAND), + (wx.Button(self, label='8'), 0, wx.EXPAND), + (wx.Button(self, label='9'), 0, wx.EXPAND), + (wx.Button(self, label='/'), 0, wx.EXPAND), + (wx.Button(self, label='4'), 0, wx.EXPAND), + (wx.Button(self, label='5'), 0, wx.EXPAND), + (wx.Button(self, label='6'), 0, wx.EXPAND), + (wx.Button(self, label='*'), 0, wx.EXPAND), + (wx.Button(self, label='1'), 0, wx.EXPAND), + (wx.Button(self, label='2'), 0, wx.EXPAND), + (wx.Button(self, label='3'), 0, wx.EXPAND), + (wx.Button(self, label='-'), 0, wx.EXPAND), + (wx.Button(self, label='0'), 0, wx.EXPAND), + (wx.Button(self, label='.'), 0, wx.EXPAND), + (wx.Button(self, label='='), 0, wx.EXPAND), + (wx.Button(self, label='+'), 0, wx.EXPAND) ]) + + vbox.Add(gs, proportion=1, flag=wx.EXPAND) + self.SetSizer(vbox) + + +def main(): + + app = wx.App() + ex = Example(None, title='Calculator') + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +注意我们是如何设置在 Bck 和 Close 按钮之间的间隔。 我们只需在其中放置一个空的 `wx.StaticText` 。 + +在我们的例子中,我们使用了 `AddMany()` 方法。 这是一次添加多个组件的便捷方法。 + +```python +gs.AddMany( [(wx.Button(self, label='Cls'), 0, wx.EXPAND), +... +``` + +组件 Widgets 按顺序被放置在表格内。第一行先填充,然后是第二行等 + +![Calculator](assets/calculator.png)Figure: Calculator + +## wx.FlexGridSizer + +这个 sizer 与 `wx.GridSizer` 类似。它也在一个二维表中的放置组件。它增加了一些灵活性。`wx.GridSizer` 单元格大小相同。`wx.FlexGridSizer` 中的所有单元格在同一行中具有相同的高度。所有单元在一列中具有相同的宽度。但是所有的行和列不需要是同样的高度或宽度。 + +```python +wx.FlexGridSizer(int rows=1, int cols=0, int vgap=0, int hgap=0) +``` + +`rows` 和 `cols` 指定了 sizer 中的行数和列数。 `vgap` 和 `hgap` 在两个方向上的组件之间添加一些空间。 + +很多时候开发人员必须开发用于数据输入和修改的对话框。 我发现 `wx.FlexGridSizer` 适合这样的任务。 开发人员可以使用此 sizer 轻松设置对话窗口 dialog window。 使用 `wx.GridSizer` 也可以实现,但由于每个单元必须具有相同的大小,所以它看起来不太好。 + +**review.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example we create review +layout with wx.FlexGridSizer. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, parent, title): + super(Example, self).__init__(parent, title=title) + + self.InitUI() + self.Centre() + self.Show() + + def InitUI(self): + + panel = wx.Panel(self) + + hbox = wx.BoxSizer(wx.HORIZONTAL) + + fgs = wx.FlexGridSizer(3, 2, 9, 25) + + title = wx.StaticText(panel, label="Title") + author = wx.StaticText(panel, label="Author") + review = wx.StaticText(panel, label="Review") + + tc1 = wx.TextCtrl(panel) + tc2 = wx.TextCtrl(panel) + tc3 = wx.TextCtrl(panel, style=wx.TE_MULTILINE) + + fgs.AddMany([(title), (tc1, 1, wx.EXPAND), (author), + (tc2, 1, wx.EXPAND), (review, 1, wx.EXPAND), (tc3, 1, wx.EXPAND)]) + + fgs.AddGrowableRow(2, 1) + fgs.AddGrowableCol(1, 1) + + hbox.Add(fgs, proportion=1, flag=wx.ALL|wx.EXPAND, border=15) + panel.SetSizer(hbox) + + +def main(): + + app = wx.App() + ex = Example(None, title='Review') + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在上面的代码示例中,我们使用 `FlexGridSizer` 创建了一个 Review 窗口。 + +```python +hbox = wx.BoxSizer(wx.HORIZONTAL) +... +hbox.Add(fgs, proportion=1, flag=wx.ALL|wx.EXPAND, border=15) +``` + +我们创建一个水平 box sizer,为了在组件的表格周围放一些间隔空间(15px)。 + +```python +fgs.AddMany([(title), (tc1, 1, wx.EXPAND), (author), + (tc2, 1, wx.EXPAND), (review, 1, wx.EXPAND), (tc3, 1, wx.EXPAND)]) +``` + +我们使用 `AddMany()` 方法将组件添加到 sizer 中。 `wx.FlexGridSizer` 和 `wx.GridSizer` 共用此方法。 + +```python +fgs.AddGrowableRow(2, 1) +fgs.AddGrowableCol(1, 1) +``` + +我们使第三行和第二列可以成长。通过这种方式,我们可以在窗口大小调整时让文本框增长。第一个和第二个文本框在水平方向增长,第三个双向增长。我们必须谨记使用 `wx.EXPAND` 使组件可扩展。 + +![Review](assets/review.png) + +## wx.GridBagSizer + +`wx.GridBagSizer` 是 wxPython 中最灵活的 sizer。这种 sizer 不仅适用于 wxPython,我们也可以在其他工具包中找到它。 + +此 sizer 可以显式定位项目。项目也可以选择跨越多个行或列。`wx.GridBagSizer` 有一个简单的构造函数。 + +```python +wx.GridBagSizer(integer vgap, integer hgap) +``` + +垂直和水平 gap:定义所有孩子的间隔(单位为像素)。 我们用 `Add()` 方法将项目添加到网格中。 + +```python +Add(self, item, tuple pos, tuple span=wx.DefaultSpan, integer flag=0, + integer border=0, userData=None) +``` + +item:一个插入到网格中的组件。 + +pos:指定虚拟网格中的位置。左上角的单元格的位置为 (0, 0)。  + +span:是一个可选的 spanning 组件的;例如,一个 (3, 2) 的 span,跨越 3 行 2 列的组件。  + +flag 和 border:在前面的 `wx.BoxSizer` 中讨论过。 + +调整窗口大小时,网格中的项目可以更改其大小或保持默认大小。 如果我们想要增长和缩小,我们可以使用以下两种方法: + +```python +AddGrowableRow(integer row) +AddGrowableCol(integer col) +``` + +## Rename window example + +在我们的第一个例子中,我们创建了一个 Rename 窗口。它将有一个 `wx.StaticText`,一个 `wx.TextCtrl` 和两个 `wx.Button` 组件。 + +**rename.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example we create a rename layout +with wx.GridBagSizer. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, parent, title): + super(Example, self).__init__(parent, title=title) + + self.InitUI() + self.Centre() + + def InitUI(self): + + panel = wx.Panel(self) + sizer = wx.GridBagSizer(4, 4) + + text = wx.StaticText(panel, label="Rename To") + sizer.Add(text, pos=(0, 0), flag=wx.TOP|wx.LEFT|wx.BOTTOM, border=5) + + tc = wx.TextCtrl(panel) + sizer.Add(tc, pos=(1, 0), span=(1, 5), + flag=wx.EXPAND|wx.LEFT|wx.RIGHT, border=5) + + buttonOk = wx.Button(panel, label="Ok", size=(90, 28)) + buttonClose = wx.Button(panel, label="Close", size=(90, 28)) + sizer.Add(buttonOk, pos=(3, 3)) + sizer.Add(buttonClose, pos=(3, 4), flag=wx.RIGHT|wx.BOTTOM, border=10) + + sizer.AddGrowableCol(1) + sizer.AddGrowableRow(2) + panel.SetSizer(sizer) + + +def main(): + + app = wx.App() + ex = Example(None, title='Rename') + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +我们必须将窗口看做一个大的网格。 + +```python +text = wx.StaticText(panel, label="Rename To") +sizer.Add(text, pos=(0, 0), flag=wx.TOP|wx.LEFT|wx.BOTTOM, border=10) +``` + +The text "Rename to" goes to the left upper corner. So we specify the (0, 0) position. And we add some space to the bottom, left, and bottom. + +文本“重命名”放在左上角,所以我们指定 (0, 0) 的位置。我们在底部,左侧和底部添加一些空间。 + +```python +tc = wx.TextCtrl(panel) +sizer.Add(tc, pos=(1, 0), span=(1, 5), + flag=wx.EXPAND|wx.LEFT|wx.RIGHT, border=5) +``` + +`wx.TextCtrl` 进入第二行的开始处 (1, 0)。 请记住,我们从零开始计数。它扩展了 1 行 和 5 列 (1, 5)。我们把5个像素的空间放在左边。 + +```python +sizer.Add(buttonOk, pos=(3, 3)) +sizer.Add(buttonClose, pos=(3, 4), flag=wx.RIGHT|wx.BOTTOM, border=10) +``` + +我们把两个按钮放到第四行,第三行留空,所以在 `wx.TextCtrl` 和按钮之间有一些空间。我们把 OK 按钮放到第四列,Close 按钮放在第五列。注意我们将间隔空间应用到一个组件,它会应用到整行。这就是为什么我们不给OK 按钮指定间隔。细心的读者可能注意到我们没有在两个按钮之间指定任何空间。 也就是说,我们没有在右侧 OK 按钮和右侧是 Close 按钮上放置任何空间。 在 `wx.GridBagSizer` 的构造函数中,我们在所有组件之间放置了一些空间。 所以已经有一些空间了。 + +```python +sizer.AddGrowableCol(1) +sizer.AddGrowableRow(2) +``` + +我们必须做的最后一件事是让我们的对话框可调整大小。我们让第二列和第三列可增长。现在我们可以扩大或缩小我们的窗口。尝试评论这两行,看看会发生什么。 + +![Rename](assets/rename.png) + +## New class example + +在下一个示例中,我们创建一个窗口,该窗口可以在 JDeveloper 中找到。 这是用于给 Java 创建一个新类的窗口。 + +**new_class.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example we create a new class layout +with wx.GridBagSizer. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, parent, title): + super(Example, self).__init__(parent, title=title) + + self.InitUI() + self.Centre() + + def InitUI(self): + + panel = wx.Panel(self) + + sizer = wx.GridBagSizer(5, 5) + + text1 = wx.StaticText(panel, label="Java Class") + sizer.Add(text1, pos=(0, 0), flag=wx.TOP|wx.LEFT|wx.BOTTOM, + border=15) + + icon = wx.StaticBitmap(panel, bitmap=wx.Bitmap('exec.png')) + sizer.Add(icon, pos=(0, 4), flag=wx.TOP|wx.RIGHT|wx.ALIGN_RIGHT, + border=5) + + line = wx.StaticLine(panel) + sizer.Add(line, pos=(1, 0), span=(1, 5), + flag=wx.EXPAND|wx.BOTTOM, border=10) + + text2 = wx.StaticText(panel, label="Name") + sizer.Add(text2, pos=(2, 0), flag=wx.LEFT, border=10) + + tc1 = wx.TextCtrl(panel) + sizer.Add(tc1, pos=(2, 1), span=(1, 3), flag=wx.TOP|wx.EXPAND) + + text3 = wx.StaticText(panel, label="Package") + sizer.Add(text3, pos=(3, 0), flag=wx.LEFT|wx.TOP, border=10) + + tc2 = wx.TextCtrl(panel) + sizer.Add(tc2, pos=(3, 1), span=(1, 3), flag=wx.TOP|wx.EXPAND, + border=5) + + button1 = wx.Button(panel, label="Browse...") + sizer.Add(button1, pos=(3, 4), flag=wx.TOP|wx.RIGHT, border=5) + + text4 = wx.StaticText(panel, label="Extends") + sizer.Add(text4, pos=(4, 0), flag=wx.TOP|wx.LEFT, border=10) + + combo = wx.ComboBox(panel) + sizer.Add(combo, pos=(4, 1), span=(1, 3), + flag=wx.TOP|wx.EXPAND, border=5) + + button2 = wx.Button(panel, label="Browse...") + sizer.Add(button2, pos=(4, 4), flag=wx.TOP|wx.RIGHT, border=5) + + sb = wx.StaticBox(panel, label="Optional Attributes") + + boxsizer = wx.StaticBoxSizer(sb, wx.VERTICAL) + boxsizer.Add(wx.CheckBox(panel, label="Public"), + flag=wx.LEFT|wx.TOP, border=5) + boxsizer.Add(wx.CheckBox(panel, label="Generate Default Constructor"), + flag=wx.LEFT, border=5) + boxsizer.Add(wx.CheckBox(panel, label="Generate Main Method"), + flag=wx.LEFT|wx.BOTTOM, border=5) + sizer.Add(boxsizer, pos=(5, 0), span=(1, 5), + flag=wx.EXPAND|wx.TOP|wx.LEFT|wx.RIGHT , border=10) + + button3 = wx.Button(panel, label='Help') + sizer.Add(button3, pos=(7, 0), flag=wx.LEFT, border=10) + + button4 = wx.Button(panel, label="Ok") + sizer.Add(button4, pos=(7, 3)) + + button5 = wx.Button(panel, label="Cancel") + sizer.Add(button5, pos=(7, 4), span=(1, 1), + flag=wx.BOTTOM|wx.RIGHT, border=10) + + sizer.AddGrowableCol(2) + + panel.SetSizer(sizer) + sizer.Fit(self) + + +def main(): + + app = wx.App() + ex = Example(None, title="Create Java Class") + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +这是一个更复杂的布局,我们使用 `wx.GridBagSizer` 和 `wx.StaticBoxsizer`。 + +```python +line = wx.StaticLine(panel) +sizer.Add(line, pos=(1, 0), span=(1, 5), + flag=wx.EXPAND|wx.BOTTOM, border=10) +``` + +这是用于在布局中分隔小组件组的一行。 + +```python +icon = wx.StaticBitmap(panel, bitmap=wx.Bitmap('exec.png')) +sizer.Add(icon, pos=(0, 4), flag=wx.TOP|wx.RIGHT|wx.ALIGN_RIGHT, + border=5) +``` + +我们把一个 `wx.StaticBitmap` 放进网格的第一行,我们把它放在行的右侧。 + +```python +sb = wx.StaticBox(panel, label="Optional Attributes") +boxsizer = wx.StaticBoxSizer(sb, wx.VERTICAL) +``` + +`wxStaticBoxSizer` 就像一个普通的 `wx.BoxSizer`,但它在 sizer 周围添加 static box。我们将复选框放入 static box sizer 中。 + +![New class window](assets/newclass.png) + +这部分 wxPython 教程专门用于布局管理。 \ No newline at end of file diff --git "a/5.\344\272\213\344\273\266.md" "b/5.\344\272\213\344\273\266.md" new file mode 100644 index 0000000..fce9a63 --- /dev/null +++ "b/5.\344\272\213\344\273\266.md" @@ -0,0 +1,912 @@ +# Events in wxPython + +事件是每个 GUI 应用程序的必需组成部分。所有 GUI 应用程序都是事件驱动的。应用程序会对其生命期间生成的不同事件类型作出反应。事件主要由应用程序的用户生成。但它们也可以通过其他方式产生;例如互联网连接,窗口管理器或计时器。所以当我们调用 `MainLoop()` 方法时,我们的应用程序会等待事件产生。当我们退出应用程序时,`MainLoop()` 方法结束。 + +## 定义 + +从底层框架(一般是 GUI 工具包)看,事件是一段应用层级的信息。事件循环是一种编程结构,用于等待分发 dispatch 程序中的事件或消息。事件循环重复查找要处理的事件。调度员 dispatcher 是将事件 event 映射到事件处理器 event handlers 的过程 。事件处理器是对事件做出反应的方法 methods。 + +Event object:事件对象是与事件关联的对象,通常是一个窗口。 + +Event type:事件类型是一种已生成的特殊事件。 + +Event binder:事件绑定器是一个将事件类型与事件处理器绑定的对象。 + +## wxPython wx.EVT_MOVE example + +我们对 `wx.MoveEvent` 事件做出反应。当我们将窗口移动到新的位置时,会产生事件。这个事件的 event binder 是 `wx.EVT_MOVE` 。 + +**simple_event.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This is a wx.MoveEvent event demostration. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + + def InitUI(self): + + wx.StaticText(self, label='x:', pos=(10,10)) + wx.StaticText(self, label='y:', pos=(10,30)) + + self.st1 = wx.StaticText(self, label='', pos=(30, 10)) + self.st2 = wx.StaticText(self, label='', pos=(30, 30)) + + self.Bind(wx.EVT_MOVE, self.OnMove) + + self.SetSize((350, 250)) + self.SetTitle('Move event') + self.Centre() + + def OnMove(self, e): + + x, y = e.GetPosition() + self.st1.SetLabel(str(x)) + self.st2.SetLabel(str(y)) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +该示例显示窗口的当前位置。 + +```python +self.Bind(wx.EVT_MOVE, self.OnMove) +``` + +在这里,我们将 `wx.EVT_MOVE` 事件绑定器绑定到 `OnMove()` 方法。 + +```python +def OnMove(self, e): + + x, y = e.GetPosition() + self.st1.SetLabel(str(x)) + self.st2.SetLabel(str(y)) +``` + +`OnMove()` 方法中的 event 参数是针对于特定事件类型的对象。在我们的例子中,它是一个 `wx.MoveEvent` 类的实例。该对象包含有关该事件的信息。例如,事件对象或窗口的位置。在我们的例子中,事件对象是 `wx.Frame` 组件。 我们可以通过调用事件的 `GetPosition()` 方法来找出当前位置。 + +![Move event](assets/moveevent.png) + +## wxPython event binding + +在 WxPython 中事件的三个步骤: + +- 识别事件绑定器 event binder 的名称: `wx.EVT_SIZE`,`wx.EVT_CLOSE` 等 +- 创建一个事件处理器 event handler。这个方法在事件产生时被调用。 +- 将事件绑定到事件处理器 event handler。 + +在 wxPython 中我们说要绑定一个方法到一个事件。有时会使用 word hook。你通过调用 `Bind()` 方法来绑定一个事件。 该方法具有以下参数: + +```python +Bind(event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY) +``` + +`event` : 是 EVT_ * 对象之一。它指定事件的类型。 + +`handler` : 是要调用的对象。换句话说,这是一种程序员绑定到事件的方法。 + +`source` : 当我们想要区分拥有相同的事件类型的不同组件时使用 `source`。 + +`id` : 当我们有多个按钮,菜单项等时使用 `id` 参数。 `id` 用于区分它们。 + +`id2` : 用于当需要将 handler 绑定到一系列 id 时,例如使用 `EVT_MENU_RANGE`。 + +请注意,方法 `Bind()` 在类 `EvtHandler` 定义。 它是 `wx.Window` 继承的类。 `wx.Window` 是 wxPython 中大多数组件的基类。还有一个相反的过程。如果我们想要从事件中解除一个方法,我们称之为 `Unbind()` 方法。 它具有与上面相同的参数。 + +## Vetoing events + +有时我们需要停止处理事件。 要做到这一点,我们调用方法 `Veto()` 。 + +**event_veto.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import wx + +""" +ZetCode wxPython tutorial + +In this example we veto an event. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.Bind(wx.EVT_CLOSE, self.OnCloseWindow) + + self.SetTitle('Event veto') + self.Centre() + + def OnCloseWindow(self, e): + + dial = wx.MessageDialog(None, 'Are you sure to quit?', 'Question', + wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION) + + ret = dial.ShowModal() + + if ret == wx.ID_YES: + self.Destroy() + else: + e.Veto() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在我们的例子中,我们处理了一个 `wx.CloseEvent`。当我们点击标题栏上的 X 按钮时,按下 Alt + F4 或从系统菜单中选择关闭,这个事件被调用。在许多应用程序中,我们希望在我们进行了一些更改时防止意外关闭窗口。 为此,我们必须绑定 `wx.EVT_CLOSE` 事件绑定器。 + +```python +dial = wx.MessageDialog(None, 'Are you sure to quit?', 'Question', + wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION) + +ret = dial.ShowModal() +``` + +在处理关闭事件的过程中,我们显示一个消息对话框。 + +```python +if ret == wx.ID_YES: + self.Destroy() +else: + event.Veto() +``` + +根据对话框的返回值,我们销毁窗口,或否决事件。请注意,要关闭窗口,我们必须调用 `Destroy()` 方法。 如果调用 `Close()` 方法,我们最终会陷入无限循环。 + +## wxPython event propagation + +有两种类型的事件:基本事件和命令事件。 它们在传播 propagation 上不同。 事件传播 Event propagation 遍历从 child widgets 到 parent widgets 和 grand parent widgets 的事件。 + +基本事件不会传播。 命令事件会传播。 例如 `wx.CloseEvent` 是一个基本事件,这个事件传播到 parent widgets 是没有意义的。 + +默认情况下,事件处理器中捕获的事件停止传播。为了继续传播,我们调用 `Skip()` 方法。 + +**event_propagation.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This example demonstrates event propagation. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + +class MyPanel(wx.Panel): + + def __init__(self, *args, **kw): + super(MyPanel, self).__init__(*args, **kw) + + self.Bind(wx.EVT_BUTTON, self.OnButtonClicked) + + def OnButtonClicked(self, e): + + print('event reached panel class') + e.Skip() + + +class MyButton(wx.Button): + + def __init__(self, *args, **kw): + super(MyButton, self).__init__(*args, **kw) + + self.Bind(wx.EVT_BUTTON, self.OnButtonClicked) + + def OnButtonClicked(self, e): + + print('event reached button class') + e.Skip() + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + + def InitUI(self): + + mpnl = MyPanel(self) + + MyButton(mpnl, label='Ok', pos=(15, 15)) + + self.Bind(wx.EVT_BUTTON, self.OnButtonClicked) + + self.SetTitle('Propagate event') + self.Centre() + + def OnButtonClicked(self, e): + + print('event reached frame class') + e.Skip() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在我们的例子中,我们在面板 panel 上有一个按钮。 该面板放置在一个框架组件 frame widget 中。 我们为所有组件定义一个处理器。 + +```python +def OnButtonClicked(self, e): + + print('event reached button class') + e.Skip() +``` + +我们在自定义按钮类中处理按钮单击事件。 `Skip()` 方法将事件传播到面板类。 + +尝试省略一些 `Skip()` 方法,看看会发生什么。 + +## Window identifiers + +- let the system automatically create an id +- use standard identifiers +- create your own id + +窗口标识符 Window identifiers 是唯一确定事件系统中窗口标识 window identity 的整数。有三种方法可以创建窗口 id。 + +- 让系统自动创建一个id +- 使用标准标识符 standard identifiers +- 创建你自己的 id + +```python +wx.Button(parent, -1) +wx.Button(parent, wx.ID_ANY) +``` + +如果我们为参数 id 提供 -1 或 `wx.ID_ANY`,我们让 wxPython 为我们自动创建一个id。自动创建的 id 始终为负值,而用户指定的 id 必须始终为正值。 我们通常在不需要更改组件状态时使用此选项。例如,在应用程序生命周期中静态文本 static text 永远不会更改。如果我们想要,我们仍然可以得到这个 id。 方法 `GetId()` 可以确定 id。 + +**default_ids.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example we use automatic ids +with wx.ID_ANY. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + pnl = wx.Panel(self) + exitButton = wx.Button(pnl, wx.ID_ANY, 'Exit', (10, 10)) + + self.Bind(wx.EVT_BUTTON, self.OnExit, id=exitButton.GetId()) + + self.SetTitle("Automatic ids") + self.Centre() + + def OnExit(self, event): + + self.Close() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在这个例子中,我们不关心实际的 id 值。 + +```python +self.Bind(wx.EVT_BUTTON, self.OnExit, id=exitButton.GetId()) +``` + +我们通过调用 `GetId()` 方法来获得自动生成的ID。 + +建议使用标准标识符 standard identifiers。 标识符可以在某些平台上提供一些标准的图形或行为。 + +## wxPython standard ids + +wxPython 包含一些标准的id,如 `wx.ID_SAVE` 或 `wx.ID_NEW`。 + +**standard_ids.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example we create buttons with standard ids. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + pnl = wx.Panel(self) + grid = wx.GridSizer(3, 2, 0, 0) + + grid.AddMany([(wx.Button(pnl, wx.ID_CANCEL), 0, wx.TOP | wx.LEFT, 9), + (wx.Button(pnl, wx.ID_DELETE), 0, wx.TOP, 9), + (wx.Button(pnl, wx.ID_SAVE), 0, wx.LEFT, 9), + (wx.Button(pnl, wx.ID_EXIT)), + (wx.Button(pnl, wx.ID_STOP), 0, wx.LEFT, 9), + (wx.Button(pnl, wx.ID_NEW))]) + + self.Bind(wx.EVT_BUTTON, self.OnQuitApp, id=wx.ID_EXIT) + + pnl.SetSizer(grid) + + self.SetTitle("Standard ids") + self.Centre() + + def OnQuitApp(self, event): + + self.Close() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在我们的例子中,我们在按钮上使用标准标识。在Linux上,按钮有图标。 + +```python +grid.AddMany([(wx.Button(pnl, wx.ID_CANCEL), 0, wx.TOP | wx.LEFT, 9), + (wx.Button(pnl, wx.ID_DELETE), 0, wx.TOP, 9), + (wx.Button(pnl, wx.ID_SAVE), 0, wx.LEFT, 9), + (wx.Button(pnl, wx.ID_EXIT)), + (wx.Button(pnl, wx.ID_STOP), 0, wx.LEFT, 9), + (wx.Button(pnl, wx.ID_NEW))]) +``` + +我们将六个按钮添加到 grid sizer 中。`wx.ID_CANCEL`,`wx.ID_DELETE`, `wx.ID_SAVE`,`wx.ID_EXIT`,`wx.ID_STOP` 和 `wx.ID_NEW` 是标准标识符。 + +```python +self.Bind(wx.EVT_BUTTON, self.OnQuitApp, id=wx.ID_EXIT) +``` + +我们将按钮点击事件绑定到 `OnQuitApp()` 事件处理器。id 参数用于在按钮之间进行区分,这是我们唯一确定事件的来源。 + +![Standard identifiers](assets/standardidentifiers.png) + +## Custom event ids + +最后一个选项就是使用自己的标识符。 我们定义了我们自己的 全局 id。 + +**custom_ids.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example we use custom event ids. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + +ID_MENU_NEW = wx.NewId() +ID_MENU_OPEN = wx.NewId() +ID_MENU_SAVE = wx.NewId() + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.CreateMenuBar() + self.CreateStatusBar() + + self.SetSize((350, 250)) + self.SetTitle('Custom ids') + self.Centre() + + def CreateMenuBar(self): + + mb = wx.MenuBar() + + fMenu = wx.Menu() + fMenu.Append(ID_MENU_NEW, 'New') + fMenu.Append(ID_MENU_OPEN, 'Open') + fMenu.Append(ID_MENU_SAVE, 'Save') + + mb.Append(fMenu, '&File') + self.SetMenuBar(mb) + + self.Bind(wx.EVT_MENU, self.DisplayMessage, id=ID_MENU_NEW) + self.Bind(wx.EVT_MENU, self.DisplayMessage, id=ID_MENU_OPEN) + self.Bind(wx.EVT_MENU, self.DisplayMessage, id=ID_MENU_SAVE) + + def DisplayMessage(self, e): + + sb = self.GetStatusBar() + + eid = e.GetId() + + if eid == ID_MENU_NEW: + msg = 'New menu item selected' + elif eid == ID_MENU_OPEN: + msg = 'Open menu item selected' + elif eid == ID_MENU_SAVE: + msg = 'Save menu item selected' + + sb.SetStatusText(msg) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在代码示例中,我们创建了一个包含三个菜单项的菜单。 菜单项的 id 全局创建。 + +```python +ID_MENU_NEW = wx.NewId() +ID_MENU_OPEN = wx.NewId() +ID_MENU_SAVE = wx.NewId() +``` + +`wx.NewId()` 方法创建一个新的唯一标识。 + +```python +self.Bind(wx.EVT_MENU, self.DisplayMessage, id=ID_MENU_NEW) +self.Bind(wx.EVT_MENU, self.DisplayMessage, id=ID_MENU_OPEN) +self.Bind(wx.EVT_MENU, self.DisplayMessage, id=ID_MENU_SAVE) +``` + +所有三个菜单项都由其唯一 id 标识。 + +```python +eid = e.GetId() + +if eid == ID_MENU_NEW: + msg = 'New menu item selected' +elif eid == ID_MENU_OPEN: + msg = 'Open menu item selected' +elif eid == ID_MENU_SAVE: + msg = 'Save menu item selected' +``` + +从事件对象中取回 id。根据值的大小,我们准备消息,该消息显示在应用程序的状态栏中。 + +## wx.PaintEvent + +重绘窗口时会生成绘图事件 paint event。 当我们调整窗口大小或者最大化窗口时会发生这种情况。绘图事件也可以通过编程方式生成。例如,当我们调用 `SetLabel()` 方法更改 `wx.StaticText` 组件时。请注意,当我们最小化窗口时,不会生成绘图事件。 + +**paint_event.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example we count paint events. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.count = 0 + self.Bind(wx.EVT_PAINT, self.OnPaint) + + self.SetTitle('Paint events') + self.SetSize((350, 250)) + self.Centre() + + def OnPaint(self, e): + + self.count += 1 + dc = wx.PaintDC(self) + text = "Number of paint events: {0}".format(self.count) + dc.DrawText(text, 20, 20) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在我们的例子中,我们计算绘图事件的数量并在窗口上绘制当前生成的事件的数量。 + +```python +self.Bind(wx.EVT_PAINT, self.OnPaint) +``` + +我们将 `EVT_PAINT` 事件绑定到 `OnPaint()` 方法。 + +```python +def OnPaint(self, e): + + self.count += 1 + dc = wx.PaintDC(self) + text = "Number of paint events: {0}".format(self.count) + dc.DrawText(text, 20, 20) +``` + +在 `OnPaint()` 事件中,我们增加计数器,并用 `DrawText()` 方法绘出窗口的 paint events 数。 + +## wx.FocusEvent + +焦点 focus 指示当前在应用程序中选中的组件。从键盘输入或从剪贴板粘贴文本,传送到的组件,并拥有焦点。 + +有两种焦点事件类型 + +`wx.EVT_SET_FOCUS` :它在组件获得焦点时生成。  + +`wx.EVT_KILL_FOCUS` :当组件失去焦点时生成。 + +通过点击或者通过键盘按键来改变焦点,通常是 Tab 或者 Shift + Tab。 + +**focus_event.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example we work with wx.FocusEvent. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + +class MyWindow(wx.Panel): + + def __init__(self, parent): + super(MyWindow, self).__init__(parent) + + self.color = '#b3b3b3' + + self.Bind(wx.EVT_PAINT, self.OnPaint) + self.Bind(wx.EVT_SIZE, self.OnSize) + self.Bind(wx.EVT_SET_FOCUS, self.OnSetFocus) + self.Bind(wx.EVT_KILL_FOCUS, self.OnKillFocus) + + def OnPaint(self, e): + + dc = wx.PaintDC(self) + + dc.SetPen(wx.Pen(self.color)) + x, y = self.GetSize() + dc.DrawRectangle(0, 0, x, y) + + def OnSize(self, e): + + self.Refresh() + + def OnSetFocus(self, e): + + self.color = '#ff0000' + self.Refresh() + + def OnKillFocus(self, e): + + self.color = '#b3b3b3' + self.Refresh() + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + + def InitUI(self): + + grid = wx.GridSizer(2, 2, 10, 10) + grid.AddMany([(MyWindow(self), 0, wx.EXPAND|wx.TOP|wx.LEFT, 9), + (MyWindow(self), 0, wx.EXPAND|wx.TOP|wx.RIGHT, 9), + (MyWindow(self), 0, wx.EXPAND|wx.BOTTOM|wx.LEFT, 9), + (MyWindow(self), 0, wx.EXPAND|wx.BOTTOM|wx.RIGHT, 9)]) + + + self.SetSizer(grid) + + self.SetSize((350, 250)) + self.SetTitle('Focus event') + self.Centre() + + + def OnMove(self, e): + + print(e.GetEventObject()) + x, y = e.GetPosition() + self.st1.SetLabel(str(x)) + self.st2.SetLabel(str(y)) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在我们的例子中,我们有四个面板 panels。 突出显示焦点的面板。 + +```python +self.Bind(wx.EVT_SET_FOCUS, self.OnSetFocus) +self.Bind(wx.EVT_KILL_FOCUS, self.OnKillFocus) +``` + +我们将两个焦点事件绑定到事件处理器。 + +```python +def OnPaint(self, e): + + dc = wx.PaintDC(self) + + dc.SetPen(wx.Pen(self.color)) + x, y = self.GetSize() + dc.DrawRectangle(0, 0, x, y) +``` + +在 `OnPaint()` 方法中,我们在窗口上绘图。 轮廓的颜色取决于窗口是否有焦点。 聚焦窗口的轮廓用红色绘制。 + +```python +def OnSetFocus(self, e): + + self.color = '#ff0000' + self.Refresh() +``` + +在 `OnSetFocus()` 方法中,我们将 `self.color` 变量设置为红色。我们刷新框架窗口 frame window,它将为其所有子窗口组件生成一个绘图事件。窗户重新绘制,有焦点的组件有一个新颜色的外轮廓。 + +```python +def OnKillFocus(self, e): + + self.color = '#b3b3b3' + self.Refresh() +``` + +当窗口失去焦点时, `OnKillFocus()` 方法被调用。我们改变颜色值并刷新。 + +![Focus event](assets/focusevent.png) + +## wx.KeyEvent + +当我们按下键盘上的某个键时,会生成一个 `wx.KeyEvent` 。这个事件被发送到有当前焦点的组件。有三种不同的按键处理器: + +- wx.EVT_KEY_DOWN +- wx.EVT_KEY_UP +- wx.EVT_CHAR + +常见的需求是当 ESC 键按下时关闭程序。 + +**key_event.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example we work with wx.KeyEvent. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + pnl = wx.Panel(self) + pnl.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown) + pnl.SetFocus() + + self.SetSize((350, 250)) + self.SetTitle('Key event') + self.Centre() + + def OnKeyDown(self, e): + + key = e.GetKeyCode() + + if key == wx.WXK_ESCAPE: + + ret = wx.MessageBox('Are you sure to quit?', 'Question', + wx.YES_NO | wx.NO_DEFAULT, self) + + if ret == wx.YES: + self.Close() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在这个例子中,我们处理 Esc 按键。 显示一个消息框以确认终止应用程序。 + +```python +pnl.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown) +``` + +我们将事件处理器绑定到 `wx.EVT_KEY_DOWN` 事件。 + +```python +key = e.GetKeyCode() +``` + +这里我们得到按键的键码 + +```python +if key == wx.WXK_ESCAPE: +``` + +我们核对键码。 Esc 键有 `wx.WXK_ESCAPE` 码。 + +在本章中,我们讨论了 wxPython中 的事件。 \ No newline at end of file diff --git "a/6.\345\257\271\350\257\235\346\241\206.md" "b/6.\345\257\271\350\257\235\346\241\206.md" new file mode 100644 index 0000000..384d0ae --- /dev/null +++ "b/6.\345\257\271\350\257\235\346\241\206.md" @@ -0,0 +1,485 @@ +# wxPython dialogs + +对话框窗口或对话框是大多数现代 GUI 应用程序不可缺少的部分。对话被定义为两个或更多人之间的对话。在计算机应用程序中,对话框是一个用于与应用程序“交谈”的窗口。 对话框用于输入数据,修改数据,更改应用程序设置等。对话是用户和计算机程序之间交流的重要手段。 + +## A Simple message box + +消息框 message box 向用户提供简短的信息。一个很好的例子是 CD 刻录应用程序。 当 CD 完成刻录时,会弹出一个消息框。 + +**message_box.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This example shows a simple +message box. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kwargs): + super(Example, self).__init__(*args, **kwargs) + + self.InitUI() + + def InitUI(self): + + wx.CallLater(3000, self.ShowMessage) + + self.SetSize((300, 200)) + self.SetTitle('Message box') + self.Centre() + + def ShowMessage(self): + wx.MessageBox('Download completed', 'Info', + wx.OK | wx.ICON_INFORMATION) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +此示例三秒钟后显示一个消息框。 + +```python +wx.CallLater(3000, self.ShowMessage) +``` + +`wx.CallLater` 在三秒钟后调用一个方法。第一个参数是一个时间值,之后调用给定的方法。该参数以毫秒为单位。 第二个参数是一个要调用的方法。 + +```python +def ShowMessage(self): + wx.MessageBox('Download completed', 'Info', + wx.OK | wx.ICON_INFORMATION) +``` + +`wx.MessageBox` 显示一个小对话窗口。我们提供三个参数:文本消息 text message,标题消息 title message和标志 flags。标志用于显示不同的按钮和图标。在我们的例子中,我们显示一个确定按钮和信息图标。 + +![Message box](assets/messagebox.png) + +## Predefined dialogs + +wxPython 有几个预定义的对话框。这些是常见编程任务的对话框,例如文本、接收输入、加载和保存文件。 + +## Message dialogs + +Message dialogs are used to show messages to the user. They are more flexible than simple message boxes that we saw in the previous example. They are customisable. We can change icons and buttons that will be shown in a dialog. + +消息对话框用于向用户显示消息,比前面例子中看到的简单消息框更加灵活。它们是可定制的。我们可以更改在对话框中的图标和按钮。 + +| flag | meaning | +| ------------------- | ---------------------- | +| wx.OK | 显示 OK 按钮 | +| wx.CANCEL | 显示 Cancel 按钮 | +| wx.YES_NO | 显示 Yes,没有按钮 | +| wx.YES_DEFAULT | 让 Yes 按钮成为默认值 | +| wx.NO_DEFAULT | 让 No 按钮成为默认值 | +| wx.ICON_EXCLAMATION | 显示警告 alert 图标 | +| wx.ICON_ERROR | 显示错误 error 图标 | +| wx.ICON_HAND | 同 wx.ICON_ERROR | +| wx.ICON_INFORMATION | 显示信息 info 图标 | +| wx.ICON_QUESTION | 显示疑问 question 图标 | + +这些都是可以与 `wx.MessageDialog` 类一起使用的标志 flag。 + +**message_dialogs.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +This example shows four types of +message dialogs. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kwargs): + super(Example, self).__init__(*args, **kwargs) + + self.InitUI() + + def InitUI(self): + + panel = wx.Panel(self) + + hbox = wx.BoxSizer() + sizer = wx.GridSizer(2, 2, 2, 2) + + btn1 = wx.Button(panel, label='Info') + btn2 = wx.Button(panel, label='Error') + btn3 = wx.Button(panel, label='Question') + btn4 = wx.Button(panel, label='Alert') + + sizer.AddMany([btn1, btn2, btn3, btn4]) + + hbox.Add(sizer, 0, wx.ALL, 15) + panel.SetSizer(hbox) + + btn1.Bind(wx.EVT_BUTTON, self.ShowMessage1) + btn2.Bind(wx.EVT_BUTTON, self.ShowMessage2) + btn3.Bind(wx.EVT_BUTTON, self.ShowMessage3) + btn4.Bind(wx.EVT_BUTTON, self.ShowMessage4) + + self.SetSize((300, 200)) + self.SetTitle('Messages') + self.Centre() + + def ShowMessage1(self, event): + dial = wx.MessageDialog(None, 'Download completed', 'Info', wx.OK) + dial.ShowModal() + + def ShowMessage2(self, event): + dial = wx.MessageDialog(None, 'Error loading file', 'Error', + wx.OK | wx.ICON_ERROR) + dial.ShowModal() + + def ShowMessage3(self, event): + dial = wx.MessageDialog(None, 'Are you sure to quit?', 'Question', + wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION) + dial.ShowModal() + + def ShowMessage4(self, event): + dial = wx.MessageDialog(None, 'Unallowed operation', 'Exclamation', + wx.OK | wx.ICON_EXCLAMATION) + dial.ShowModal() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在我们的例子中,我们创建了四个按钮并将它们放入网格 sizer 中。这些按钮将显示四个不同的对话窗口。我们通过指定不同的风格标志来创建它们 + +```python +def ShowMessage2(self, event): + dial = wx.MessageDialog(None, 'Error loading file', 'Error', + wx.OK | wx.ICON_ERROR) + dial.ShowModal() +``` + +消息对话框的创建很简单。 通过将 None 设置为父级parent,我们将对话框设置为顶级窗口。两个字符串提供消息文本和对话标题。 我们通过指定 `wx.OK` 和 `wx.ICON_ERROR` 标志来显示一个 OK 按钮和一个错误图标。为了在屏幕上显示对话框,我们调用 `ShowModal()` 方法。 + +## About dialog box + +几乎每个应用程序都有一个典型的对话框。它通常放置在帮助菜单中,此对话框的目的是为用户提供有关应用程序名称和版本的基本信息。过去这些对话框很简短,现在大多数的框还提供有关作者的更多信息。 他们为别的程序员或文档编写者提供信用。 他们还提供有关应用程序许可证的信息。 这些框可以显示公司的 logo 或应用程序 logo。 + +为了创建关于对话框,我们必须创建两个对象。 `wx.adv.AboutDialogInfo` 和 `wx.adv.AboutBox`。 + +wxPython 可以显示两种关于框。这取决于我们使用哪个平台以及我们调用哪些方法。它可以是原生对话框或wxPython 通用对话框。Windows 原生的关于对话框无法显示自定义图标,许可证文本或 URL。如果我们省略这三个字段,wxPython 将显示一个原生对话框。 否则,它将采用通用的。 如果我们想尽可能使用原生对话框,建议在一个单独的菜单项提供许可证信息。GTK+ 可以显示所有这些字段。 + +**about_dialog.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +''' +ZetCode wxPython tutorial + +In this example, we create an +about dialog box. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +''' + +import wx +import wx.adv + + +class Example(wx.Frame): + + def __init__(self, *args, **kwargs): + super(Example, self).__init__(*args, **kwargs) + + self.InitUI() + + def InitUI(self): + + menubar = wx.MenuBar() + help = wx.Menu() + help.Append(wx.ID_ANY, '&About') + help.Bind(wx.EVT_MENU, self.OnAboutBox) + + menubar.Append(help, '&Help') + self.SetMenuBar(menubar) + + self.SetSize((350, 250)) + self.SetTitle('About dialog box') + self.Centre() + + def OnAboutBox(self, e): + + description = """File Hunter is an advanced file manager for +the Unix operating system. Features include powerful built-in editor, +advanced search capabilities, powerful batch renaming, file comparison, +extensive archive handling and more. +""" + + licence = """File Hunter is free software; you can redistribute +it and/or modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the License, +or (at your option) any later version. + +File Hunter is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU General Public License for more details. You should have +received a copy of the GNU General Public License along with File Hunter; +if not, write to the Free Software Foundation, Inc., 59 Temple Place, +Suite 330, Boston, MA 02111-1307 USA""" + + + info = wx.adv.AboutDialogInfo() + + info.SetIcon(wx.Icon('hunter.png', wx.BITMAP_TYPE_PNG)) + info.SetName('File Hunter') + info.SetVersion('1.0') + info.SetDescription(description) + info.SetCopyright('(C) 2007 - 2018 Jan Bodnar') + info.SetWebSite('http://www.zetcode.com') + info.SetLicence(licence) + info.AddDeveloper('Jan Bodnar') + info.AddDocWriter('Jan Bodnar') + info.AddArtist('The Tango crew') + info.AddTranslator('Jan Bodnar') + + wx.adv.AboutBox(info) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +The example has an about menu item. After selecting the item, the about box is displayed. + +```python + description = """File Hunter is an advanced file manager for +the Unix operating system. Features include powerful built-in editor, +advanced search capabilities, powerful batch renaming, file comparison, +extensive archive handling and more. +""" +``` + +将太多文本放入应用程序的代码并不是最好的办法。我们不想让这个例子太复杂,所以我们把所有的文本放入代码中。 但是在现实世界的程序中,文本应该单独放置在一个文件中。它有助于我们应用程序的维护。 例如,如果我们想将我们的应用程序翻译成其他语言。 + +```python +info = wx.adv.AboutDialogInfo() +``` + +第一件要做的事情是创建 `wx.AboutDialogInfo` 对象。构造函数是空的,它不带任何参数。 + +```python +info.SetIcon(wx.Icon('hunter.png', wx.BITMAP_TYPE_PNG)) +info.SetName('File Hunter') +info.SetVersion('1.0') +info.SetDescription(description) +info.SetCopyright('(C) 2007 - 2014 Jan Bodnar') +info.SetWebSite('http://www.zetcode.com') +info.SetLicence(licence) +info.AddDeveloper('Jan Bodnar') +info.AddDocWriter('Jan Bodnar') +info.AddArtist('The Tango crew') +info.AddTranslator('Jan Bodnar') +``` + +The next thing to do is to call all necessary methods upon the created `wx.AboutDialogInfo` object. + +接下来要做的事情是调用 `wx.AboutDialogInfo` 对象中所有必要的方法。 + +```python +wx.adv.AboutBox(info) +``` + +最后,我们创建一个 `wx.adv.AboutBox` 组件。 它唯一接收的参数是 `wx.adv.AboutDialogInfo` 对象。 + +![About dialog box](assets/hunter.png) + +## A custom dialog + +在下一个例子中,我们创建一个自定义对话框。图像编辑应用程序可以改变图片的颜色深度。为了提供这种功能,我们可以创建一个合适的对话框。 + +**custom_dialog.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +''' +ZetCode wxPython tutorial + +In this code example, we create a +custom dialog. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +''' + +import wx + +class ChangeDepthDialog(wx.Dialog): + + def __init__(self, *args, **kw): + super(ChangeDepthDialog, self).__init__(*args, **kw) + + self.InitUI() + self.SetSize((250, 200)) + self.SetTitle("Change Color Depth") + + + def InitUI(self): + + pnl = wx.Panel(self) + vbox = wx.BoxSizer(wx.VERTICAL) + + sb = wx.StaticBox(pnl, label='Colors') + sbs = wx.StaticBoxSizer(sb, orient=wx.VERTICAL) + sbs.Add(wx.RadioButton(pnl, label='256 Colors', + style=wx.RB_GROUP)) + sbs.Add(wx.RadioButton(pnl, label='16 Colors')) + sbs.Add(wx.RadioButton(pnl, label='2 Colors')) + + hbox1 = wx.BoxSizer(wx.HORIZONTAL) + hbox1.Add(wx.RadioButton(pnl, label='Custom')) + hbox1.Add(wx.TextCtrl(pnl), flag=wx.LEFT, border=5) + sbs.Add(hbox1) + + pnl.SetSizer(sbs) + + hbox2 = wx.BoxSizer(wx.HORIZONTAL) + okButton = wx.Button(self, label='Ok') + closeButton = wx.Button(self, label='Close') + hbox2.Add(okButton) + hbox2.Add(closeButton, flag=wx.LEFT, border=5) + + vbox.Add(pnl, proportion=1, + flag=wx.ALL|wx.EXPAND, border=5) + vbox.Add(hbox2, flag=wx.ALIGN_CENTER|wx.TOP|wx.BOTTOM, border=10) + + self.SetSizer(vbox) + + okButton.Bind(wx.EVT_BUTTON, self.OnClose) + closeButton.Bind(wx.EVT_BUTTON, self.OnClose) + + + def OnClose(self, e): + + self.Destroy() + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + + def InitUI(self): + + tb = self.CreateToolBar() + tb.AddTool(toolId=wx.ID_ANY, label='', bitmap=wx.Bitmap('color.png')) + + tb.Realize() + + tb.Bind(wx.EVT_TOOL, self.OnChangeDepth) + + self.SetSize((350, 250)) + self.SetTitle('Custom dialog') + self.Centre() + + def OnChangeDepth(self, e): + + cdDialog = ChangeDepthDialog(None, + title='Change Color Depth') + cdDialog.ShowModal() + cdDialog.Destroy() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在上面的例子中,我们创建了一个自定义对话框。 + +```python +class ChangeDepthDialog(wx.Dialog): + + def __init__(self, *args, **kw): + super(ChangeDepthDialog, self).__init__(*args, **kw) +``` + +在我们的代码示例中,我们创建了一个自定义的 ChangeDepthDialog 对话框,从 `wx.Dialog` 小部件继承。 + +```python +def OnChangeDepth(self, e): + + cdDialog = ChangeDepthDialog(None, + title='Change Color Depth') + cdDialog.ShowModal() + cdDialog.Destroy() +``` + +We instantiate a `ChangeDepthDialog class`. Then we call the `ShowModal()` method. Later, we must destroy our dialog with `Destroy()` Notice the visual difference between the dialog and the top level window. The dialog in the following figure has been activated. We cannot work with the toplevel window until the dialog is destroyed. There is a clear difference in the titlebar of the windows. + +我们实例化了一个 `ChangeDepthDialog` 类,然后我们调用 `ShowModal()` 方法。之后,我们必须用 `Destroy()` 销毁我们的对话框。注意下对话框和顶层窗口 toplevel window 的区别,下图中的对话框已被激活,在对话框销毁之前,我们无法使用顶层窗口,同时它们的窗口标题栏有明显不同。 + +![Custom dialog](assets/customdialog.png) + +在本章中,我们讨论了对话框。 \ No newline at end of file diff --git "a/7.\347\273\204\344\273\266.md" "b/7.\347\273\204\344\273\266.md" new file mode 100644 index 0000000..adccadf --- /dev/null +++ "b/7.\347\273\204\344\273\266.md" @@ -0,0 +1,1270 @@ +# Widgets + +在本节中,我们将介绍 wxPython 中基本的组件。 每个组件都有一个小代码示例。组件 Widgets 是应用程序的基本构建块。 wxPythont 有各种各样的组件,包括按钮,复选框,滑块和列表框。 + +## wx.Button + +`wx.Button` 是一个简单的组件。 它包含一个文本字符串,用于触发一个动作。 + +**button_wid.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this code example, we create a +button widget. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + pnl = wx.Panel(self) + closeButton = wx.Button(pnl, label='Close', pos=(20, 20)) + + closeButton.Bind(wx.EVT_BUTTON, self.OnClose) + + self.SetSize((350, 250)) + self.SetTitle('wx.Button') + self.Centre() + + def OnClose(self, e): + + self.Close(True) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在代码例子中,我们创建一个关闭按钮,当按下时结束应用程序。 + +```python +cbtn = wx.Button(pnl, label='Close', pos=(20, 20)) +``` + +一个 `wx.Button` 组件被创建。在组件的构造函数中,我们提供按钮的标签和按钮的在面板的位置。 + +```python +cbtn.Bind(wx.EVT_BUTTON, self.OnClose) +``` + +当我们点击按钮时触发 `wx.EVT_BUTTON` 事件,我们为事件处理器指定事件。 + +```python +def OnClose(self, e): + + self.Close(True) +``` + +在 `OnClose()` 方法中,我们使用 `Close()` 方法终止应用程序。 + +![wx.Button](assets/buttonwid.png) + +## wx.ToggleButton + +`wx.ToggleButton` 是一个具有两种状态的按钮:按下和未按下。 点击它可以在这两种状态之间切换。有些情况下这个功能很适用。 + +**toggle_buttons.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this code example, we create three +toggle button widgets. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + pnl = wx.Panel(self) + + self.col = wx.Colour(0, 0, 0) + + rtb = wx.ToggleButton(pnl, label='red', pos=(20, 25)) + gtb = wx.ToggleButton(pnl, label='green', pos=(20, 60)) + btb = wx.ToggleButton(pnl, label='blue', pos=(20, 100)) + + self.cpnl = wx.Panel(pnl, pos=(150, 20), size=(110, 110)) + self.cpnl.SetBackgroundColour(self.col) + + rtb.Bind(wx.EVT_TOGGLEBUTTON, self.ToggleRed) + gtb.Bind(wx.EVT_TOGGLEBUTTON, self.ToggleGreen) + btb.Bind(wx.EVT_TOGGLEBUTTON, self.ToggleBlue) + + self.SetSize((350, 250)) + self.SetTitle('Toggle buttons') + self.Centre() + + def ToggleRed(self, e): + + obj = e.GetEventObject() + isPressed = obj.GetValue() + + green = self.col.Green() + blue = self.col.Blue() + + if isPressed: + self.col.Set(255, green, blue) + else: + self.col.Set(0, green, blue) + + self.cpnl.SetBackgroundColour(self.col) + self.cpnl.Refresh() + + def ToggleGreen(self, e): + + obj = e.GetEventObject() + isPressed = obj.GetValue() + + red = self.col.Red() + blue = self.col.Blue() + + if isPressed: + self.col.Set(red, 255, blue) + else: + self.col.Set(red, 0, blue) + + self.cpnl.SetBackgroundColour(self.col) + self.cpnl.Refresh() + + def ToggleBlue(self, e): + + obj = e.GetEventObject() + isPressed = obj.GetValue() + + red = self.col.Red() + green = self.col.Green() + + if isPressed: + self.col.Set(red, green, 255) + else: + self.col.Set(red, green, 0) + + self.cpnl.SetBackgroundColour(self.col) + self.cpnl.Refresh() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +我们有红色,绿色和蓝色的切换按钮和一个面板。我们通过点击切换按钮来改变面板的颜色。 + +```python +rtb = wx.ToggleButton(pnl, label='red', pos=(20, 25)) +``` + +`wx.ToggleButton` 组件被创建。 + +```python +self.cpnl = wx.Panel(pnl, pos=(150, 20), size=(110, 110)) +self.cpnl.SetBackgroundColour(self.col) +``` + +这是一个面板,我们将使用切换按钮修改它的颜色。 + +```python +rtb.Bind(wx.EVT_TOGGLEBUTTON, self.ToggleRed) +``` + +当我们点击 `rtb` 切换按钮时,会调用 `ToggleRed()` 事件处理器。 + +```python +def ToggleRed(self, e): + + obj = e.GetEventObject() + isPressed = obj.GetValue() + + green = self.col.Green() + blue = self.col.Blue() + + if isPressed: + self.col.Set(255, green, blue) + else: + self.col.Set(0, green, blue) + + self.cpnl.SetBackgroundColour(self.col) +``` + +在 `ToggleRed()` 方法中,我们对 `rtb` 按钮被按下的事实做出了反应。我们计算颜色并更新颜色面板 colour panel 的颜色。 + +![Toggle buttons](assets/togglebuttons.png) + +## wx.StaticText + +wx.StaticText 组件显示一行或多行只读文本。 + +**static_text.py** + +```python +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this code example, we create a static text. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + txt1 = '''I'm giving up the ghost of love +in the shadows cast on devotion +She is the one that I adore +creed of my silent suffocation +Break this bittersweet spell on me +lost in the arms of destiny''' + + txt2 = '''There is something in the way +You're always somewhere else +Feelings have deserted me +To a point of no return +I don't believe in God +But I pray for you''' + + pnl = wx.Panel(self) + vbox = wx.BoxSizer(wx.VERTICAL) + + font = wx.Font(13, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, 'microsoft yahei ui') + + st1 = wx.StaticText(pnl, label=txt1, style=wx.ALIGN_LEFT) + st2 = wx.StaticText(pnl, label=txt2, style=wx.ALIGN_LEFT) + + st1.SetFont(font) + st2.SetFont(font) + + vbox.Add(st1, flag=wx.ALL, border=15) + vbox.Add(st2, flag=wx.ALL, border=15) + + pnl.SetSizer(vbox) + + self.SetTitle('Bittersweet') + self.Centre() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在这个例子中,我们使用 `wx.StaticText` 组件展示了两篇 Bittersweet 的诗。 + +```python +font = wx.Font(13, wx.DEFAULT, wx.NORMAL, wx.DEFAULT) +``` + +我们为文本创建一个字体对象。 + +```python + txt1 = '''I'm giving up the ghost of love +in the shadows cast on devotion +She is the one that I adore +creed of my silent suffocation +Break this bittersweet spell on me +lost in the arms of destiny''' +``` + +在 `wx.StaticText` 组件中会显示该字符串。 + +```python +st1 = wx.StaticText(pnl, label=txt1, style=wx.ALIGN_LEFT) +``` + +我们创建 `wx.StaticText` 组件。 文本将与左侧对齐。 + +```python +st1.SetFont(font) +st2.SetFont(font) +``` + +我们使用 `SetFont()` 为静态文本设置字体。 + +![wx.StaticText](assets/statictext.png) + +## wx.StaticLine + +这个组件在窗口上显示一个简单的线条。 它可以是水平的或垂直的。 + +**static_line.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this code example, we create a static line. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + pnl = wx.Panel(self) + + font = wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.BOLD) + heading = wx.StaticText(self, label='The Central Europe', + pos=(25, 15), size=(200, -1)) + heading.SetFont(font) + + wx.StaticLine(self, pos=(25, 50), size=(300,1)) + + wx.StaticText(self, label='Slovakia', pos=(25, 80)) + wx.StaticText(self, label='Hungary', pos=(25, 100)) + wx.StaticText(self, label='Poland', pos=(25, 120)) + wx.StaticText(self, label='Czech Republic', pos=(25, 140)) + wx.StaticText(self, label='Germany', pos=(25, 160)) + wx.StaticText(self, label='Slovenia', pos=(25, 180)) + wx.StaticText(self, label='Austria', pos=(25, 200)) + wx.StaticText(self, label='Switzerland', pos=(25, 220)) + + wx.StaticText(self, label='5 445 000', pos=(250, 80)) + wx.StaticText(self, label='10 014 000', pos=(250, 100)) + wx.StaticText(self, label='38 186 000', pos=(250, 120)) + wx.StaticText(self, label='10 562 000', pos=(250, 140)) + wx.StaticText(self, label='81 799 000', pos=(250, 160)) + wx.StaticText(self, label='2 050 000', pos=(250, 180)) + wx.StaticText(self, label='8 414 000', pos=(250, 200)) + wx.StaticText(self, label='7 866 000', pos=(250, 220)) + + wx.StaticLine(self, pos=(25, 260), size=(300,1)) + + tsum = wx.StaticText(self, label='164 336 000', pos=(240, 280)) + sum_font = tsum.GetFont() + sum_font.SetWeight(wx.BOLD) + tsum.SetFont(sum_font) + + btn = wx.Button(self, label='Close', pos=(140, 310)) + + btn.Bind(wx.EVT_BUTTON, self.OnClose) + + self.SetSize((360, 380)) + self.SetTitle('wx.StaticLine') + self.Centre() + + def OnClose(self, e): + + self.Close(True) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +脚本显示中欧国家及其人口。 `wx.StatLine` 使它看起来更具视觉吸引力。 + +```python +wx.StaticLine(self, pos=(25, 50), size=(300,1)) +``` + +这是 `wx.StaticLine` 的构造函数 + +![wx.StaticLine](assets/staticline.png) + +## wx.StaticBox + +这是一种装饰组件。 它用于对各种组件进行逻辑分组。 请注意,这个组件必须在其包含的组件之前创建,并且这些包含的组件应该是静态框的兄弟,而不是孩子。 + +```python +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + pnl = wx.Panel(self) + + wx.StaticBox(pnl, label='Personal Info', pos=(5, 5), size=(240, 170)) + wx.CheckBox(pnl, label='Male', pos=(15, 30)) + wx.CheckBox(pnl, label='Married', pos=(15, 55)) + wx.StaticText(pnl, label='Age', pos=(15, 95)) + wx.SpinCtrl(pnl, value='1', pos=(55, 90), size=(60, -1), min=1, max=120) + + btn = wx.Button(pnl, label='Ok', pos=(90, 185), size=(60, -1)) + + btn.Bind(wx.EVT_BUTTON, self.OnClose) + + self.SetSize((270, 250)) + self.SetTitle('Static box') + self.Centre() + self.Show(True) + + def OnClose(self, e): + + self.Close(True) + + +def main(): + + ex = wx.App() + Example(None) + ex.MainLoop() + + +if __name__ == '__main__': + main() +``` + +我们有一个 `wx.StaticBox` 来装饰其他四个组件。 + +![Static box](assets/staticbox.png) + +## wx.ComboBox + +`wx.ComboBox` 组合框,是单行文本字段、带有向下箭头图像的按钮和列表框 listbox 的组合。当你按下按钮时,出现一个列表框。 用户只能从提供的字符串列表中选择一个选项。 + +```python +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + pnl = wx.Panel(self) + + distros = ['Ubuntu', 'Arch', 'Fedora', 'Debian', 'Mint'] + cb = wx.ComboBox(pnl, pos=(50, 30), choices=distros, + style=wx.CB_READONLY) + + self.st = wx.StaticText(pnl, label='', pos=(50, 140)) + cb.Bind(wx.EVT_COMBOBOX, self.OnSelect) + + self.SetSize((250, 230)) + self.SetTitle('wx.ComboBox') + self.Centre() + self.Show(True) + + def OnSelect(self, e): + + i = e.GetString() + self.st.SetLabel(i) + +def main(): + + ex = wx.App() + Example(None) + ex.MainLoop() + +if __name__ == '__main__': + main() +``` + +组合框 combo box 中选中的选项在下面标签中显示。 + +```python +distros = ['Ubuntu', 'Arch', 'Fedora', 'Debian', 'Mint'] +``` + +组合框将包含这个字符串列表。 + +```python +cb = wx.ComboBox(pnl, pos=(50, 30), choices=distros, + style=wx.CB_READONLY) +``` + +一个 `wx.ComboBox` 组件被创建。选项参数是字符串列表,用于组合框的显示。 `wx.CB_READONLY` 样式使列表中的字符串为只读。 + +```python +cb.Bind(wx.EVT_COMBOBOX, self.OnSelect) +``` + +当我们从组合框中选择一个选项时,会触发 `wx.EVT_COMBOBOX` 事件。 我们将 `OnSelect()` 事件处理器插入此事件。 + +```python +def OnSelect(self, e): + + i = e.GetString() + self.st.SetLabel(i) +``` + +我们从组合框中获取所选项目并将其设置到标签。 + +![wx.ComboBox](assets/combobox.png) + +## wx.CheckBox + +`wx.CheckBox` 是一个具有两种状态的组件:on 和 off。 这是一个带有标签的盒子。 标签可以设置在框的右侧或左侧。 如果 `wx.CheckBox` 被选中,它将在框中用勾号表示。 + +**checkbox.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example we create a checkbox widget. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + pnl = wx.Panel(self) + + vbox = wx.BoxSizer(wx.HORIZONTAL) + + cb = wx.CheckBox(pnl, label='Show title') + cb.SetValue(True) + cb.Bind(wx.EVT_CHECKBOX, self.ShowOrHideTitle) + + vbox.Add(cb, flag=wx.TOP|wx.LEFT, border=30) + + pnl.SetSizer(vbox) + + self.SetTitle('wx.CheckBox') + self.Centre() + + def ShowOrHideTitle(self, e): + + sender = e.GetEventObject() + isChecked = sender.GetValue() + + if isChecked: + self.SetTitle('wx.CheckBox') + else: + self.SetTitle('') + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在上面的例子中,我们使用 `wx.CheckBox` 组件显示或隐藏窗口标题。 + +```python +cb = wx.CheckBox(pnl, label='Show title') +``` + +这是 `wx.CheckBox` 组件的构造函数。 + +```python +cb.SetValue(True) +``` + +该框架的标题默认显示,我们使用 `SetValue()` 方法设置 `wx.CheckBox` 组件勾选状态。 + +```python +cb.Bind(wx.EVT_CHECKBOX, self.ShowOrHideTitle) +``` + +当我们点击 `wx.CheckBox` 组件时,会触发 `wx.EVT_CHECKBOX` 事件。 `ShowOrHideTitle()` 事件处理器在此事件中被调用。 + +```python +def ShowOrHideTitle(self, e): + + sender = e.GetEventObject() + isChecked = sender.GetValue() + + if isChecked: + self.SetTitle('wx.CheckBox') + else: + self.SetTitle('') +``` + +在 `ShowOrHideTitle()` 方法中,我们根据 `wx.CheckBox` 小组件的状态显示或隐藏标题。 + +![wx.CheckBox](assets/checkbox.png) + +## wx.StatusBar + +`wx.StatusBar` 组件用于显示应用程序状态信息。它可以分为几个部分来显示信息。我们可以将其他组件插入到 `wx.StatusBar`。 它可以用作对话框的替代方案,因为对话框经常被滥用,大多数用户不喜欢。 我们可以通过两种方式创建一个 `wx.StatusBar` 。我们可以手动创建我们自己的 `wx.StatusBar` 并调用 `SetStatusBar()` 方法,或者我们可以简单地调用 `CreateStatusBar()` 方法。后一种方法为我们创建一个默认的 `wx.StatusBar` 。 + +```python +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + pnl = wx.Panel(self) + + button = wx.Button(pnl, label='Button', pos=(20, 20)) + text = wx.CheckBox(pnl, label='CheckBox', pos=(20, 90)) + combo = wx.ComboBox(pnl, pos=(120, 22), choices=['Python', 'Ruby']) + slider = wx.Slider(pnl, 5, 6, 1, 10, (120, 90), (110, -1)) + + pnl.Bind(wx.EVT_ENTER_WINDOW, self.OnWidgetEnter) + button.Bind(wx.EVT_ENTER_WINDOW, self.OnWidgetEnter) + text.Bind(wx.EVT_ENTER_WINDOW, self.OnWidgetEnter) + combo.Bind(wx.EVT_ENTER_WINDOW, self.OnWidgetEnter) + slider.Bind(wx.EVT_ENTER_WINDOW, self.OnWidgetEnter) + + self.sb = self.CreateStatusBar() + + self.SetSize((250, 230)) + self.SetTitle('wx.Statusbar') + self.Centre() + self.Show(True) + + def OnWidgetEnter(self, e): + + name = e.GetEventObject().GetClassName() + self.sb.SetStatusText(name + ' widget') + e.Skip() + +def main(): + + ex = wx.App() + Example(None) + ex.MainLoop() + +if __name__ == '__main__': + main() +``` + +在我们的例子中,我们有一个 `wx.Frame` 组件和其他五个组件。如果我们将鼠标指针悬停到组件上,它的名字将显示在 `wx.StatusBar`。 + +```python +pnl.Bind(wx.EVT_ENTER_WINDOW, self.OnWidgetEnter) +``` + +如果我们进入组件的区域,会生成 `EVT_ENTER_WINDOW` 事件。 + +```python +self.sb = self.CreateStatusBar() +``` + +使用 `CreateStatusBar()` 方法创建状态栏。 + +```python +def OnWidgetEnter(self, e): + + name = e.GetEventObject().GetClassName() + self.sb.SetStatusText(name + ' widget') + e.Skip() +``` + +在 `OnWidgetEnter()` 方法内部,我们找出鼠标指针进入的组件的名称。我们使用 `SetStatusText()` 方法设置状态的文本。 + +![StatusBar](assets/statusbar.png) + +## wx.RadioButton + +`wx.RadioButton` 是一个允许用户从一组选项中选择单个相互排斥的选项的组件。一组单选按钮由该组中的第一个包含 `wx.RB_GROUP` 样式的单选按钮定义。所有其他的在第一个单选按钮之后的定义的单选按钮会被添加到第一个单选按钮的功能组中。用 `wx.RB_GROUP` 标志声明另一个单选按钮将创建一个新的单选按钮组。 + +```python +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + pnl = wx.Panel(self) + + self.rb1 = wx.RadioButton(pnl, label='Value A', pos=(10, 10), + style=wx.RB_GROUP) + self.rb2 = wx.RadioButton(pnl, label='Value B', pos=(10, 30)) + self.rb3 = wx.RadioButton(pnl, label='Value C', pos=(10, 50)) + + self.rb1.Bind(wx.EVT_RADIOBUTTON, self.SetVal) + self.rb2.Bind(wx.EVT_RADIOBUTTON, self.SetVal) + self.rb3.Bind(wx.EVT_RADIOBUTTON, self.SetVal) + + self.sb = self.CreateStatusBar(3) + + self.sb.SetStatusText("True", 0) + self.sb.SetStatusText("False", 1) + self.sb.SetStatusText("False", 2) + + self.SetSize((210, 210)) + self.SetTitle('wx.RadioButton') + self.Centre() + self.Show(True) + + def SetVal(self, e): + + state1 = str(self.rb1.GetValue()) + state2 = str(self.rb2.GetValue()) + state3 = str(self.rb3.GetValue()) + + self.sb.SetStatusText(state1, 0) + self.sb.SetStatusText(state2, 1) + self.sb.SetStatusText(state3, 2) + +def main(): + + ex = wx.App() + Example(None) + ex.MainLoop() + +if __name__ == '__main__': + main() +``` + +我们有一个由三个单选按钮组成的组。 每一个单选按钮的状态会显示在状态栏中。 + +```python +self.rb1 = wx.RadioButton(pnl, label='Value A', pos=(10, 10), + style=wx.RB_GROUP) +self.rb2 = wx.RadioButton(pnl, label='Value B', pos=(10, 30)) +self.rb3 = wx.RadioButton(pnl, label='Value C', pos=(10, 50)) +``` + +我们创建三个单选按钮。 第一个单选按钮具有 `wx.RB_GROUP` 样式集。 它启动一个新的单选按钮组。 + +```python +self.rb1.Bind(wx.EVT_RADIOBUTTON, self.SetVal) +``` + +我们将 `wx.EVT_RADIOBUTTON` 事件绑定到 `SetVal()` 事件处理器。 + +```python +self.sb = self.CreateStatusBar(3) + +self.sb.SetStatusText("True", 0) +self.sb.SetStatusText("False", 1) +self.sb.SetStatusText("False", 2) +``` + +我们创建一个包含三个字段的状态栏 statusbar。我们使用单选按钮的状态初始化状态栏的文本设置。 + +```python +def SetVal(self, e): + + state1 = str(self.rb1.GetValue()) + state2 = str(self.rb2.GetValue()) + state3 = str(self.rb3.GetValue()) + + self.sb.SetStatusText(state1, 0) + self.sb.SetStatusText(state2, 1) + self.sb.SetStatusText(state3, 2) +``` + +在 `SetVal()` 方法内部,我们找出单选按钮的状态。我们将状态栏字段更新为当前单选按钮的值。 + +![wx.RadioButton](assets/radiobutton.png) + +## wx.Gauge + +`wx.Gauge` 是我们处理冗长任务时使用的一个组件,它的指示,一直在显示任务的当前状态。 + +**gauge_wid.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example we create gauge widget. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + +TASK_RANGE = 50 + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.timer = wx.Timer(self, 1) + self.count = 0 + + self.Bind(wx.EVT_TIMER, self.OnTimer, self.timer) + + pnl = wx.Panel(self) + vbox = wx.BoxSizer(wx.VERTICAL) + hbox1 = wx.BoxSizer(wx.HORIZONTAL) + hbox2 = wx.BoxSizer(wx.HORIZONTAL) + hbox3 = wx.BoxSizer(wx.HORIZONTAL) + + self.gauge = wx.Gauge(pnl, range=TASK_RANGE, size=(250, -1)) + self.btn1 = wx.Button(pnl, wx.ID_OK) + self.btn2 = wx.Button(pnl, wx.ID_STOP) + self.text = wx.StaticText(pnl, label='Task to be done') + + self.Bind(wx.EVT_BUTTON, self.OnOk, self.btn1) + self.Bind(wx.EVT_BUTTON, self.OnStop, self.btn2) + + hbox1.Add(self.gauge, proportion=1, flag=wx.ALIGN_CENTRE) + hbox2.Add(self.btn1, proportion=1, flag=wx.RIGHT, border=10) + hbox2.Add(self.btn2, proportion=1) + hbox3.Add(self.text, proportion=1) + + vbox.Add((0, 30)) + + vbox.Add(hbox1, flag=wx.ALIGN_CENTRE) + + vbox.Add((0, 20)) + + vbox.Add(hbox2, proportion=1, flag=wx.ALIGN_CENTRE) + vbox.Add(hbox3, proportion=1, flag=wx.ALIGN_CENTRE) + + pnl.SetSizer(vbox) + + self.SetTitle('wx.Gauge') + self.Centre() + + def OnOk(self, e): + + if self.count >= TASK_RANGE: + return + + self.timer.Start(100) + self.text.SetLabel('Task in Progress') + + def OnStop(self, e): + + if self.count == 0 or self.count >= TASK_RANGE or not self.timer.IsRunning(): + return + + self.timer.Stop() + self.text.SetLabel('Task Interrupted') + + def OnTimer(self, e): + + self.count = self.count + 1 + self.gauge.SetValue(self.count) + + if self.count == TASK_RANGE: + + self.timer.Stop() + self.text.SetLabel('Task Completed') + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +我们有一个测量仪 gauge 和两个按钮。一个按钮启动仪表,另一个按钮停止仪表。 + +```python +self.timer = wx.Timer(self, 1) +self.count = 0 +``` + +我们使用 `wx.Timer` 以特定的时间间隔执行代码。我们将在那些时刻更新仪表。count 变量用于确定任务已完成的部分。 + +```python +self.gauge = wx.Gauge(pnl, range=TASK_RANGE, size=(250, -1)) +``` + +这是 `wx.Gauge` 组件的构造函数。range 参数设置组件的最大整数值。 + +``` +def OnOk(self, e): + + if self.count >= TASK_RANGE: + return + + self.timer.Start(100) + self.text.SetLabel('Task in Progress') +``` + +当我们点击 OK 按钮时, `OnOk()` 方法被调用。我们首先检查 count 变量是否在任务的范围内。如果不是,我们从方法返回。如果任务未完成,我们启动计时器并更新静态文本。 + +```python +def OnStop(self, e): + + if self.count == 0 or self.count >= TASK_RANGE or not self.timer.IsRunning(): + return + + self.timer.Stop() + self.text.SetLabel('Task Interrupted') +``` + +当我们点击停止按钮时, `OnStop()` 方法被调用。 我们检查停止任务的条件。如果条件满足,我们停止计时器并更新静态文本。 + +```python +def OnTimer(self, e): + + self.count = self.count + 1 + self.gauge.SetValue(self.count) + + if self.count == TASK_RANGE: + + self.timer.Stop() + self.text.SetLabel('Task Completed') +``` + +`OnTimer()` 方法在启动定时器后周期性地调用。在该方法中,我们更新了 count 变量和 gauge 组件。如果 count 变量等于 `TASK_RANGE` ,我们停止定时器并更新静态文本。 + +![wx.Gauge](assets/gauge.png) + +## wx.Slider + +`wx.Slider` 是一个具有简单滑柄的组件。 这个滑柄可以来回拉动。这样我们可以选择一个特定的任务。 + +**slider_wid.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example we create slider control. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + pnl = wx.Panel(self) + + sizer = wx.GridBagSizer(5, 5) + + sld = wx.Slider(pnl, value=200, minValue=150, maxValue=500, + style=wx.SL_HORIZONTAL) + + sld.Bind(wx.EVT_SCROLL, self.OnSliderScroll) + sizer.Add(sld, pos=(0, 0), flag=wx.ALL|wx.EXPAND, border=25) + + self.txt = wx.StaticText(pnl, label='200') + sizer.Add(self.txt, pos=(0, 1), flag=wx.TOP|wx.RIGHT, border=25) + + sizer.AddGrowableCol(0) + pnl.SetSizer(sizer) + + self.SetTitle('wx.Slider') + self.Centre() + + def OnSliderScroll(self, e): + + obj = e.GetEventObject() + val = obj.GetValue() + + self.txt.SetLabel(str(val)) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在滑块中选择的值显示在静态文本中。 + +```python +sld = wx.Slider(pnl, value=200, minValue=150, maxValue=500, + style=wx.SL_HORIZONTAL) +``` + +一个 `wx.Slider` 被创建。我们使用 `minValue` 和 `maxValue` 参数为滑块的初始位置提供最小值和最大滑块位置。 `wx.SL_HORIZONTAL` 使滑块水平。 + +```python +sld.Bind(wx.EVT_SCROLL, self.OnSliderScroll) +``` + +遇到 `wx.EVT_SCROLL` 事件时,`OnSliderScroll()` 方法会调用。 + +```python +self.txt = wx.StaticText(pnl, label='200') +``` + +当前选定的滑块的值显示在放置于滑块下方的静态文本中。 + +```python +def OnSliderScroll(self, e): + + obj = e.GetEventObject() + val = obj.GetValue() + + self.txt.SetLabel(str(val)) +``` + +在 `OnSliderScroll()` 方法中,我们获取事件的 sender 。 我们得到滑块的当前值,并将其设置到静态文本。 + +![wx.Slider](assets/slider.png) + +## wx.SpinCtrl + +`wx.SpinCtrl` 组件可以让我们增加和减少值。 + +**spin_ctrl.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example we create spin control. + +author: Jan Bodnar +website: www.zetcode.com +last modified: April 2018 +""" + +import wx + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + pnl = wx.Panel(self) + + sizer = wx.GridBagSizer(5, 5) + + st1 = wx.StaticText(pnl, label='Convert Fahrenheit temperature to Celsius') + sizer.Add(st1, pos=(0, 0), span=(1, 2), flag=wx.ALL, border=15) + + st2 = wx.StaticText(pnl, label='Fahrenheit:') + sizer.Add(st2, pos=(1, 0), flag=wx.ALL | wx.ALIGN_CENTER, border=15) + + self.sc = wx.SpinCtrl(pnl, value='0') + self.sc.SetRange(-459, 1000) + + sizer.Add(self.sc, pos=(1, 1), flag=wx.ALIGN_CENTER) + + st3 = wx.StaticText(pnl, label='Celsius:') + sizer.Add(st3, pos=(2, 0), flag=wx.ALL|wx.ALIGN_RIGHT, border=15) + + self.celsius = wx.StaticText(pnl, label='') + sizer.Add(self.celsius, pos=(2, 1), flag=wx.ALL, border=15) + + computeButton = wx.Button(pnl, label='Compute') + computeButton.SetFocus() + sizer.Add(computeButton, pos=(3, 0), flag=wx.ALIGN_RIGHT|wx.TOP, border=30) + + closeButton = wx.Button(pnl, label='Close') + sizer.Add(closeButton, pos=(3, 1), flag=wx.ALIGN_LEFT|wx.TOP, border=30) + + computeButton.Bind(wx.EVT_BUTTON, self.OnCompute) + closeButton.Bind(wx.EVT_BUTTON, self.OnClose) + + pnl.SetSizer(sizer) + + self.SetTitle('wx.SpinCtrl') + self.Centre() + + def OnClose(self, e): + + self.Close(True) + + def OnCompute(self, e): + + fahr = self.sc.GetValue() + cels = round((fahr - 32) * 5 / 9.0, 2) + self.celsius.SetLabel(str(cels)) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +该脚本将华氏温度转换为摄氏温度。我们使用 `wx.SpinCtrl` 组件为华氏温度选择一个值。 + +```python +self.sc = wx.SpinCtrl(pnl, value='0') +self.sc.SetRange(-459, 1000) +``` + +我们创建一个初始值为 0 的 `wx.SpinCtrl` 组件,`SetRange()` 为组件设置值的范围。 + +```python +def OnCompute(self, e): + + fahr = self.sc.GetValue() + cels = round((fahr - 32) * 5 / 9.0, 2) + self.celsius.SetLabel(str(cels)) +``` + +当我们点击计算按钮时,`OnCompute()` 方法被调用。在该方法的主体中,我们从 spin 控件中获得当前值。我们计算摄氏温度并将静态文本组件设置为计算后的温度。 + +![wx.SpinCtrl](assets/spinctrl.png) + +wxPython教程的这一部分专注于 wxPython 的核心组件。 \ No newline at end of file diff --git "a/8.\351\253\230\347\272\247\347\273\204\344\273\266.md" "b/8.\351\253\230\347\272\247\347\273\204\344\273\266.md" new file mode 100644 index 0000000..0c84d2e --- /dev/null +++ "b/8.\351\253\230\347\272\247\347\273\204\344\273\266.md" @@ -0,0 +1,1072 @@ +# Advanced widgets in wxPython + +在本章中,我们将讨论以下高级组件: `wx.ListBox` , `wx.html.HtmlWindow` , `wx.ListCtrl` 。 + +wxPython 有几个众所周知的高级组件。 例如:tree widget、HTML window、grid widget、listbox widget、list widget 或具有高级样式功能的编辑器。 + +## wx.ListBox widget + +`wx.ListBox` 用于显示和处理项目列表。一个 `wx.ListBox` 可以创建两种不同的状态:单一选择状态或多选状态。 单选是默认状态。 + +在 `wx.ListBox` 中有两个重要的事件。第一个是 `wx.EVT_COMMAND_LISTBOX_SELECTED` 事件,当我们在 `wx.ListBox` 选中一个项目时会产生这个事件。第二个是 `wx.EVT_COMMAND_LISTBOX_DOUBLE_CLICKED` 事件。 当我们在 `wx.ListBox` 中双击一个项目时会生成。元素从零开始编号。如果需要,滚动条会自动显示。 + +**listbox.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example, we create a wx.ListBox widget. + +author: Jan Bodnar +website: www.zetcode.com +last modified: May 2018 +""" + +import wx + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + panel = wx.Panel(self) + hbox = wx.BoxSizer(wx.HORIZONTAL) + + self.listbox = wx.ListBox(panel) + hbox.Add(self.listbox, wx.ID_ANY, wx.EXPAND | wx.ALL, 20) + + btnPanel = wx.Panel(panel) + vbox = wx.BoxSizer(wx.VERTICAL) + newBtn = wx.Button(btnPanel, wx.ID_ANY, 'New', size=(90, 30)) + renBtn = wx.Button(btnPanel, wx.ID_ANY, 'Rename', size=(90, 30)) + delBtn = wx.Button(btnPanel, wx.ID_ANY, 'Delete', size=(90, 30)) + clrBtn = wx.Button(btnPanel, wx.ID_ANY, 'Clear', size=(90, 30)) + + self.Bind(wx.EVT_BUTTON, self.NewItem, id=newBtn.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnRename, id=renBtn.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnDelete, id=delBtn.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnClear, id=clrBtn.GetId()) + self.Bind(wx.EVT_LISTBOX_DCLICK, self.OnRename) + + vbox.Add((-1, 20)) + vbox.Add(newBtn) + vbox.Add(renBtn, 0, wx.TOP, 5) + vbox.Add(delBtn, 0, wx.TOP, 5) + vbox.Add(clrBtn, 0, wx.TOP, 5) + + btnPanel.SetSizer(vbox) + hbox.Add(btnPanel, 0.6, wx.EXPAND | wx.RIGHT, 20) + panel.SetSizer(hbox) + + self.SetTitle('wx.ListBox') + self.Centre() + + def NewItem(self, event): + + text = wx.GetTextFromUser('Enter a new item', 'Insert dialog') + if text != '': + self.listbox.Append(text) + + def OnRename(self, event): + + sel = self.listbox.GetSelection() + text = self.listbox.GetString(sel) + renamed = wx.GetTextFromUser('Rename item', 'Rename dialog', text) + + if renamed != '': + self.listbox.Delete(sel) + item_id = self.listbox.Insert(renamed, sel) + self.listbox.SetSelection(item_id) + + def OnDelete(self, event): + + sel = self.listbox.GetSelection() + if sel != -1: + self.listbox.Delete(sel) + + def OnClear(self, event): + self.listbox.Clear() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +该示例显示如何从 `wx.ListBox` 中添加、修改和删除项目。 + +```python +self.listbox = wx.ListBox(panel) +hbox.Add(self.listbox, wx.ID_ANY, wx.EXPAND | wx.ALL, 20) +``` + +我们创建一个空的 `wx.ListBox`,我们在列表框周围放置了一个 20px 的 border。 + +```python +self.Bind(wx.EVT_LISTBOX_DCLICK, self.OnRename) +``` + +我们使用 `OnRename()`方法,用 `wx.EVT_LISTBOX_DCLICK` 绑定器 event binder,绑定了一个 `wx.EVT_COMMAND_LISTBOX_DOUBLE_CLICKED` 事件类型 event type。这样,如果我们双击列表框中的特定元素,将显示一个重命名对话框。 + +```python +def NewItem(self, event): + + text = wx.GetTextFromUser('Enter a new item', 'Insert dialog') + if text != '': + self.listbox.Append(text) +``` + +我们通过点击 New 按钮来调用 `NewItem()` 方法。此方法使用包装器 `wx.GetTextFromUser()` 方法显示`wx.TextEntryDialog`。我们输入的文本返回到文本变量。如果文本不是空的,我们使用 `Append()` 方法将它附加到列表框中。 + +```python +if renamed != '': + self.listbox.Delete(sel) + item_id = self.listbox.Insert(renamed, sel) + self.listbox.SetSelection(item_id) +``` + +我们通过删除它并在同一位置插入一个新项目来重命名一个项目。 我们还将选中的项目设置为要修改的项目。 + +```python +def OnDelete(self, event): + + sel = self.listbox.GetSelection() + if sel != -1: + self.listbox.Delete(sel) +``` + +要删除一个项目,我们调用 `GetSelection()` 方法找到选中的项目的索引。然后我们用 `Delete()` 方法删除该项目。 该方法的参数是选中项目的索引。 + +```python +def OnClear(self, event): + self.listbox.Clear() +``` + +最简单的事情是清除整个列表框。 我们只需调用 `Clear()` 方法。 + +![wx.ListBox widget](assets/listbox2.png) + +## wx.html.HtmlWindow widget + +`wx.html.HtmlWindow` 组件显示HTML页面。 它不是一个完整的浏览器。 我们可以用 `wx.html.HtmlWindow` 组件做一些有趣的事情。 + +例如在下面的程序中,我们创建一个显示基本统计数据的窗口。 + +**page.html** + +```python + + + + + + + + + + + + + + + + + + + + + + + + +
  Maximum  9000
  Mean  6076
  Minimum  3800
  Median  6000
  Standard Deviation  6076
+ + +``` + +这是要显示的HTML页面。 + +**htmlwin.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example, we create a wx.html.HtmlWindow widget. + +author: Jan Bodnar +website: www.zetcode.com +last modified: May 2018 +""" + +import wx +import wx.html + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + panel = wx.Panel(self) + + vbox = wx.BoxSizer(wx.VERTICAL) + hbox = wx.BoxSizer(wx.HORIZONTAL) + + htmlwin = wx.html.HtmlWindow(panel, wx.ID_ANY, style=wx.NO_BORDER) + htmlwin.SetStandardFonts() + htmlwin.LoadPage("page.html") + + vbox.Add((-1, 10), 0) + vbox.Add(htmlwin, 1, wx.EXPAND | wx.ALL, 9) + + bitmap = wx.StaticBitmap(panel, wx.ID_ANY, wx.Bitmap('newt.png')) + hbox.Add(bitmap, 0, wx.LEFT | wx.BOTTOM | wx.TOP, 10) + btnOk = wx.Button(panel, wx.ID_ANY, 'Ok') + + self.Bind(wx.EVT_BUTTON, self.OnClose, id=btnOk.GetId()) + + hbox.Add((100, -1), 1, wx.EXPAND | wx.ALIGN_RIGHT) + hbox.Add(btnOk, flag=wx.TOP | wx.BOTTOM | wx.RIGHT, border=10) + vbox.Add(hbox, 0, wx.EXPAND) + + panel.SetSizer(vbox) + + self.SetTitle('Basic statistics') + self.Centre() + + def OnClose(self, event): + self.Close() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +该示例显示了 `wx.html.HtmlWindow` 组件中的 HTML 文件。 + +```python +htmlwin = wx.html.HtmlWindow(panel, wx.ID_ANY, style=wx.NO_BORDER) +htmlwin.SetStandardFonts() +htmlwin.LoadPage("page.html") +``` + +`wx.html.HtmlWindow` 被创建。HTML文件使用 `LoadPage()` 方法加载。 + +![img](assets/htmlwin.png) + +## Help window + +我们可以使用 `wx.html.HtmlWindow` 在我们的应用程序中提供帮助。我们可以创建一个独立的窗口,或者我们可以创建一个将成为应用程序一部分的窗口。以下脚本将使用后一种方法创建一个帮助窗口。 + +**helpwindow.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example, we create a help window window +with wx.html.HtmlWindow. + +author: Jan Bodnar +website: www.zetcode.com +last modified: May 2018 +""" + +import wx +import wx.html as html + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + toolbar = self.CreateToolBar() + toolbar.AddTool(1, 'Exit', wx.Bitmap('exit.png')) + toolbar.AddTool(2, 'Help', wx.Bitmap('help.png')) + toolbar.Realize() + + self.splitter = wx.SplitterWindow(self) + self.panelLeft = wx.Panel(self.splitter, wx.ID_ANY, style=wx.BORDER_SUNKEN) + + self.panelRight = wx.Panel(self.splitter) + vbox2 = wx.BoxSizer(wx.VERTICAL) + header = wx.Panel(self.panelRight, wx.ID_ANY) + + header.SetBackgroundColour('#6f6a59') + header.SetForegroundColour('white') + + hbox = wx.BoxSizer(wx.HORIZONTAL) + + st = wx.StaticText(header, wx.ID_ANY, 'Help') + font = st.GetFont() + font.SetFamily(wx.FONTFAMILY_ROMAN) + font.SetPointSize(11) + st.SetFont(font) + + hbox.Add(st, 1, wx.TOP | wx.BOTTOM | wx.LEFT, 8) + + closeBtn = wx.BitmapButton(header, wx.ID_ANY, wx.Bitmap('closebutton.png', + wx.BITMAP_TYPE_PNG), style=wx.NO_BORDER) + closeBtn.SetBackgroundColour('#6f6a59') + + hbox.Add(closeBtn, 0, wx.TOP|wx.BOTTOM, 8) + header.SetSizer(hbox) + + vbox2.Add(header, 0, wx.EXPAND) + + helpWin = html.HtmlWindow(self.panelRight, style=wx.NO_BORDER) + helpWin.LoadPage('help.html') + + vbox2.Add(helpWin, 1, wx.EXPAND) + + self.panelRight.SetSizer(vbox2) + self.panelLeft.SetFocus() + + self.splitter.SplitVertically(self.panelLeft, self.panelRight) + self.splitter.Unsplit() + + self.Bind(wx.EVT_BUTTON, self.CloseHelp, id=closeBtn.GetId()) + self.Bind(wx.EVT_TOOL, self.OnClose, id=1) + self.Bind(wx.EVT_TOOL, self.OnHelp, id=2) + + self.panelLeft.Bind(wx.EVT_KEY_DOWN, self.OnKeyPressed) + self.panelLeft.SetFocus() + + self.CreateStatusBar() + + self.SetTitle('Help') + self.Centre() + + def OnClose(self, e): + self.Close() + + def OnHelp(self, e): + + self.splitter.SplitVertically(self.panelLeft, self.panelRight) + self.panelLeft.SetFocus() + + def CloseHelp(self, e): + + self.splitter.Unsplit() + self.panelLeft.SetFocus() + + def OnKeyPressed(self, e): + + keycode = e.GetKeyCode() + print(keycode) + + if keycode == wx.WXK_F1: + + self.splitter.SplitVertically(self.panelLeft, self.panelRight) + self.panelLeft.SetFocus() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +帮助窗口在开始时隐藏。 我们可以通过点击工具栏上的帮助按钮或按 F1 来显示它。帮助窗口出现在应用程序的右侧。 要隐藏帮助窗口,请单击关闭按钮。 + +```python +self.splitter.SplitVertically(self.panelLeft, self.panelRight) +self.splitter.Unsplit() +``` + +我们创建从左到右的面板并垂直分割它们。 之后,我们调用 `Unsplit()` 方法。 该方法默认隐藏右侧或底部面板。 + +我们将右面板分成两部分:标题 header 和面板的主体 body 。标题是一个可调整的 `wx.Panel`。标题由一个静态文本和一个位图按钮 bitmap button 组成。我们把 `wx.html.Window` 放到面板的主体中。 + +```python +closeBtn = wx.BitmapButton(header, wx.ID_ANY, wx.Bitmap('closebutton.png', + wx.BITMAP_TYPE_PNG), style=wx.NO_BORDER) +closeBtn.SetBackgroundColour('#6f6a59') +``` + +位图按钮的 style 被设置为 `wx.NO_BORDER`。背景颜色设置为标题面板的颜色,这么做是为了让按钮显示为标题的一部分。 + +```python +helpWin = html.HtmlWindow(self.panelRight, style=wx.NO_BORDER) +helpWin.LoadPage('help.html') +``` + +我们在右侧面板上创建一个 `wx.html.HtmlWindow` 组件。在一个单独的文件中有我们自己的HTML代码。这次我们调用 `LoadPage()` 方法来获取HTML代码。 + +```python +self.panelLeft.Bind(wx.EVT_KEY_DOWN, self.OnKeyPressed) +self.panelLeft.SetFocus() +``` + +我们将焦点 focus 放在左侧面板上。我们可以用 F1 键启动帮助窗口。为了用键盘控制窗口,它必须有焦点。如果我们没有设定焦点,我们将不得不先点击面板,然后才能通过按F1键启动帮助窗口。 + +```python +def OnHelp(self, e): + + self.splitter.SplitVertically(self.panelLeft, self.panelRight) + self.panelLeft.SetFocus() +``` + +为了显示帮助窗口,我们调用 `OnHelp()` 方法。 它垂直分割两个面板。 我们一定不能忘记要再次设定焦点,因为最初的焦点会因分割而失去。 + +以下是我们在应用程序中加载的 HTML 文件。 + +**help.html** + +```python + + + + +

Table of Contents

+ + + +

+ +

Basic Statistics
+Overview of elementary concepts in statistics. +Variables. Correlation. Measurement scales. Statistical significance. +Distributions. Normality assumption. + +

+ +

+ +

Advanced Statistics
+Overview of advanced concepts in statistics. Anova. Linear regression. +Estimation and hypothesis testing. +Error terms. + +

+ +

+ +

Introducing Newt
+Introducing the basic functionality of the Newt application. Creating sheets. +Charts. Menus and Toolbars. Importing data. Saving data in various formats. +Exporting data. Shortcuts. List of methods. + +

+ +

+ +

Charts
+Working with charts. 2D charts. 3D charts. Bar, line, box, pie, range charts. +Scatterplots. Histograms. + +

+ +

+ +

Predicting values
+Time series and forecasting. Trend Analysis. Seasonality. Moving averages. +Univariate methods. Multivariate methods. Holt-Winters smoothing. +Exponential smoothing. ARIMA. Fourier analysis. + +

+ +

+ +

Neural networks
+Overview of neural networks. Biology behind neural networks. +Basic artificial Model. Training. Preprocessing. Postprocessing. +Types of neural networks. + +

+ +

+ +

Glossary
+Terms and definitions in statistics. + +

+ + + +``` + +该 HTML 文件包含应用程序帮助的目录。 + +![img](assets/helpwindow.png) + +## wx.ListCtrl widget + +`wx.ListCtrl` 是项目列表的图形表示。 一个 `wx.ListBox` 只能有一列。`wx.ListCtrl` 可以有多个列。`wx.ListCtrl` 是一个非常常用和有用的组件。 例如文件管理器使用 `wx.ListCtrl` 来显示文件系统上的目录和文件。 CD 刻录机应用程序在 `wx.ListCtrl` 显示要刻录的文件。 + +`wx.ListCtrl` 可以以三种不同的格式使用:列表视图 list view、报告视图 report view 或图标视图 icon view。 这些格式由 `wx.ListCtrl` 窗口样式控制。 `wx.LC_REPORT`,`wx.LC_LIST` 和 `wx.LC_ICON` 。 + +## wx.ListCtrl styles + +- wx.LC_LIST +- wx.LC_REPORT +- wx.LC_VIRTUAL +- wx.LC_ICON +- wx.LC_SMALL_ICON +- wx.LC_ALIGN_LEFT +- wx.LC_EDIT_LABELS +- wx.LC_NO_HEADER +- wx.LC_SORT_ASCENDING +- wx.LC_SORT_DESCENDING +- wx.LC_HRULES +- wx.LC_VRULES + +### Simple example + +第一个例子展示了 `wx.ListCtrl` 一些基本功能。 + +**actresses.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example, we create a simple +wx.ListCtrl widget. + +author: Jan Bodnar +website: www.zetcode.com +last modified: May 2018 +""" + +import wx + +data = [('Jessica Alba', 'Pomona', '1981'), ('Sigourney Weaver', 'New York', '1949'), + ('Angelina Jolie', 'los angeles', '1975'), ('Natalie Portman', 'Jerusalem', '1981'), + ('Rachel Weiss', 'London', '1971'), ('Scarlett Johansson', 'New York', '1984' )] + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + hbox = wx.BoxSizer(wx.HORIZONTAL) + panel = wx.Panel(self) + + self.list = wx.ListCtrl(panel, wx.ID_ANY, style=wx.LC_REPORT) + self.list.InsertColumn(0, 'name', width=140) + self.list.InsertColumn(1, 'place', width=130) + self.list.InsertColumn(2, 'year', wx.LIST_FORMAT_RIGHT, 90) + + idx = 0 + + for i in data: + + index = self.list.InsertItem(idx, i[0]) + self.list.SetItem(index, 1, i[1]) + self.list.SetItem(index, 2, i[2]) + idx += 1 + + hbox.Add(self.list, 1, wx.EXPAND) + panel.SetSizer(hbox) + + self.SetTitle('Actresses') + self.Centre() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +代码示例在 `wx.ListCtrl` 中展示了关于女演员的数据。 + +```python +self.list = wx.ListCtrl(panel, wx.ID_ANY, style=wx.LC_REPORT) +``` + +我们用 `wx.LC_REPORT` 风格创建一个`wx.ListCtrl`。 + +```python +self.list.InsertColumn(0, 'name', width=140) +self.list.InsertColumn(1, 'place', width=130) +self.list.InsertColumn(2, 'year', wx.LIST_FORMAT_RIGHT, 90) +``` + +我们插入三列。我们可以指定列的 `width` 和列的 `format`。 默认格式是 `wx.LIST_FORMAT_LEFT`。 + +```python +idx = 0 + +for i in data: + + index = self.list.InsertItem(idx, i[0]) + self.list.SetItem(index, 1, i[1]) + self.list.SetItem(index, 2, i[2]) + idx += 1 +``` + +我们使用两种方法将数据插入到 `wx.ListCtrl`。 每行都以 `InsertItem()` 方法开始。该方法的第一个参数指定行号。 该方法返回行索引。`SetItem()` 方法将数据添加到当前行的连续列。 + +### Mixins + +`Mixins` 是进一步增强 `wx.ListCtrl` 功能的类。它们位于 `wx.lib.mixins.listctrl` 模块中。 为了使用它们,我们必须从这些类继承。 + +有六个 mixins: + +- wx.ColumnSorterMixin +- wx.ListCtrlAutoWidthMixin +- wx.ListCtrlSelectionManagerMix +- wx.TextEditMixin +- wx.CheckListCtrlMixin +- wx.ListRowHighlighter + +`wx.ColumnSorterMixin` 可以在报告视图中对列进行排序。 + +`wx.ListCtrlAutoWidthMixin` 自动将最后一列的大小调整到 `wx.ListCtrl` 的末尾。默认情况下,最后一列不占用剩余空间。 见前面的例子。 + +`wx.ListCtrlSelectionManagerMix` 定义了独立于平台的选择策略。 + +`wx.TextEditMixin` enables text to be edited + +`wx.CheckListCtrlMixin` 为每一行添加一个复选框 check box 。这样我们可以控制行。我们可以设置每一行为选中状态或未选中。 + +`wx.ListRowHighlighter` 处理 `wx.ListCtrl` 中交替行的自动背景高亮。 + +### wx.lib.mixins.listctrl.ListCtrlAutoWidthMixin + +以下代码显示了我们如何使用 `wx.lib.mixins.listctrl.ListCtrlAutoWidthMixin` + +**autowidth.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example, we use wx.lib.mixins.listctrl.ListCtrlAutoWidthMixin +with a wx.ListBox. + +author: Jan Bodnar +website: www.zetcode.com +last modified: May 2018 +""" + +import wx +import wx.lib.mixins.listctrl + +data = [('Jessica Alba', 'Pomona', '1981'), ('Sigourney Weaver', 'New York', '1949'), + ('Angelina Jolie', 'Los Angeles', '1975'), ('Natalie Portman', 'Jerusalem', '1981'), + ('Rachel Weiss', 'London', '1971'), ('Scarlett Johansson', 'New York', '1984')] + + +class AutoWidthListCtrl(wx.ListCtrl, wx.lib.mixins.listctrl.ListCtrlAutoWidthMixin): + + def __init__(self, parent, *args, **kw): + wx.ListCtrl.__init__(self, parent, wx.ID_ANY, style=wx.LC_REPORT) + wx.lib.mixins.listctrl.ListCtrlAutoWidthMixin.__init__(self) + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + hbox = wx.BoxSizer(wx.HORIZONTAL) + + panel = wx.Panel(self) + + self.list = AutoWidthListCtrl(panel) + self.list.InsertColumn(0, 'name', width=140) + self.list.InsertColumn(1, 'place', width=130) + self.list.InsertColumn(2, 'year', wx.LIST_FORMAT_RIGHT, 90) + + idx = 0 + + for i in data: + + index = self.list.InsertItem(idx, i[0]) + self.list.SetItem(index, 1, i[1]) + self.list.SetItem(index, 2, i[2]) + idx += 1 + + hbox.Add(self.list, 1, wx.EXPAND) + panel.SetSizer(hbox) + + self.SetTitle('Actresses') + self.Centre() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +我们稍微改变了点前面的例子。 + +```python +import wx.lib.mixins.listctrl +``` + +这里我们导入 mixin 模块。 + +```python +class AutoWidthListCtrl(wx.ListCtrl, wx.lib.mixins.listctrl.ListCtrlAutoWidthMixin): + + def __init__(self, parent, *args, **kw): + wx.ListCtrl.__init__(self, parent, wx.ID_ANY, style=wx.LC_REPORT) + wx.lib.mixins.listctrl.ListCtrlAutoWidthMixin.__init__(self) +``` + +我们创建一个新的 `AutoWidthListCtrl` 类。 这个类继承自 `wx.ListCtrl` 和 `wx.lib.mixins.listctrl.ListCtrlAutoWidthMixin`。 这称为多重继承。最后一列将自动调整占据到 `wx.ListCtrl` 的剩余宽度。 + +### wx.lib.mixins.listctrl.ColumnSorterMixin + +以下示例创建可排序的列。如果我们单击列标题,则列中的相应行将被排序。 + +**sorted.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example, we create sortable columns with +wx.lib.mixins.listctrl.ColumnSorterMixin + +author: Jan Bodnar +website: www.zetcode.com +last modified: May 2018 +""" + +import wx +import wx.lib.mixins.listctrl + +actresses = { +1 : ('Jessica Alba', 'Pomona', '1981'), +2 : ('Sigourney Weaver', 'New York', '1949'), +3 : ('Angelina Jolie', 'Los Angeles', '1975'), +4 : ('Natalie Portman', 'Jerusalem', '1981'), +5 : ('Rachel Weiss', 'London', '1971'), +6 : ('Scarlett Johansson', 'New York', '1984') +} + + +class SortedListCtrl(wx.ListCtrl, wx.lib.mixins.listctrl.ColumnSorterMixin): + + def __init__(self, parent): + + wx.ListCtrl.__init__(self, parent, wx.ID_ANY, style=wx.LC_REPORT) + wx.lib.mixins.listctrl.ColumnSorterMixin.__init__(self, len(actresses)) + self.itemDataMap = actresses + + def GetListCtrl(self): + return self + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + hbox = wx.BoxSizer(wx.HORIZONTAL) + panel = wx.Panel(self) + + self.list = SortedListCtrl(panel) + self.list.InsertColumn(0, 'name', width=140) + self.list.InsertColumn(1, 'place', width=130) + self.list.InsertColumn(2, 'year', wx.LIST_FORMAT_RIGHT, 90) + + items = actresses.items() + + idx = 0 + + for key, data in items: + + index = self.list.InsertItem(idx, data[0]) + self.list.SetItem(index, 1, data[1]) + self.list.SetItem(index, 2, data[2]) + self.list.SetItemData(index, key) + idx += 1 + + hbox.Add(self.list, 1, wx.EXPAND) + panel.SetSizer(hbox) + + self.SetTitle('Actresses') + self.Centre() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +我们将再次使用女演员的例子。 + +```python +wx.lib.mixins.listctrl.ColumnSorterMixin.__init__(self, len(actresses)) +``` + +`wx.lib.mixins.listctrl.ColumnSorterMixin` 接受一个参数:要排序的列数。 + +```python +self.itemDataMap = actresses +``` + +我们必须将我们要显示在列表控件中的数据映射到 `itemDataMap` 属性。 数据必须是字典数据类型。 + +```python +def GetListCtrl(self): + return self +``` + +我们必须创建一个 `GetListCtrl()` 方法。 此方法返回要排序的 `wx.ListCtrl` 组件。 + +```python +self.list.SetItemData(index, key) +``` + +我们必须将每一行与一个特定的索引结合起来。 这是用 `SetItemData` 方法完成的。 + +## wx.lib.mixins.listctrl.CheckListCtrl + +复选框 check box 可以放在列表控件中。在 wxPython 中,我们可以使用 `wx.lib.mixins.listctrl.CheckListCtrl`。 + +**repository.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example, we create a check list control widget. + +author: Jan Bodnar +website: www.zetcode.com +last modified: May 2018 +""" + +import wx +from wx.lib.mixins.listctrl import CheckListCtrlMixin, ListCtrlAutoWidthMixin + +packages = [('abiword', '5.8M', 'base'), ('adie', '145k', 'base'), + ('airsnort', '71k', 'base'), ('ara', '717k', 'base'), ('arc', '139k', 'base'), + ('asc', '5.8M', 'base'), ('ascii', '74k', 'base'), ('ash', '74k', 'base')] + +class CheckListCtrl(wx.ListCtrl, CheckListCtrlMixin, ListCtrlAutoWidthMixin): + + def __init__(self, parent): + wx.ListCtrl.__init__(self, parent, wx.ID_ANY, style=wx.LC_REPORT | + wx.SUNKEN_BORDER) + CheckListCtrlMixin.__init__(self) + ListCtrlAutoWidthMixin.__init__(self) + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + panel = wx.Panel(self) + + vbox = wx.BoxSizer(wx.VERTICAL) + hbox = wx.BoxSizer(wx.HORIZONTAL) + + leftPanel = wx.Panel(panel) + rightPanel = wx.Panel(panel) + + self.log = wx.TextCtrl(rightPanel, style=wx.TE_MULTILINE|wx.TE_READONLY) + self.list = CheckListCtrl(rightPanel) + self.list.InsertColumn(0, 'Package', width=140) + self.list.InsertColumn(1, 'Size') + self.list.InsertColumn(2, 'Repository') + + idx = 0 + + for i in packages: + + index = self.list.InsertItem(idx, i[0]) + self.list.SetItem(index, 1, i[1]) + self.list.SetItem(index, 2, i[2]) + idx += 1 + + vbox2 = wx.BoxSizer(wx.VERTICAL) + + selBtn = wx.Button(leftPanel, label='Select All') + desBtn = wx.Button(leftPanel, label='Deselect All') + appBtn = wx.Button(leftPanel, label='Apply') + + self.Bind(wx.EVT_BUTTON, self.OnSelectAll, id=selBtn.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnDeselectAll, id=desBtn.GetId()) + self.Bind(wx.EVT_BUTTON, self.OnApply, id=appBtn.GetId()) + + vbox2.Add(selBtn, 0, wx.TOP|wx.BOTTOM, 5) + vbox2.Add(desBtn, 0, wx.BOTTOM, 5) + vbox2.Add(appBtn) + + leftPanel.SetSizer(vbox2) + + vbox.Add(self.list, 4, wx.EXPAND | wx.TOP, 3) + vbox.Add((-1, 10)) + vbox.Add(self.log, 1, wx.EXPAND) + vbox.Add((-1, 10)) + + rightPanel.SetSizer(vbox) + + hbox.Add(leftPanel, 0, wx.EXPAND | wx.RIGHT, 5) + hbox.Add(rightPanel, 1, wx.EXPAND) + hbox.Add((3, -1)) + + panel.SetSizer(hbox) + + self.SetTitle('Repository') + self.Centre() + + def OnSelectAll(self, event): + + num = self.list.GetItemCount() + for i in range(num): + self.list.CheckItem(i) + + def OnDeselectAll(self, event): + + num = self.list.GetItemCount() + for i in range(num): + self.list.CheckItem(i, False) + + def OnApply(self, event): + + num = self.list.GetItemCount() + + for i in range(num): + + if i == 0: self.log.Clear() + + if self.list.IsChecked(i): + self.log.AppendText(self.list.GetItemText(i) + '\n') + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +该示例使用 `wx.lib.mixins.listctrl.CheckListCtrl` 创建一个UI 仓库 repository。 + +```python +class CheckListCtrl(wx.ListCtrl, CheckListCtrlMixin, ListCtrlAutoWidthMixin): + + def __init__(self, parent): + wx.ListCtrl.__init__(self, parent, wx.ID_ANY, style=wx.LC_REPORT | + wx.SUNKEN_BORDER) + CheckListCtrlMixin.__init__(self) + ListCtrlAutoWidthMixin.__init__(self) +``` + +我们从三个不同的类继承。 + +```python +def OnSelectAll(self, event): + + num = self.list.GetItemCount() + + for i in range(num): + self.list.CheckItem(i) +``` + +`OnSelectAll()` 方法选中所有复选框。 `GetItemCount()` 确定项目的数量,`CheckItem()` 方法勾选当前的复选框。 + +![img](assets/repository.png) + +在 wxPython 教程的这一部分,我们介绍了几个高级小部件,包括 `wx.ListBox` , `wx.html.HtmlWindow` 和 `wx.ListCtrl` 。 \ No newline at end of file diff --git "a/9.\346\213\226\346\224\276.md" "b/9.\346\213\226\346\224\276.md" new file mode 100644 index 0000000..09c304b --- /dev/null +++ "b/9.\346\213\226\346\224\276.md" @@ -0,0 +1,296 @@ +# Drag and drop in wxPython + +在计算机图形用户界面中,拖放是单击虚拟对象并将其拖动到不同位置或其他虚拟对象的动作(或支持动作)。 一般来说,它可以用来执行多种动作,或者在两个抽象对象之间创建各种类型的关联。 + +拖放操作使您能够直观地完成复杂的事情。 + +在拖放操作中,我们将一些数据从数据源拖动到数据目标。 所以我们必须有: + +- Some data +- A data source +- A data target + +在wxPython中,我们有两个预定义的数据目标: `wx.TextDropTarget` and `wx.FileDropTarget`. + +## wx.TextDropTarget + +`wx.TextDropTarget` 是处理文本数据的预定义放置目标。 + +**dragdrop_text.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example, we drag and drop text data. + +author: Jan Bodnar +website: www.zetcode.com +last modified: May 2018 +""" + +from pathlib import Path +import os +import wx + +class MyTextDropTarget(wx.TextDropTarget): + + def __init__(self, object): + + wx.TextDropTarget.__init__(self) + self.object = object + + def OnDropText(self, x, y, data): + + self.object.InsertItem(0, data) + return True + + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + splitter1 = wx.SplitterWindow(self, style=wx.SP_3D) + splitter2 = wx.SplitterWindow(splitter1, style=wx.SP_3D) + + home_dir = str(Path.home()) + + self.dirWid = wx.GenericDirCtrl(splitter1, dir=home_dir, + style=wx.DIRCTRL_DIR_ONLY) + + self.lc1 = wx.ListCtrl(splitter2, style=wx.LC_LIST) + self.lc2 = wx.ListCtrl(splitter2, style=wx.LC_LIST) + + dt = MyTextDropTarget(self.lc2) + self.lc2.SetDropTarget(dt) + + self.Bind(wx.EVT_LIST_BEGIN_DRAG, self.OnDragInit, id=self.lc1.GetId()) + + tree = self.dirWid.GetTreeCtrl() + + splitter2.SplitHorizontally(self.lc1, self.lc2, 150) + splitter1.SplitVertically(self.dirWid, splitter2, 200) + + self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelect, id=tree.GetId()) + + self.OnSelect(0) + + self.SetTitle('Drag and drop text') + self.Centre() + + def OnSelect(self, event): + + list = os.listdir(self.dirWid.GetPath()) + + self.lc1.ClearAll() + self.lc2.ClearAll() + + for i in range(len(list)): + + if list[i][0] != '.': + self.lc1.InsertItem(0, list[i]) + + def OnDragInit(self, event): + + text = self.lc1.GetItemText(event.GetIndex()) + tdo = wx.TextDataObject(text) + tds = wx.DropSource(self.lc1) + + tds.SetData(tdo) + tds.DoDragDrop(True) + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +在这个例子中,我们在 `wx.GenericDirCtrl` 中显示一个文件系统。所选目录的内容显示在右上方的列表控件中。 文件名可以拖放到右下角的列表控件中。 + +```python +def OnDropText(self, x, y, data): + + self.object.InsertItem(0, data) + return True +``` + +当我们将文本数据拖放到目标上时,将使用 `InsertItem()` 方法将数据插入到列表控件中。 + +```python +dt = MyTextDropTarget(self.lc2) +self.lc2.SetDropTarget(dt) +``` + +放置目标被创建。 我们使用 `SetDropTarget()` 方法将放置目标设置为第二个列表控件。 + +```python +self.Bind(wx.EVT_LIST_BEGIN_DRAG, self.OnDragInit, id=self.lc1.GetId()) +``` + +当拖动操作开始时,调用 `OnDragInit()` 方法。 + +```python +def OnDragInit(self, event): + + text = self.lc1.GetItemText(event.GetIndex()) + tdo = wx.TextDataObject(text) + tds = wx.DropSource(self.lc1) + ... +``` + +在 `OnDragInit()` 方法中,我们创建了一个 `wx.TextDataObject`,它包含我们的文本数据。 从第一个列表控件创建放置源 drop source。 + +```python +tds.SetData(tdo) +tds.DoDragDrop(True) +``` + +我们使用 `SetData()` 将数据设置到放置源,并使用 `DoDragDrop()` 启动拖放操作。 + +## wx.FileDropTarget + +`wx.FileDropTarget` 是一个放置目标,它接受从文件管理器拖动的文件。 + +**dragdrop_file.py** + +```python +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +ZetCode wxPython tutorial + +In this example, we drag and drop files. + +author: Jan Bodnar +website: www.zetcode.com +last modified: May 2018 +""" + +import wx + +class FileDrop(wx.FileDropTarget): + + def __init__(self, window): + + wx.FileDropTarget.__init__(self) + self.window = window + + def OnDropFiles(self, x, y, filenames): + + for name in filenames: + + try: + file = open(name, 'r') + text = file.read() + self.window.WriteText(text) + + except IOError as error: + + msg = "Error opening file\n {}".format(str(error)) + dlg = wx.MessageDialog(None, msg) + dlg.ShowModal() + + return False + + except UnicodeDecodeError as error: + + msg = "Cannot open non ascii files\n {}".format(str(error)) + dlg = wx.MessageDialog(None, msg) + dlg.ShowModal() + + return False + + finally: + + file.close() + + return True + +class Example(wx.Frame): + + def __init__(self, *args, **kw): + super(Example, self).__init__(*args, **kw) + + self.InitUI() + + def InitUI(self): + + self.text = wx.TextCtrl(self, style = wx.TE_MULTILINE) + dt = FileDrop(self.text) + + self.text.SetDropTarget(dt) + + self.SetTitle('File drag and drop') + self.Centre() + + +def main(): + + app = wx.App() + ex = Example(None) + ex.Show() + app.MainLoop() + + +if __name__ == '__main__': + main() +``` + +该示例创建一个简单的 `wx.TextCtrl`。 我们可以将文本文件从文件管理器拖到控件中。 + +```python +def OnDropFiles(self, x, y, filenames): + + for name in filenames: + ... +``` + +我们可以一次拖放多个文件。 + +```python +try: + file = open(name, 'r') + text = file.read() + self.window.WriteText(text) +``` + +我们以只读模式打开文件,获取其内容并将内容写入文本控制窗口。 + +```python +except IOError as error: + + msg = "Error opening file\n {}".format(str(error)) + dlg = wx.MessageDialog(None, msg) + dlg.ShowModal() + + return False +``` + +如果出现输入/输出错误,我们将显示消息对话框并终止操作。 + +```python +self.text = wx.TextCtrl(self, style = wx.TE_MULTILINE) +dt = FileDrop(self.text) + +self.text.SetDropTarget(dt) +``` + +`wx.TextCtrl` 是放置目标。 + +在本章中,我们使用 wxPython 进行了拖放操作。 \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..5893650 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# wxPython diff --git a/assets/1527417412183.png b/assets/1527417412183.png new file mode 100644 index 0000000000000000000000000000000000000000..0dc22c58d23cea6e3adfa22809556e044331f364 GIT binary patch literal 1970 zcmeH|UsTcu6vu!5sVp>g)=Zn4*|gSjGow;N4Q*x(v=USh&^pcn6OE-N0-CMO{%Cu! znu*R+ApQ`^%uEw#c{a1cKOuio@lRALf3yPGfRwS+j70rQd>N)cTWX?WvAj}cPACr=tdLBNmE|GO=eZ}1O{(Q zzxs%`Z#ZzzBfkdq`h&j;A*(ihRL*L;bs;v{IT7K#x%3YGBI{-bH9A%hzNAmthBgFBglSDf|FPD4I0HVrp3=f z9K=mgS!3a5jL%(KwkkEaj>;c{QS!><&8utOwGJizJL&HVp(ker8U1$m-Jqhz9cN(a*%p=E>H66pB%{nn!GtG0gIyy5xDe9A`FMAGR*cNrg1ao%AH&PIt8bRYk;sFGPhC zGKw#R78QUiC~>ofnbqw z1iL-xJ{zVLpBP9fX0jU^G(*~K0sW8Hu#l^Db^JrEtxy4ShQ)++ze`x>D~1e^AP~$UNj!Z$^(v0U>)2v;Qsf*fI=g{+9kfHZ}aL7Zh!7@qM@Qu;u?j5z2kRLBoaUfFm{p$2BU{;sD-=I|nSP*O!4{r(w=ysaaC^bXTJ%-s=e)KHy8>8K*H9 zM~iRA$zujY8WL++U@aE}_kZg68ZqIrs41ArPedKp$OhQ625)8F_2C31XV7N{F}r8q z#R??{G>`MEj9j!_Mm%LQqx+V-sb)#`YjM$IpOw+pA8jLMW_HkJro6UlJQUGh%}z#0 zZ05cM&1y`vXq=C4$0}>dE_T_nuRPDrUHApf*t%w;qW~|$7cc%~9t`zpCkN+1b)XtG zZ;|@?aB=tYr5GEN!|xR2KoOeKDMv+4rHW?nN_qRD*M+?C-s-aY(Zu}Y#~SHWqw88< zay7e}-Dn#lh%lB16NFl;vt7)a8+du4Vw8!@dThN@3V*GxuaiH2et3R+hf=Z)p&Qd} zz5!IWmcqY`jKr%{su36jh)Ew`x~|3zIOAbok_!jikWRpZ<#y3K{Q;*SM__Uog$hE} ztTBE9IF~0l0==Ed-vR5G@0Fhc{-u|#`0Sws4qW=%jQ@h(zugDYX3>Wu{4Yn)fgoKJ jr41{DKl#T$^oEe}u&66%_q!t7F9zcGAY+^1>8Jk$F5wiP literal 0 HcmV?d00001 diff --git a/assets/1527417584346.png b/assets/1527417584346.png new file mode 100644 index 0000000000000000000000000000000000000000..78f9762b9d4ef298f8a40b0a03333b778d060518 GIT binary patch literal 1833 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 literal 0 HcmV?d00001 diff --git a/assets/1527561810112.png b/assets/1527561810112.png new file mode 100644 index 0000000000000000000000000000000000000000..11cf9664f6a7fbdb82bc7b12282a56e07c7d1bd4 GIT binary patch literal 573 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 z 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

h@-cMyDHXEd9k? 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 N45}_)DQg<=e*kc>8XN!s literal 0 HcmV?d00001 diff --git a/assets/aline.png b/assets/aline.png new file mode 100644 index 0000000000000000000000000000000000000000..bc54c3132ae6b35e8043a43d065df7260eef6fe0 GIT binary patch literal 2723 zcmeHJ{a4ay7XO-!S)*pPO*!VvlrME=(^XQ_M0%l3mc*JmisV}(LKKP#fiEbuM{}G^ z9SBoV*+$K6H8Ec>M6oP0)5J72RKV0mDG~82DJrt`KkQF?=ALu!{d}J1+GaEVq5X4FCX3L?HYp05Hin;#G4qqs^<@0XMqM5LV}CL7tqFl)WB{;w z@l{PYKU&!u4_zsz(G++rIVO>iKp~Lgflxv`mPB(rMZ8QV`#EA0FVmukg!oubw}fO4 zlIm;>+4eQ$B7s7T1Gmc& zS;za+XW&)wQuOlezt>@KFsBMj>s>pA3WqwwQ}YK~T~t?#_q$k6{v20%{)hj3b3>K? z?@`Ya)pu|CwUNxcb_@@FBUI01GU$iY>7UNo zCr|X{G?JF=pJk2gHf6aesUoPQ*gKb5cen@E*TXQl>mt`izUvEY<0G`E%u^h*txn zl8zuEo$lYQ)y2})@-_tPz?ocZVq&6RGx|kEf5|Z&P~l>mx|kFZ0dv^oa;mqT`yTh3 zwQ+Vy2+XQNpcD0JUAKR;&BEEybV-*rg1pRc=>78bq&B`{uF>T<2bZ+Ozf!{ayd zOkaetG|N|ui?0hvEg`aapP(^|jJTGi1gUktHs&FO1r?dqA7N;8QlDJhf{(aRu~z9Y z(?k-Nj8j40v_(F6skyN?a#jkF_>+f5 zcuAAlWnB^6oBsNxL1^AF7_9x!{%bBSE}lm8=&`^eaM^vs_DMVGBVOFhxeLmSW1zn z;61jG?0P4EjbY1cO2_#XDH~%~$M1}#`0`P~!FYu@&6hfdW?_w>sI07SVPQe=QaEW* zp`l%xS!0h!G0)hT^vB#pukYPWbkWH4RO(1PPQG259W^NydpvjD@BhU0Q&Qb$jQVWZ` z{pyD3+iS^EiwxUneUdM`Sxm;IfhyjHY~TAfb#~PV3YJ+!{hY1|?X;mgS4|UIWk=~#cKlha!Wp~C8%sX_~%F1o#NL8E)QGLF& zNLteTi=g<8)z{7v?#JHJqh&%%H9DeL(%Y?){cavE+ikj7O_LW@R#qIo4tDjqoR0B zU_3*xVISyb7M+k#H?!S(JCi%O+jJ8UdcYC5yQ26DaBzn;@Q=-#nLABP{slk&|3)jw z<+O>E7Q@CGC{I<(W@XV???p6HWV-I7ZJTXfjO?Pxbx&Yr;z`Cg$FrHhx&6kjn41I6 wn>PJP|Ln&9b{HtE>86oL(c3kXr&eJ564#ZJ>O$LT{2c;_(@Ln7lIy&umAu6 literal 0 HcmV?d00001 diff --git a/assets/bars.jpg b/assets/bars.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ab0a0fafdb30bc52759dd2ad96140d762052deb2 GIT binary patch literal 8135 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 literal 0 HcmV?d00001 diff --git a/assets/base.jpg b/assets/base.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a0a24c7d1e71e99b83efdfa24821fc44ef4972c8 GIT binary patch literal 9508 zcmeHrRajijwrwLpgA?4{Aq01KcWX#+YaAMf00GhjcTI3;+$~rLF2SXd#z}z20t7;U z!#-!9z5jc^eICv|_u)R=wZ66H{A!LdYSyf(hpNZr$4vmfnv$v#00{{RVEXg|9=8A_ zivCXa0Dz_@fCB&kU_5E&%%cO83sls>oXSqR|10a z3N{X2-r%UB#x^z)IXxp=J72$+)-O-J5dWqBzbEpyR)T+K^`EUUz;hI&r~FX}0MY>X zjs+(_1OSfp0QZJPD*E~m$Nm7fr~LTRvBtk*KG@*rkS)(OrqQa%W$&9TEc9wX8&WJO z=0_5MYN~fYDmc4;h`~2JubNz@QUCk9o*h#;A8RqyY=$_LKZ!QF2HphzvGlD9Yby^q+KRcSFyBlIdoMy z^L*y-cDCxTVd|(0)=WyLD_)MflW9SqxiX?TAdH&&@0O$cFX5TL^8PAobAO%47JC1` zfTv0H8Ny|PM9j7DF8)J%-9#CY7Vrp&?nx74<^$^k8E>KRJK@lL4(fLoyqVYz|DMCV z$er(gtKUJc%ZUa=l-|niU*{64^ zhGl%%8Xy)T6_f95T=Jn0co-frnQ=fHD*g1{qS~bO;Xk~6VOj{*+3~ew_;amBCLE64 zIxi6g+33s$L-UtBP1(86B`FT%rt{=>l7zBuaIy56B;H}Esq1-tV<`r}_)9a!nT$@q zpE8#)DJPbgiY9rSfhT(Q@z73i9yC!H7otK}lt13Mywg_c1N*=v5RZT^wLv2rhC>2^ z9+DB^8?Mh);6JAX7qLg-D;5wM@h#Vf(mksX7+QIi<9%x)?@saGZK-j6fx^WONb29i z;+VVIJVJAamWIF9KRI`{CayYOJcx{4oBLBoat*>Sr5YH$Fb)OwFzKB%&sskd7>M+|^ zLl~h@f}Z3YHI(t@a^8+u+i&WyG%ZQfj;*ARkDUf9-2V|Ea_(`1lIU@QGw{hlzy+Fg zCIWTF#m7g&eFXeCeFSJdbeZ86!J<<*@TuYbRaZ_L8nrFt<^Ybu4OE!<2ptVlt*U(= zI3SM^zP>T{dh5Q%>b51chINv$mz&<|Fyl$$x4D#bo6N!Y1%HHHvoQay>-vOCfL)1x zMfbMY=xFJ6&Ekrb^w2?!1*gNYOFI7RcnQUHhER=8vs*$%BEF0(0fWtWgt{{XSEWG~ z%^4&6$mKy@1Hl>9D42EqfY)kyzbtf=u`FlafG>;<@_S)vWa4@sP+G{{p_$0@Qw1lxnCnZa>1e@)q{N7|6IRssDuOi!=5mHkEMDVTOs zmGdI+>JdS5a&C4U<|=ieySIyrK6c1%yWd-NyE7Z#Az_x7wqX~@#+d=P0o%JDIV<_Z zUDDGN@$EYqGe!|>i4zt;b>Gt$AM}Gkx1?ZNP&aAl)#}dzM;=8GcRGl>u3spfxw^iv z8aht<%lO1@!d#f=>zQZ`PVMEN6mV5^HOpdSfEQt;5e;~ZQ17MtCi9W zh4&H5FT96V0va0MYz#n6)*7la(s@UBIoMgD>@XY`zS1&B-=x+qN9$wFP*@zz;NABo z&elSepSk#6xG+I;)&4fEmx-AP>np3uc6wvmsC;vDiAvkP+tsD(9sMf}9gR6WdM}u{ zQQe;VQu~0T2X+?)?Q*CBn^3KGxa<=CWObE0Y&+L%39~k&tfjvd8{c{9>pH}zLr`2d zP{gwMi$tFAv>g&_kSxaoiBzqS2TjTt>$AB^rgSV4P68>zQ`o&41Jzk#O)5H$8yy%A zE=0V=oKTY+I3qbZQ^mPK@z_LMH45qd=?oA}g5n-ko;p_pWJO4pdZ>S$5SQFKf7%c&3?u#)UWR$L9--eWYx zj9)yUX3~@7Z5yLp&S=TR)8rOa$cUm>36sa6n06;fMv#{?ouye~!VIRSD3%skt7@`hemU1l0>SF(fkTw5N%aj}*K3Y*o0W6-qku2z?Y=a(}$5&ijx zzIKv1n+F5SyK)dkrMB;$!G3<`1Si6UQRo^sYay-fcu+H=>4a2CUtdiPt}Cx0DX3T} zqh~YDCVafuMQMBh-7&+dC&R0_rDR2%hn-^-_z>1i<-W6he_!)N%A{$$OXhueN}d1v~!qRW4Yr7_7-*?D2}rcGHXgs z+(Fkq%t(0qLejTWAfhwL*Q26Il}8UbOES-Nr2k&siR()#eOafmRadklhJSTm^+qe8Vlyq#yX=lMwjLSjP&^Y=@j>?5}aZ zN-6^hM)U01qaa%~&B}Uv2|L(%1||ZDSqd3po?`1TsZMZAvIqjhhTQr$EJ_B&bE>-^cE=R z*wuHWnND&}c)?^00c$v}v!vH67u5=L zEX3`aPZl?i%k7b4{-Crhe?%XlbUkqQE?pQg9A_7H$!DQxuO27%u*HDn8M zFjg1RRm%L?>LUF_K?I|&QGM8;oL5w^n6h%~w3T0sFU)e^fFh(57o8J9oOxd6&L4T!+!4JFPC%{%8-?U+VHd+0zb!)1h`|>`Vja&% zbC{N1#%9>BRF%9hp9iLqKv(ez#3= z3baB1rcdXtVci1Z;DX?Y^f8OFkO>f)MlTXyGS2|5i9aYNm{Qs`!p6Vw)6%eF)+*+< z|0sCzrK|$R#HIR?s9q(1+ijnCj??i?5+kY?38_7-($h)Vw57P>f?bfkgvKqCQk3!) zrjo)|j*Bb28CEIw!D!rI)e$nGccE~nao}%YKHSJnK%nPtvP5j^G1=k!Lc=UhRnz$> z#;6Yqxlw87G6>~Cs~XMM<@(hd0m8j6d#xvK{WM*rQUeYzhhx(!(*{>?z|;gJ2%0dZ zjgwWgp@oV(z3B#WK{mM>j>d@QLoELKq}CCYM2L+B^}T3>?ufgq23s|%jMKGks9AI^ z{?=BZrtI12I((ixN*L4Tr;D8ftzihc?J3+Okxc*gW;k;D&+p0B9|i(j^M0Q;@q6%b z;1mv<_noGG0py07+;oh+o{DZa5g*~7md(T*^I~(Nz^9+k@2Bxr&fOOktBpACzcJoZ zOP?KaO#9@a1O^Tas6?k;ccSGrMa7;QI=Q25ZEfMFtULnn`n$9^pkn;c@-N6VI_tY< zKPX3Bf*TG?>Z+&s(J(2QIidDRitqv(_xQ^?mK0-r`C^KBj{Dg5qA_mkS2#8NIqGbh zEYMMoPTAv`8q3DW$DJOP5_J;*Y)qejjlEy0orv_qvk4-KaGoj zm@ln<7v`C%5eQ-i(fyjVOe}S`axZQ)n#BuV_#68AH_mvoizdxq@yF@Sk#NC4sr2rU zo=7hQ#hmhA@yL51x((XPoNijRjb5iGdP}ts%!j3VA~@uS!Gf_`lk}JG@}XO`0c`8N zlQfcRl$X$C&(`?)*GSodflB#Xy}zpiadG}g(D{dUJ2X&A2cCRhX|xHjyQqp}RLG0M zT;J2eS~q5u1HJ*WtLfB2Crgs}ls@qm;UjJ0^bv=n1ljA7DUyVCR#M324%+-WMFKp$ zScpLn77pesqibe|l?0_%BN{b(r)O9ZuT{fP5=T^S zkS%93CK5TyHTE2Y#q$FDr~s7Td@7tzJ!1bbep(?? zYTowhTvdE8F-BwyS}zN)@})PZmDM?cZ;=wf&(F_eVk`}fgPfj;x7qrxZNZ1x!)~On zaM1RjrpVYHr$p-JsO_@!5wJ)h&Ih9ZH4N-6<$b81c5^8sm;?9dF_#NtD+o2ZrwrdT*qE;XDG$LnHRC_Xy0YW#aLH zjE25&3|e^=kJw9$-4}`IeZ;W|88rppwdgA=IEp^eWT@bt(cI|Yi-3cv?-|PY?R?Kl zOA{`E?8mq7kuTPWT2yH)fI4Z7Z$CNdm~y7El@vRDXQzp+&7AQOh!3Hav6A&6%XUmt zn5N_Ux@{#Z`&#@5{(3t~k9bV?8G4itNj?b@+J*2P@M*iTFU5}Jsi+xJnOB^idAI>^ z;4}}CL4mk}C*PgngI&54?HMyFzAi3IjTJ@E`0B&TA_zNxpu)Mfdwv=TPVlr3{Es9} z9ElAL-M5iw*9UHI9&r9p$Q5jPV((<|=-g$^6Jhx95Aly?Z6`P{q98koulI$ydIjmh z(&cww%61_3kl3dq!Et2prFewzr5`OdcU9h{2efHEl=;Hu7IE976@c_3$3No2be7l z9;Ncx&GRLiW<<<~#y~Ua=DBp3cU<1P)o)p22aX8Q!6`Y!!GxW6GiIHc-@uTmBsVS0 z@kndgf1I_n_)b$4ST52r0{ndYq1G>9F3)0@XCrvXSX?IOs@zq=E_HV1zAWLtBkgj@ z;MeOP#$k(#{|LZVzRvLq`e)YE|Lp6nWEr z77EpL^ET)akwvx(MNAmhSDP((uV?LG3Dxupoa5SURC99Gym}BTK;uiF!|&` zv9V#C);oA-Pnm>#p>}PHxp*Qg(LMqKeY*bjoH)hxZx%Tz6&(gN{>CM3qMh}vbNh=ytjz|eA>3eNY>GkKH} z>UC!>eMqF20FMA*yT7vk`6=GFt!Wce;&;s9`h$bJ4liLSQO z8xaZW`#*t~%{1~Om+UyS`*;VZ=fQ!h2-zYx`!!tx`1H=PTKJ!S&ppO=2`WK6^qA0m zhhD_1unF3EF%<;qy*H2a?{G-iM1a!UtC?b@@Y%MkrxT8c^CWo~@64>xoppjcAfmf> zXc-!YF}s?~?iQ_FP=Y#J$*sbuI09V7?-YNgbca?tdPux~8T7VfHs&K)9K|;Ykr4~I z4C$+qr4a6&C{?b33Ln+qlPO6xM3?+_i|cOH0=-woFCDCtuZU?)IeiWt>f`)fs(%}^ zJ~Q0`DPcE{^Q7TdYV4gjIK9$ZeoY+BKY%UTzp}){a}-rtL`@x6PD;ogXeSE876y3) zqY$ONb5*>_iRIG`&t7#|WsN>1y~kytuSFQAJ735iQ5fu``|YWMf%%7$Z}asBxk{ICX-GbnitzsUSMJfCj80As3{sb#u-umT$5z+f-L8qYthx< z8c0Mi+I*M8^jZTbVkD|@I31s#5CWG4UaXd98tWa5@G`)uc>I=Akn#&;UiI(I8vZ4_QM zJ6?PTFda(~QUh$bSt~y$t8WgxjEJb31M}3t!*|N0VMV~s2#7;KtuLM$qvJ=*3bhXP zAVRc?ox9H7H}sO`MNt^b7?Rb)5KHson;wgOA=(wrg%nDgAk`Y`}oFFUS=3(ZsMutEX<~L@uDb+ z*)~~CT`51fCP+WmevPXkZ%wWWU>jgChjMWt>JvY?hxsY`ta3*%r?e{0c3{pNti&<( z&ql<>NisTy$WpI^QpwG;{1d}GUpY$65;d|X91Lw@aF^7sTZ1}=e^CNOT7L@Y+gFub zzK?KcJ&w3}*q)k#GsH*Sq;Jm?>bl_Z0&@Nm|dZEPwbl;aj_HnT>3{`Q9-LVvck zy(sZB<|-#q!cMwaElv=rF)~%GF@V#$r9Im?HzTcAnZy5#uP}8S)zQ2BWe<1KXOc&Z zxVb2CU?e2Blzm8O!8|!Bs`vH6x1RIkQ&&XXRQ@ux{5WZ4zE_(f(@oHHmM_T6Tsd!>n&7lljpm`^wIr8&JBmh`!PRB z>P9(vkXcRla~A{U%u&M6og02X+P_h$gN#b+i&th=&to|Yk;;j8mKve@cYx_wZqhw8 zo60Pw4*|Mqeql^p$A;P1X-nbek~1;DWrg;iPWPp zls_B)qay_eF^f3W`{f1g$@2wn_mg-GvyJTe+UUYug4!HP$)9?-M-Y&{5a$>>pdg(z=R!uTt58{qiJ z^Y~GXcSE0NrAgB5H(oIga&M8?0+cV9e{YEKwENxKwPi<9%~>1rR&;Qf zVd>b6F(iqmtK<-5$RNUd*!YJo%{5f)8`_G-l&>jNTA?NfZAzy7r?6Dw`FgHXp=MEY=kszJ0}*l6k5Afn*RhOZ~0-p_W>V3+1(_d9eL> zkX4e$T|vwB5^OTVGe1jnQBD_=-X-;qm$c8cMY^%2ve!sDt5VGu1wBQsZ#pHd>l7Rd zB9(rs^coo{S(UZ9y0?6uxrX5@%F(gjLMnTbJ>Z0qbxPCZtCdvU-kqQJQfgncU5i}L zvE0Q{_gG({+)v5i{cynV#HNgGaV8N^YJKk}o4@0?D!vo)hEn2`xJc5O`zx*JMHSB` zz6hmYRTt69)kp&gZaU8NTwyJngR0J8ZEn-*^DLlYPh+<-yyDQ@=6Ohq2}Pj-Pw_>( zJ5Jw9Z!-})Xo_VL^ltlWNAvqKtRuhUt2tnNohujkaKg-M$6K{qeRDJ8&lSUddzVV} zEIBgk$gp0Om!5SRn-Qzf@QyiIas47r!pn;8i$inE(RaLBG3m>VsmkK~;oXI{1Q?X$B9 znTd3wPL*qN`&j()CeUU<>#E?#^0G;h$nlEW&(@a?^y47~yX_mT6E=#)_6LYIwhP(M zQ1eXA{!k!$yLS)jH)GqM8dnyqNdH~LzLxjrnp?sRia9p>iakF&7w8{O#I>z&{T z7}T>su2)~TkS>q2;rhvh7+Xo;^m(=8ghH_{5topWgbr!5Y^rE{IoNzFhs6bpcs94T zA6l}=yWI(yi86LPSNlc#_zL^>C2KaT#cWNjh+Ptz=5$Ncbx#t1Bd^d=Lw388Pa<>T zG+8g^fwE5R#vhIFB(mI6OS3rkhHXjIcDP!=UMm|xPVCKKtql$RLaoDO;sQJ#mE?ub znbGMA?JXa5j07{Vbh){Snu6j2mCX%*#I{qyYEsQ*`Cm2GS%q|i{op{$rp}=ws|E*? z`oUzHPges=QE_#l&^ulzwZS2k{IVqPa=w=7%pFTE_B4fn`S`3O=wQsehrj2Zr z_H!&}q&51vbY+aHC<%caIw^c=803slt};kpQ;FQre2g`rkmd|L+&%DxDlkdt+#M0z z+SPlGpuNvCzjh{F*+!W!t3`VFYJ6BMTc2m$6OV-Qz>|D4R6uR}d(gUf?LvBH?h%07 zSc9H&uC0(Zz21A%*)CCd=YM6+kDZoE<0X4|pl*FJJfcvx&?Z;q86(UZX!iAToX0De z2$(Zz_D)8yO6EI2@2erF)I0Vnj^>bOA!2a?dO8$9gBuwcfAN7k;ai_7OHONpO2QNu zy5~RAmip*Wdi`+`+w>a*TN~mxKKSYx3&%3{wMFZ@dacE51X$x<2}#kN3L>Z+h58MK zdUO)6=_t;IU3qZz#G|+BkZ}2kL3C2GA+w@BXNF8~15@9%<_vWn5zwUeKHcz~J~V;x zNYN0h1BvP@t0KvZc80zT1+?eHCpW!u+h>m4nO%61vcsN6F?Wp0b6r zgh9T!h#ues4IBgs5$UX*^d^jL(%+u4NcF2%CG-~DF1)q|68RH2)wf@Y$Zh-4(DOmq6IKI zU0p*JggluE0Ed!P473|4*>x?HBD!-rhVu}A^ssA+&~LJ72!Y8U#>}(!7wt_BJ>6AK zslLGeNj;^D+)kjgsWwx|6{EMOP(xY99$i_f03+c5pLmm-0nQZAj*Bd4BbsQiLQFb(XPrx%9So?)oUv1V@U)Dz}nIDMI`RseDlV zr;l&=+;-`0XR?4JV^2LrutBe|^8ZVq`tauP@H^rjy!|7@BBk=vu<+nd!-~XWAcHB& z8nTb$to9zy4WZordg!)wGFMSoc}Dzj zp$KgiJZFJS$@>LUOYs5=QoMquVu*l>f?UkQ_WyaFopb&?=X;*-`u^VUeV+IIe((3* zJRcEmvuFPv003YEJ`?sg0ANSFd2QIe%RI_odPSM1cTuOnU+*?I{O+Xh%zI13nHUrR zu($X3zM}%T*TH;v5dB3oIxHD=4GBY_Veo7K6qcO?$9#M`^C}7z_;Df}nUsw5MBofU z^-VL}`gi!(Fmz@z;M5fC?=;o}STPLvo#oBt@kii-r?4`e>+VrYw@bv`?zJ$4^k3OhE)jg+(;Cs1WsF z4&Ydos~Bz2hKx!yx8*aEyveMKi|-=ZGe{j4!I~>uhK=D|aU8}cV$V#ouFJx9sJE$N z`If3d9AAJI?3p>Cn<=(UnQqNxky#~lJt7u^L>^~%tbQpQB6~lvBUdfWn@|GYR0}HA z_q`dcFy3sHlQLY@(cOkx#LD;y6yn>AquxZ_q_ZS8gX``SgW}bHU;0BbxUH~@wqw&H zhLZvz`6!drBdT?A`2~n%GWb4So+MaO)rbod+xkXxo{S8K@l10*dr^UoNMAT7Ft>>D2|=+xog@QZ)dNLkuuWxSOJ)+2qg*lhol5OlWx)g8)?2 zh6ZU$wU#IAic9<{IshCNbpo-LbWALvzK0PcwS-hX8#U%8Xxe!3`>~V66Kv*jiTNWUKi}^M=@feRCclVa$q1$%2^*S-<$ZgapoLa3d zvEzIq@_*(dx8_!aZ!5{B105~PI- zov@+K92nfLgXx~BD0zHX%-tG$)50Jw^+1eaB$RI>X7$QlWM?Lmg0azKo>Ax$ddeX$GfId^>p=8af!Xk7o(Rdq3f}2M0kj zc|ct-&0p#)5O>}$l;tL;BM&?*hFp&7Ym^^y9%3k8d?QogGW|l9)apn$9PXDn_M@v@ zse}*+gbzKU5ob_ldSnIGoQvRRgI}5hfN#!QCXc5#yEd5?8Uk`(Zv_+77)=iiA8K2p zUDPXQ>wLhKl=egR4nx1aGI?aW+dK7#73gbeA^L6#hgtqp)+7g~Nh2l62OjgrO084B z$|uFmW>qaaIzrreT^BI(YN}zyC%?p9NPX)HFT({fE=Tqi$7Z)I9OQCw8d;>TPF4-4 z;_&9|qr_w?Mp?9U)!5ird_gO?{%TK2ux<(!)0UT&pPvs}WtK_iYLvu`n$LieYcHv4 zs5kZ59k;U)Z@?1!fthGb<&oGQYcq$>ZzJ6JRn`14t#yQ34B}M&L|j|r`m%eES&m7Q90Bkgg=<~%x5c_{{ef<0H< zJl9KyRD<4vY29WUpqF*08&c6mgMpO94v{**+gJAq3~$=@(^FddCVgNB+WROeIzRQB zN!;2`#N(K>3q|_S)8NVlrof9ws+IP~X#8X>0@q*a06H@K0?PT6g;$ZR>OI(mk6xsR z^Sav01^ip41iz3CFTJExg7)hqW%15kS*&S2oQmdFHzi=*ycz|=uScUx{A`oukD;mY z1?e=L>iSH1Y(x4*QcnT&bV5QxBU}p7U;{ge%G#2fmOzQ%5m}cJD>2C%UBLx%xqfX# zoV+m*1sa>EW+&*{$hskpUVSe4*dkZGPB>q2u5 z%Prj65T~Z6AGWZt@b25SYnRZR69P~&N8vB64Mkf9*#M9|rI>m1CauvnD^e|I@R!1* zg}N;d3is%3yCYR2j-@xEFqNzm$3o&{kRY6F+6qCNiIF!Y8_VFgFeg>pI;1SWX_Re48~VUk>sD zry_ldEsDp-*B!4oJ62QiYdi}!c2b$=2cM{7#qP@6b`K!dj!fh_jN=wPIIlxK^qsTE zZg*JYdoR#IAMv|n7E@n}?0GVswu4c}>+S#C5U#y{!lzzrD&`M>j8v#pD)R>#j@_X}%owp8AVsq%plw)v=h-FMyFVUKYCXI2&}amStDoe8 zCKh+BkP#zG@JEU{+ODoy*LJ}3Z|xr3UwP-R`{J)Bc3Yi4huv|@((ChMW+k^jA&fSj zvEE{|ZR^i`zw?l;raJq?vN!AByW&4L{(sH?Dt7;a?qe3ZmJ}`09ZGwnug~51;LpGF of9C;7L%o}-tu9gh5e)>-=Z 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 Z=tS==)>ouV0P{z2)ReRoE99*{{y$97;SvA< literal 0 HcmV?d00001 diff --git a/assets/brushes.png b/assets/brushes.png new file mode 100644 index 0000000000000000000000000000000000000000..3ae896af77f513cfe22dd73924f596f67615f1e4 GIT binary patch literal 5774 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 literal 0 HcmV?d00001 diff --git a/assets/buttonwid.png b/assets/buttonwid.png new file mode 100644 index 0000000000000000000000000000000000000000..c679521698a58fc6121c076d5c27f8b31ad6178d GIT binary patch literal 4695 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 literal 0 HcmV?d00001 diff --git a/assets/calculator.png b/assets/calculator.png new file mode 100644 index 0000000000000000000000000000000000000000..23333e4cb6fe1a60878a68a563b2e5a9de759160 GIT binary patch literal 10740 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 IBlCCvAIYBEyZ`_I literal 0 HcmV?d00001 diff --git a/assets/checkbox.png b/assets/checkbox.png new file mode 100644 index 0000000000000000000000000000000000000000..d8a81a1df5d8713443be7bcecda72bd6df7163ec GIT binary patch literal 5787 zcmeG=hgT9>+?b_iYD+84v{Ezo>lwMVp(WrR;NA@f;-2BC)S^U1(Q@HTL2)AGKHOW%i&{fSy%=?qh#fKX;!1 zcZ4?p=I-r=2)_Ej%h}&w{i^G;$F80(h!91e(1kA%mh1&*|17X@5Ab>n2o6zv@Mr!$ zB4o&jl?(s~F+sZbEJ89@$3p|4^U>7xDdeXWIndQtl4tIolaxnYbvmVAX`|Q6M^+RK zF7;>NpFXKmb)_30-;jshX4~H4!uu z$qaWK)aC$m3!nqM^urph$X*|+pY`P_SDFK&s#`qEDMRPaLe$SC#GJaAJxVzS$P{vj zJP4fd@6m$xD9BTHpN~q23V2e>?EUH|IKz_kTcC%buJhYr+_wb)PXDgU+mbu2E1bUG z;#gW)!KkR;Lqx2=dYYx>aiSgS(I8Z(o>HEX-@{Z7O0dU=^~ z8@;=LpQ3|IzLsU*rMwr;oFdQ7t@$~kZ`H%!W=FbU3CiWY6Dmd~`!e47+4x)0P0#}_ zU9=nRR}`0yx&X($rcA}b2%EgqDqgV1=0#qJ7qRH{0=3N|ndL?IS+uE311!kagi|Xy zGdW&ZJ?B%zK~+$|733E)12DSPUemamTGS5l@`=@CE#_m4dY*1&hb{<%`e(kq#lC-k z6ST2+VAJ@#R&wbV4RQ33>-Oa{v`Qg?I4)8?*|lT-GY=2ztf}i#Ntm}G*2_43qgz}e z;V9?VaDa^VHRxLE+GcB&n;J%xe*1XAFb_3hbTg2!q10(^kOS5TvRF*U$^irB4AakO zREQS?%!P%8*(W$X`{Ba}Ou>9dn&>zO!888=XkMkc@`BR__FVe{-HEnzXnj^c6Ehi$`XX+_5|Yr z(*{cs0`4jN}nGK7dX zOYFP2A={Jnmr3=F=0*c&;v1dFjkmNQhcicmZ^dz}_tDX+SBCrZ@~%@@jFR@w&Xo^= zqVbPRO_RoGw5ETpr1|x43X1ij$H)rQZ+vr^PTyqZl=KMrAGuDXZUn8U`C3|@y*#QMBu` z%ZpO@QISs5X5G2iDT1(RJ!#{#XN^uuv1#%t?6`GN?`wG}Dk(rbp-_MJ38lv6B_qG* zM;@(gsHIqIOcs=dWi3v8n)g&IzQQe8Xl&t}4l_D1q8u>d#x8@0-k;(XvaA8ohA1D) zUTJKpT>?%oNa=jeBbx3E=@;8^320PKS(>$z<2-einZSHa6Bc zV1?w;eS~o458#>^k#!l4OY|n6Jr@ak@UZGy~Ystq7EOV)_ zpjfplGp#%eu`d#d1?vig9CBMvanWVP_+F^J5`FIo|=NU4O5BC&(jg18VuIpaA0C z-<5Vc`G>GY%Y5pOUgYKWvO&g0RE*cA^1bUcA51eW26gJd+&XxR5ODO9?vCL#b5Z4Ptw&002e&AP+dyw7mCMhb zh{u~68KGt6_*UM`qO{8c___ZsIH;(%br>~c-z}rPSUvT>~{vB`A-N^&O zzrZ%EFTORQWS9{gyjV>cWSC^~Qa^&T;2Tej`#=BA8XLdi{{42B=(KrJlj*g+P5-YO zE#KwvCBz50`ntb-Jw>&O3^#nF>NVyNyzR4C!HRh+?-K_cqnPv|%`)zx=Z8BkV=s93 z)aUiV?FJZin}PA5IXkjOJ*Qu>RUu{$0=3C2y!+NMYkCb{Xd1!8?cRx z&_kd9l2an0#EWY;?ds;R!kTVvidrC(WL{Ur2SA4)TZ2+?^oWTj^k2 zNno27koprtw>FHFV@PRo(lje;PV&yi<-g@k zw%BbGBZll-$9EcHHAYHf$$VY5nva^%;c+ReTMmFvf?1ZuNsTYZY;8&nvo}+m0*h

f0fBevrvLG7hSknxov)si*q%q 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 JvinXi{s$neId%X5 literal 0 HcmV?d00001 diff --git a/assets/checkmenuitem.png b/assets/checkmenuitem.png new file mode 100644 index 0000000000000000000000000000000000000000..123c4bb09376bd67d080bce10f2ee51c97548b24 GIT binary patch literal 9499 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 literal 0 HcmV?d00001 diff --git a/assets/colours.png b/assets/colours.png new file mode 100644 index 0000000000000000000000000000000000000000..32743b1936061ffbaca4f1420762360263f29581 GIT binary patch literal 3954 zcmc&%c~lZu7pH8rP20XqOT{VEW>P85Ef>m4qeN?JG8ZIsAs56zToG!lDUYRwQ-q>6 z<2Gh$=8}kFWlF}D(x{1wTd0{3il8F!;mkkZpEGC9%=gZD=e_&hJ@4N8yUTko{fxJ# z?)shU0RVt5MWe82jCE{M_%OXr z!>_x-e?B5EIt*~^kG)a%Z5EmnnULd0&nHr52BPi+B2pO=L10gBy~DcUOQzlu83O17ci9AIMH6qThP~%l8`WV*C8|HEWqW| zKs+B=wx|2FcgI+Lb?Qu_?^iF1UX{7cmk;3P*eyI%Fm@1RopQ&c2q!K`u`$?q!4AT! zOXAcPkkixCzrU;X0#rC68l=&7#WV){9mxcO@1^So%ub<Fz;9}&PZx``c3HUp+qMb*}sFl{B-S1hS@-P7~khXQ!m z!L|;a;Vv<26@*mYIiJ)E6nh2WX2o)1*S*x$tG^gvdu+4QgTbIA(KcVZg?vH5md%{J zcv02z*e!5gA&P(g!rNeW=LFb?y)$A?T2==nUe9kpo<`$??w|y8R|uME^?XHE z8LF_KPITg!WH+#X^$R=FZx5@sFs1Yus|yDtzokYfe8=q^TE77i0znxYiVi_R(>)1J z$-lB|3RCy1lNAoLX<7_kB_XgXxeFz{52D%ZqFJuB|W~uERw2TWJ71Z@<25d>cVQ4V{RqA}_krrAlkia?y0{6o)$zB{zB_ z+4yWq;=|3TZgm3<2}35A(T+fF36IC4&i4e=rYdASgmKyEL08xOBF`+h(Hf3nc6)o* zWBvXHWE0(XGd@^yUCn9P08vl%e*B6Q?{qlDk&&0fU@YT6>}A(QRwbO1r4Q<~4T^*I zh-tP7g!u+a->lFJPL(=->Nav!&Y`_C;|eXKh*H)s!#rP z+~hH!|9m3`gJJGQzm-bkghJtkLp_FC#B-?NO4-KZDA;iXIez4deopkmT-I@n3#LdW z^*cebXUK={13~8JS|v-(BTGm_z+ny!CKpQYfqgNDmxrMy8+)bSyF;K$4 zFxPz8);7o3IX+Z8)B+){Ov1y>^X!rSU5*G>t*L(dqOMPzBTce#EuSNfB@P1*)6Fb| znPD{%-PW|sF5&Benm9;9kQ>>^nX-rdW3-7m8T_z)BKv=9f6iY5sJxkh_DP>g%TNq|Ksy63^n*9n z@w0mOdKhS$QzI@NNh>lb!iHZSJDeFS~9)J43# zma32i%#y`JWc5PVY4mS))7<1>pok`>+ZoDVT-VCF!arqom!a`H(UN99+u=a}T|u8< zyNYJ*ZtT=XAqiwUWT7&o#g_T6oHHHnKl<6vXvPAtTQb>T#*x$UD2aH1YVZ= zjOSo{AaWiJW7^^})y`$_T~s~mdje+ANiqGT(>;3?1bm8WiU(%?NTy-L$A(^gdN3r) zWeugK(4V1f_|K8vwuh5?4%S52lxPQGoRqFHYZs=oK>wB&S55*2@@9TBwyep2S9Ea>J_llycn-Ntc9|^iAw9fRwrc zm=Etuy`(wCnxm;KjtTpu>m@P>FUdf-X&LI>`alpUsp=Omb=2h1xAVysV7lTnB4~8u zja$^iWbBfvbo{v<IIM{Uf`J{S3HDXNp0oU@rHnRXr@PYxK$hv+>e}|71&boTRk^RMn zR(HZg*tDZI2AVO$gBSX9M2F4%>)3}u0kseiXXDZHa3lYU`s`3{N|{YT z8Obc|s2(hJtTDWGpVti4%JAHgWF?+1$!y)p9N3W&1^yzs3L5!g7X43K^shnpKZ1xO zr{ZJ!SCHt5v@$cSA6zg;HiDpCdPUD1ugCZ>8%f2~6 ZB>a=_4|kzYHUC`zz+))4k literal 0 HcmV?d00001 diff --git a/assets/combobox.png b/assets/combobox.png new file mode 100644 index 0000000000000000000000000000000000000000..eafd49ec4d1dbf8831adb3b550c9e4878857213a GIT binary patch literal 5337 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 VkbKyXJb&Z7uQmVQIKAH%{~M*^1{VMT literal 0 HcmV?d00001 diff --git a/assets/contextmenu.png b/assets/contextmenu.png new file mode 100644 index 0000000000000000000000000000000000000000..b502261ee120f9001e1850d096a74b4084c3742c GIT binary patch literal 6983 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 literal 0 HcmV?d00001 diff --git a/assets/cpuwidget.png b/assets/cpuwidget.png new file mode 100644 index 0000000000000000000000000000000000000000..298d757f303b68bc479143a46883264c239504f3 GIT binary patch literal 3578 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 XGXsqURWaZz&JYqJGQTQ>bp8Gxk|m%` literal 0 HcmV?d00001 diff --git a/assets/custompatterns.png b/assets/custompatterns.png new file mode 100644 index 0000000000000000000000000000000000000000..48d563b46eed876a961660416bdbbd83e9683e93 GIT binary patch literal 25461 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 MoVsi^#60Z(030qfUjP6A literal 0 HcmV?d00001 diff --git a/assets/dynamic.jpg b/assets/dynamic.jpg new file mode 100644 index 0000000000000000000000000000000000000000..03c7a7c359a550971f324f376a15ccf6fb7cc9f3 GIT binary patch literal 35985 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 literal 0 HcmV?d00001 diff --git a/assets/filehunter.png b/assets/filehunter.png new file mode 100644 index 0000000000000000000000000000000000000000..6b0eacefad1b44b3b4c88f31896012b218a97cbc GIT binary patch literal 36871 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 literal 0 HcmV?d00001 diff --git a/assets/focusevent.png b/assets/focusevent.png new file mode 100644 index 0000000000000000000000000000000000000000..97afd04e02735518c5de8aefb86015ce68eea3cd GIT binary patch literal 3936 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 Sq5Y6&0#K4u2UWZ^3;934xC4p+ literal 0 HcmV?d00001 diff --git a/assets/gdi2.png b/assets/gdi2.png new file mode 100644 index 0000000000000000000000000000000000000000..713a7050ad80b7504b3e5504e49b26d98301d21d GIT binary patch literal 16634 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 ISjXpI07!-VVE_OC literal 0 HcmV?d00001 diff --git a/assets/gradients.png b/assets/gradients.png new file mode 100644 index 0000000000000000000000000000000000000000..61cd3c093c00fc4b967576d5b73c7d7dd2623835 GIT binary patch literal 3969 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 Wx0ZHmf0pp)7XY?_SW_*%68{sUb0&%a literal 0 HcmV?d00001 diff --git a/assets/helpwindow.png b/assets/helpwindow.png new file mode 100644 index 0000000000000000000000000000000000000000..f27562b2b13caf411944354496edb2123aeb009b GIT binary patch literal 26991 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

meUFNE3^Cz6ytR1@ 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 literal 0 HcmV?d00001 diff --git a/assets/hunter.png b/assets/hunter.png new file mode 100644 index 0000000000000000000000000000000000000000..259c2629669b91837eaf181fc83481b88f2bfda7 GIT binary patch literal 23922 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�iQm4FsJB{Zb)~kcRz3*k+!@P;r9iGuXIA&)exe(jmLX_m zS#lgH#1nyV4N2R>5E4UYA$hfoVIO+!I*>XPFjojBIyg8I>kK=5U3QFCBksqG zx?(PlZPw#=0z%JeAQ{K?wcQzlpG@yWbMXt+Z21$&-Z?E=0-bld^Z-44A)TcYHZ;->(j#^rtc@ zV_tru4%^bH6Ay1rQ`js%!Fcz~{Tjt^WQ3^s4}v*23acr~k3I&mK*DJ(|_>KLuf2n8cV1 z&GGLOJb27RdC2k9fc&WiiTvjbL48wH%MY?NRWnc70@$;MrMKLiWNEP`Q_%;4QKt_k zl{ZLQd*)!yjE7p2(OP~xO!aY#;Rke^nigs94W*=pnOT=K5|4}DzNY^6K0a4XCt0i) zml+w~8U5+o@r(4JzYG~-wB&O$2hd(rKEhWJD#RRtVPCfW7(l&h#uEHQ3aC4O zq!KRC#*x>DGr5pLQVm(+NrAeGSXHJ{>WTe2o4vwVcg7uAD2v*+Q$VAk;lr(*OdEwCMeHKFf_bI?Zm9i^t}umn~RgW@4*Qr>d=&2oxJVnuVvFnbMjNJt{& z&kd{mdA@PRBpt$|6@yiXwrvb!QnS-TkJ{)M)cu%|=vpRD8xl?~hW(OMOG)%2s1t8$MkGN1I(L8U!8>yJWlb3|)Rs>8lPqjPsbO@}ofRJ`z=zBSl|ilo(_ z5FVQACBM@l>xbBUJ>WmhD#)g4QSUMj4EFC@DW}e-ZctY}$c>ts>&Vj3J1Fht{mHR1 z-s4%(<3ESI{gjKz7WBe0u>5TCk2V;$s!Me?$75oJF*|IL9B_Aq;yP7mImZiFpcwc; z`?JjV?@ssv&eDR*p`fUVHy2WLb*JbibUhAVa*c*@pY13sOWry+E};o12J+mZOy>zz z$A)I=MU}{<0K8xNt;{D!@A72|+X%aj-OwXPJ-?;|P!)}iNx+RAiZodW({{#-C$XE%n4xlI%3bcLOTix+$cGa42ist0Cq zV~e(X-B6~VudLef2IpZ|@{#(E@^kK4udU+U0`&6J`ZfOy4QVYbEU1av55y7~dkhc} zl8^{>SZXn{vc^PWknlQAmjyln0(^P$pW18sMNv~yQd)Q0Tt@P82=^e--1JtaCpnHI z7z{!}Ex~Ya+Lx*N7Li7eUE_Hnatal!t1zg=b)F)Xe8%T?$4d?xJPFXP#mQxpS9<>3-0 z=i3(Wzh_K0K7&=8bO`>VDIvT=9y8O?z0CeF^0;FlW6eT%z*=lL?@c#m=HKQv4 literal 0 HcmV?d00001 diff --git a/assets/hyperlink.png b/assets/hyperlink.png new file mode 100644 index 0000000000000000000000000000000000000000..4eb835a2b74ba023731bc83dd17903d00bf7b3dd GIT binary patch literal 8506 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 QDJ_n+hQ4~$bL;T`1wl#ISpWb4 literal 0 HcmV?d00001 diff --git a/assets/inheritance.png b/assets/inheritance.png new file mode 100644 index 0000000000000000000000000000000000000000..6637cb29c8e3fa6a239507d02ff8ba9f03fe1016 GIT binary patch literal 8085 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

+c!F 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 IrY=$c2bv~bo&W#< literal 0 HcmV?d00001 diff --git a/assets/listbox2.png b/assets/listbox2.png new file mode 100644 index 0000000000000000000000000000000000000000..5266b459dd909bf5c29c39a46b32dbdc8e0c3c1d GIT binary patch literal 11483 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 literal 0 HcmV?d00001 diff --git a/assets/modules.jpg b/assets/modules.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e97005bb0b8b8bc8c70305c14b8666e7459bb9ee GIT binary patch literal 28527 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

%$byRwo6t(OQQ6sO4i`_#KH2JE&v@`xHB*6N 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 literal 0 HcmV?d00001 diff --git a/assets/moveevent.png b/assets/moveevent.png new file mode 100644 index 0000000000000000000000000000000000000000..6de3b12839af60cf6e7ab26d953fecf9f7cbacd5 GIT binary patch literal 5029 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 literal 0 HcmV?d00001 diff --git a/assets/newclass.png b/assets/newclass.png new file mode 100644 index 0000000000000000000000000000000000000000..4479fc876ece3b98d5f4bca4cacf770fb2d1cd4d GIT binary patch literal 24277 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 literal 0 HcmV?d00001 diff --git a/assets/pens.png b/assets/pens.png new file mode 100644 index 0000000000000000000000000000000000000000..ff25363f6bbdfe772e8ffe48ee079eb32dd8151c GIT binary patch literal 3875 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 literal 0 HcmV?d00001 diff --git a/assets/player.png b/assets/player.png new file mode 100644 index 0000000000000000000000000000000000000000..51d9cc37ed61c04cddf83ab156667cd4a154ad51 GIT binary patch literal 10436 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 literal 0 HcmV?d00001 diff --git a/assets/points.png b/assets/points.png new file mode 100644 index 0000000000000000000000000000000000000000..46422b9cb9d93ae10da7f4ee35265ec9c7a1dd87 GIT binary patch literal 6180 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 G=zjsph-kV1 literal 0 HcmV?d00001 diff --git a/assets/region_operations.png b/assets/region_operations.png new file mode 100644 index 0000000000000000000000000000000000000000..9256d071bbf73de4efbb986021a7d2ed4d8ddbc6 GIT binary patch literal 4125 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 jbug3qd|CiFhS*U^`mCDm<8g@x>p literal 0 HcmV?d00001 diff --git a/assets/rename.png b/assets/rename.png new file mode 100644 index 0000000000000000000000000000000000000000..5b3b7c6057b8fb7b0b14a84fe76697da8b93edd7 GIT binary patch literal 5477 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 om=RG?OIt3$=?5ZcFGU+3Iiq@5tK0w#UH||9 literal 0 HcmV?d00001 diff --git a/assets/review.png b/assets/review.png new file mode 100644 index 0000000000000000000000000000000000000000..b4fcb2fa026517e4f9f6f14a0f5e1d718fe9d5c9 GIT binary patch literal 6006 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 literal 0 HcmV?d00001 diff --git a/assets/ruler.png b/assets/ruler.png new file mode 100644 index 0000000000000000000000000000000000000000..7d3ae79b4cd17ffce22f0e89a03bdc8d04ebeabd GIT binary patch literal 10821 zcmZvC2|Sc--}YFtZ;4FE5+Wod24jsRA>p=^ElIL(S;xL*jiT&Pk%_To&mL3eu8}E| zq`_chFvgIb@ASOy_dL(9`|UT0(OlPgo&V)H{>O1XxMpU=$tK7Kfj~HoFB@EkKm&@RcTCxd8rQ4AeKaVgY|5S#GC*pIQAb+XX@(T<;G5(&fr=34u3H1sU1~8Mp}|&z&K?=RJGR1>l<-uh_xPn-$EeD5G(X++2P~4O zGIg`Vj_?X!i{W9kfH2SY_Vds~(d@myzt@L!cHkz?;~c)Ow+8!8pg)M>2~Gq-*BhC~ zgXOlHtdPsd_KhOiPEmn6A+U=S@=)@@k(Cpo=GwuArR#S8_1ZevAz@cy5c6fpi*k-s zww;xJ?r~<3(4L>s2YbI`nMLZjwKtz3R(hG2(j3=L6^?uUrs*8eynSlNj6@M%=6)9- zwlGdUfe{}aJHx+%A3MpY4lnRqfwz-KR9o$B-Dlv2*Zs9D=d?A{v_a|G@j3j@Qs=@x zd`GCMsU65%yff80KHM?OI7Zyls;wesp;QY127$xWoyvqdQol z_U~`5hrjf6q!l!+Qo0YK4li4lEYi@{c}FyAbE*k18oAQjv?I$sTLyoeyn0P!=wg^m z7O52Nnx%C|6tQNpvtZNxy=!;&T+6vAYTDA**EUO98$VnfAkZu{c)h0y4?;J)xY7R3 zHHHrONo%av$V9-v{4$lY7FVgm9v3BOmPqh9LoTKx8_z5$+K>IcjDyH#BBqJO1hB+_v zg0*zXN@VEy4IL1N_H_`3=Mhfe+x-TZOcwTU*LvIc@08Jl{=)qmd-qp5z=R_A*{4-_ym&ZpD|Sza>#x`RT)!QzR$2;+K!0>0gm%FBn`=2E(i78$NO(POK+`wCUwiGq9i0+$g-*!rzI&BsU#bEAfnvs-v7T z<^|WXvQFGX7(M2PEE4XH2Zm094fz3IyT*5fi~A8ys0lOb#gIyx6bC1r33>$;t<;-4`+-tfkgr=b1F<^j;21;kU(zVoJ2?794qXH#*4A=B#Dox81gW_ zLb4fJIM>@gBT!rwp*{Y>UOqn4tFstzV{%BysPzp!ZTNwkK3fQ?! zVh>aT>8=Q!?Alq5CxvYeCu=8w)B|^PtWB0Q=1D4(iI>N$balU4d7q{a%Va?NPllDe zN)TfKrBXtAYF7CaOS+uHI0#KgyH@`t_s(BFxX`R}a|JE&Bf_5z9}JdVE_3f|5_yOM z9uV9w*x_$dAc(Am&LFfEl?I-`@aX;wmhJ6!HeGd-Oe(##wM&zIuRS}KHVIpLa;NR) zP(b|u*7W~w8q5g}hwy$=QRv z5Tf9M%K6Vc1U+_t{uEKT*(xUSdwEUEMb(tSl>?4_#Kf?~7ipJA-*5x3$l+46m#_-c zhbDpKdWF1#svo_wceBM>hl8hcVj?DB@Z{ZG_8Pgc5(#5oFK=%bMd&k>=a=BKCmTEj zLra*!ZShU=Qi@$xmrQY&rCoO0XQ}r86=)E3|NYQV`NwK&2&YTmg|l&T*YOwP#9~Nc z*B?@Lz*_xzG>p2*hf^;BY>3Gn@)bKaT~UI5v>ZD;+$Z z4CcDV6=AeYs{S$=##Jt3&u+$NSob^Vk!uNQ+E+Z(^K7|HA1E@ryc8nTF0TwJEC0j< z>N*P7^b##Q`^01|T#JK=A;BdD)ZJEO=D;m+x;xC`GU4}ZnIN%GD$b;q>z0s4@?S0g zyRZH$2I#G6@pyML3XbDrUqoj~&m^A)=S0Z<3QdpanG74NJx=A@_;^3q?)xDj)GwCi zE(e2w^bhcL4Pfb}mbRYt_BE633gMk1BP#sPRzlU7DZLxDuuMboph^l2Ze(peazeOr zeKoWs8KmKu*J-x_|8ya2Q?V2a{RVA3VU}n;uJqHN2y`Wl6EbHTV13xz*b`YZMQyGVQ5Y`Tg-MkyJ$p zY9m~0nE6;z86TH!#h31RlYrgvXoeGQA^c26^VK))@^~jvyr7tZ9VARGS(S0wP*)yw zeW>?lJ_xaFZ?FS^iT61dt*sR+E(BR}npRqZya3IOT|i+H)v??+IGD7VIPX*@yRhxp zzAw1#oUU}Y;C`~S=HFhb7cKZ2B6W4R{bcop(b?g&sI?OyJRnf*C^sYNCsyC={!A94 z3*@FK2U9>`W{mJ}Z7jqoghPNyHSrYiv$ z40gaM$Nr-)jxu3Kzh9uiLX-m3WB6zIRE2s9>-{rv71Cw;F1j8vq|T)NvRB+lVMv3D z?$>%-`O(NTR+lXJTs%G5I~}=EDy@czjdI?TUl%RrZRDy|qgZa~||jS62oh zAtBIiQ6OZ@{35k3=y~L+`;g`*miucTz65g;HU?~nVImFk{ZuMd`mEu9)!-o~qoMmD zt=fVaGlTM9HV_8>F#?@bsLuW;Hs7%Lkq^N?2E4bTC_pZ5zPn#Qz$r~_ z1i=WJ#H*`XQg>nn@P$L(B`V4gBX0uW-9r4W0taR($VQ2ZW&{^M!7Uv~b^2*X?1)k{I>2Z} z?m93t2FKO(L!;k_PCq~JjwRN<_P>BynHhO><-Be6U7MO9 zJ-^hbz`#bW;@M+tlGs4_-Wskoj8^d!7ZMUu-_apwxzqD2hw-2yhl&sd1)NX3apML6 z=3oa`z)(PQAW%#y%gvMLLi5HFd&6lIMGmQ8b|({@m3IF`5#-%dQO4L;rybE|J)w2+ zjaom{?enC#_W3q@>Y16j;;=ogt0NErU)$ZE=jlqeYPm8+)LI44QezWWL$yQYOFvO3 z2yv17~(twY4cE>R4>_8OgN^xl$E*X;Ggki9!>GFj($H;{d4qTKbgH1(ew z!F0Qd2^8=yu^u_Rc4~Kp!r|P=)V+cbkJ?LGg~^G0LU8@uY=hjt{+9HSbAN9mVe{p| zbNHuJ^mIP|ejklTdxprqC+ORKqAyD)LPR9yg6kV1tn?cdX4HNU@`m9a7FIk|Du`#T zm0>$EcEi(9Z!@Zpl!amO7Y5h`%Zx9V0ZqEDyE{uB1K2JXH}`<%BexUP-dd`o%^hNt zn?Caetyx)F7JNrkRaJ+{>$i=?GF=y!mr=pZTagNmPz94ZQx_-z?lfHhC;%zoumt1A z@Q^A%Rg_ST)hM;(;s>XL!hP;qRVtnIn|yQa8iGkAmITSv;}K+ZRk&*v)V6J!Y%J2ksvGivv#Y53A+RQB|8L8M{1__&#k2+QDlG66~;Csf`^UbOSiVw z_gB((Hn&>lHZ#-&XZcG~CX z+XodMS@l6!?k9qkt>Q-$!dF7Q(JrvsaTZIXUAh^$U(MK+B#1i)F;?c{Fx75$(qEApSQ`Y^ed{?rfKlJCGWj?p( zZnC>oxVGbe=O7vyPu0FAC>l$5jr7!1?#mGIYN$#wXGzJ8qO0&9aK?L&ZU3%#DwowL z4Q+trr%2K}C% zDmK^ge1#;o2Y5i$YiiCKSVWwDtHZL=*)1|H+BwoYhvC>Cv`#zNTxOyXyNi;ws4HId z@cqv7kzNO2JUT1)MV%(;batEBqQlp!4mz)kL^r|x=BI7;8uq=Vp#U^s+mO{W6BxlOC%LZ@aY5tss$;VU-W+ zYP`*p!H(Yd4uJght|o;AgmWIV!Mz?y6k?2p_E(*LB^YWTMII%ugY5)h7We$Qgi?}b zri93|*EY4&*+wFI(4PM7J4_Yl<_wF4hoTZB4(?mpIOc_K0bap-vnt4;LLT-#sDSee>A86KN|tM z+f6EoctKx;m@}*vwr21PZ#M}^6}_8fD9P9tFfqzDGGS~?Y$k=3AOCjr=|TdIQf-1$ z@pNn80s|C*f{Cb>`=7BD3<2e+@xV!6Lf2V684S+Sk0slLy^B!d-DN8e=3}2xIM!`L z#&3bW{N5^@yM$B|yu3U@uc@f1aK7;GJLkcWVJvO&FG1|z(-0{una*!-e}{s0R(#0j zcduI>)8rPnTqVaL9L;QofK}V(NcssI?ZUkHD)%y!l*=o5CoM9onK5N?(yiW*SS?f-G4SZH5)<8mitMBc57~tWjv{g11(%*(=M3spx3YbkH2Zr80rUlGXgcU` zuuLT=hjY4Ko?C;Jl1P?+Xz1a<3+h^m9pkc{+aUjvYw?Xr6`^XSeZ5?~i#_9v9VkkJ z&%=|b|0s%w8~90pn_)7%7XOIpd^{67y_lYxE1;iJ^s>jo??S3g*Ktm_(z7izD}QeF z?=a~_z+Wga8Cr;8X-z#rLIcl&p9nl9Jgg0#3i$9G`Q1teGI~D;%qoxF&Xkmw-#wOd z?l?P$S!_=`Pta?FSDG;!v#Sg@V8Y9l;EMpVi)$MOM~dEADv+Qa}4i zVs#spP~=-p_QtYD%}B>i=dy@$sEXT<7qsr|X+tizIlN!I24?21Wj&tvVdS-*7ar|% zd%y0hEXyB>k;mM=S8BPIiR zJl3$X`!vTz<1>BE$u2VLr7bNjM-8)Q5KLlDlwKAjL@jPg+V6qa#vr+ayvWVQ6TGB;+$(F3@s#adw}o%y<~OP zK?W5OPS4}gK&v~(#l-N=KOK+>ku1Ys*I55hivhSpT0cp}Ad!cSBi#yMy!4qn#GP+EP)J3clROKt}$8z`2+NNp!ewf}2M_4W0|WRTkjZ`JGCHE&Ts z<|-C`JS6k#I|UV{8@<9YaNe8}LBhsMMYR757sjiE3{ZGlY2^=fEv2Y-yHX*HDH+p` z!)2ix-khNh1(VeVodOA5$!yn_^*wouw{^7{Oggn543$$}ha9 z3JT-)Q~w~Th}b+&rf0QUs|J(-j+k>hEJGOv-y(Odnh0qO?-ty^6TD>^5_ z)U)2}EXIGE4onO|(HkmIedoz7B5Y}F+R6wbc}@PY<5QnWSfW$jte^^0#>VWcQaTs+ z^69B2D=shQM^PbkL7EOB?F8C)SBa`C?L+U(0 z1N6+y%&RBv&nbGD_fC1Jc@_TAVw~U{F=S0mO@Iy}yJ8_44Kb)I9tD@oGCnkL=oUsl ze7+3`cULxOxbm2Ha{7j@HMv#y>F3s9x$K&{YCTpQUT_AC$Cjk=FlA$Er|X5DOPG~o zNl18tgyo~nu5(v19(G(w9m;fk>R2oN%QX)pg+%6j`e?@X#)Qkt#xCzcAA?!ew;+d& zM;gWd*UAJGZay5M>8n;-PfE3!TPI|yh8 zz=sJfk=E25yBoL6G-lsX!SqV7x@o#*Y;3F-u`!Vh1SIe%Krll-xPlaF^>MaSL#u1a z6&GjV{cY~%xve0a_^zu}g$M|b57G!7_mb;raPx(C%6}r-w0PCR{EafUXVOW}{msUO zaDpQlN}iU#i@(D!G;GC@a`ey((>VyMc#y;mv$RWL>QmpTIzz6Ast zAa&);6bz+YNnD@NdX3D%L#r!1M#XseFv^1|q@-f$OjmWcQo+(P zc@qvAW!sj2P=GW*0g5~1x8`M;`&?e;#}xEB)%=x%dcoeLdGb?t)zw!%K*9-y4}SRY z0NM=tbA4xLhNSUrwbR4fcSDD`j(Ieqt~T}Qf+d5|0kj7XhDu_``V_YKBumVz=cu^V zx1)D`YjUL$6ge#T66FhlFAyc{c@~5e=vS%bF~sU~+1LDo`ELlI{t?OBbNR^F*dT`x z@9h$`IX-wL4nc6bp}Yb&2W>`zf2NbQZAa5+d+=$~FMoXS?B=^EzZ4KE(5(+?HE6AH zk^ZN@VFL~FZk1BUoXmmOpz>BHrb)wsGnjltH;S|auPk1253>qh)CHDV>M20+8|3{X zBh%$EFXF+f=t2nO`?CMQuglGxW@YE0nZ##ES*6rQzs!{?D*(u#dW$AUF1#YBJDATi z5)v18x*)2Ijj z$&tjSzcjoZ@ByZFdCD1B$P>3S?k~<0PCW{0Y{bR)LxVLnV$b}Wz#U>hR^WRE*m_~z z=OR^Ru@7&?<|{njz5f^)A>3B`mmCx)SdVGoo9#^vP{A_Q!DY*V)(N~<;8T|C=)At?7ZRs;* zpEvXaHL$Yo5+LhWH``=VftdXiUFG!@lZC&IP^{z7X24qqzZDqAB#h~LssPm$5CS01 zmvhxDj)Q8P%E!o|3@V->-rcdT5(vhS*iY5YPFTGvv0B{={^Cc32F|{ z0u(a>69G_DrCn2H-n`nzXDZmY8Lfps(QgfGmtr zwlfnm$QwhL{s99zA_14LgtV8kCF01D8M5W58^jBuz+{?QtEzM1;CRA6f70KbjVgYe~Ud7R3RxEQzHx^(W~EqEd(e&FzqbT($D5{6Ipa0XDVG4pXy=FYHirIvZIY@+n2qMwzS z3zRLiIh!e1fgiBN;itbPGslUdzm81vGLIWxFtEOpew1glWcl*T?SGCyGhr14E-pPD zX4>KKc8LfiMD+#AQ{Acf2tWmnYxkMW9DZtB16-;`$ml_mGNXA{gV4(OFlv*wW zvZQkHY9+2o;sl_A9(w?y=P2!{ms3`HSEKuS?8Zx;^>pVNU1PO#7q#MIS=!+I>i6$I*_V3Qa=-(6hE;a6c#Xfe7ROYeXtP z?;M8r(FaEG0(>zuugI)2Kta=*UrUAYJ^9xFuq1B^{>TrINT4o)eQoe`*68NHe&3zO6M%lsXnR3K8SkX)bsrjO z<#~V{2Vb+!eRU=-V8YUg4IvKj<3h5Hd0bu~AAApwwS}~}#A>IU1Si|c_?p55$ z7x@fh!SF$S4B>e>yk1!sAC$|AsY0rDegG-xM!zibkrsKjleM-od5{LTxXbwN6JCWg zPR#avh2_h-##IC`6Cauf|AqHfri!u5>{quaU5e5CnLQmt zF?y1WnbVIXfj|O8sj!kmJsRZ+N}&}cm*JLJrGM%9QSe%Y8|ArO#_{b%0jIh@c%o@_ zEEMe#Vj5sya%IR~&aoIY3pf`4g)9Dj^956hGk+~}_?3`=gN7Qfh-?eISGvI&2eIJm zeLDJPxxKQ(v9KaL#@#OIE7EkWSn`9t5T@b6fMr{-X2u^?p>tRj@x8i_>HNYK!f@54 z^!=aJOMf}J)K%TyjKZk|RJ%H~Xe!&OBVPh_?2rb48`87(^ThW;P~Ms@abo||$;X~nPaR$BZ_2pxxkBf1s8z&IqFY-MR>HDTsmll$eIX<+zw&OknU zPs3thZ_3%AoI^qcK*`;@*z=D71FO*2+xr1Jk*@K#3RP8T=u9wEUWU72`<0~9sWo`z zf_gc390UMHYvh(Pz+FIsz+sMs_Vr0W0cjz9{x2#Y3wS40wu>>`kpz1=qy!5+Yg9|k z+7cM80CWSPVi=Cy1K4V4(F2V?G->-1+2=QQKyKa|BsKK;@$y%?>Oy2yXebV)?=od2P*mdX${L^XQW_l0Vh$l7)S8={ z{b+Nhk@FWtd0A8j0tHL&#Xj3=CpZ5xcx5mjEpCfsW@_%}_~I{Y$2E^E0PqM}W>w(7 z1hmIeNhVJerWU@wKGeuYNArS?Z>KZG$G*7YGM-k>V{Q1gv8gE$gsG^g$XPjGjD=pk zQ41UR$2z&fV35Vvj_b1O=O%)09B|0Jvry|*vK_V0U#R4rTDQ8S@`wh`tvJJk!NDOh zmO8*s8|0}okIbhBGla^c7TPC_KZw;U0ALw>bI1Fc7WoJ5yF-p$o^ivHkHa@xwEB80 zWJxI(h_K*51&FGKDF2OuiiYu=^@h>Z>-NB4#$3N&8{kpqVP9%)!ACCzkXaeHHX!p$ zY3il%6B7==79&0v-IJN4Z3*7|WBK5eN40J@0Vr&`wfKv9Zh&Bc7m&%75!gb=!)(or z*-?9dS&5&AKT3$FmFqf`R_p?+=rpi5EbtcwiS;tFvV!}5+eNj3RR9dP;9q$l)Se)I z0|7AV<}g3R?Pn5GeCI(*3_<~EQ!xbxUO@95Q5gVT7);Za=30l!92F0#3}az!M0r|x zgF-+G+2_BZ_&^8$30>E}zpLm} z*0c5pJ5W2XWd~Uw$z`;xS(!&KU)K$3|M4An%$Fq&`5-CizO19sHL$VYe*PR>URJpD zJo{~_Bx`tQ$qTKrdsRp_aJq%IB|HlDm>r}yz)celVD(^>58bjHS#Ul~oxZWdtM|9E zxfrppeSHV<*sX(ICG`|g^KP{GOo2xR9?l;Ca8cwyAkInQ+4M$S132;tF*YZm7=6^RJw2p|v$k+Kp(3j)DN1pi`q zP*CEwTc`nkuwCSowei58FP=ptxW;!>(szMCh!7_F_y-?*wmJf#&4B9chG(7k?5zxZbm+LOk3>dBmMC2uHFV?>CJ8N?dbS>Z ze{NRB%8Eqpwk%u{@3f!WPtTI;ik^FJnbJV{UbGSDr%xWR7FnAru6mvLwu{(BL`Kdk ziu+%99!=Gl6JoAjUE=Ph>8&huG)6S>%Lq#Amuy7^B=*(RLtegoRb#A~e!;}b$|XGz z&xjRRj>)qn?R@Q!sUI7+@JQ6g)Zd#YHcCEU(4kgKR~I^Fm|!b<-g^Wlbi&IBA4C?t zX1tmS_#JBbcac90qko(RD>QPjApMW5Z*-{Cmp9*Q_f-8nXyCP6-wz=Ef6*k4J}&qD z&q(<5f77ZKBiM#f7{NRy`rorf^Ja*#La7E{Iv!UsuY`OIIWhPM*BfU!xL8>H>hb)^ zn;D%|g7T{UuI%q!Z4oMSBLP<~kkcl`oym?X5y)b$$9&h>;U)&;czdqLXQvGpax$9W zU%PC_OApum9&BpyUArW$4sOW~#p5-Zmr7Xh+hx~sma6Zd#BOg2L#XthaWTK2Ry+;`NBx>x3kDcN z*?kp%nU^&#?+a8~LIQa6Yyub+k3ttGuc8Ak*JaGOP$VNZmo!SBI~xR}A2~28xWvKW zG3QY+C%XlIX|g>7QTy=hj=xe2-qyEMKQkWqonUxZ&G-2Ymdu{m)%xxDSP|}%yE-TM zGN}4^dpj=o;@i%*dR1-?hAC=jkO-?k->c7~gJ;Fo6v^?T<#f$(T4@LEwP3$sIPohNN;%r!P!<`=(y82q%XVSfs|Am9O3Nk?JWS#O6_=Q;e))U6?Irc1`NnCicgp=jt35R zoc2TfVZIkkP;dI`YloImDz1UqIK?!(ldb??`kBvUO4losjgC9SOy$obvS}#}&*!^j zw7;lGNdoOUtjtypG3(#Y2p<8Ro|)4dd?X z0d~9t6AwJLO=jxt8omBnS$tP^u_bL-XRT0TfDx9k%5{yoT|BBH|=MrxoWcX;&p zBI1wF-r9-<@l~b^RO>%Y7R+XM9oSN(Z9=R*W`5x+$;=MIfxG>rKG}K2r1wjm^GVkwu5nx72ph_XD` zrN5}UN8vI9g{aN-r_w%@e@WmW0*NM=;4d(&2*ie0@9gYdW|T6|9UDLk&z|p|zal*y zCfQx~_(pTFA$74-rh2k<#w6L`!Wdg;6syFPp~k^Dy*=0Bp?6R>kA(sRY0i6|z7sm4 zgxoPWdZzjb@juh0qk8q;E`2%;du6H*$^6~daXAAM9U)%%geB|Mj`RFN-$L%e=tjcI zS)YcZa@4zKTdJokPfMnK@Xk7MPsEJFzC65Dv{${ktD~D=I*Ty4=fzHgU+1#^7;@T1 zP*z-w`^(jPd!&hUXh!E*7VH7(r;hzacj0p8-il2@Hh2Nofsk=P89k9SqX#vtochm$ zX(8>Msf6!KGDwGw5wSF1VjmL5K>z)bgsZF3j*5l2{&T&r)Ndd5rMtIYx>J@)$L;Mq ztn40>WFJa=T~8-Met zHnh#>7;{jg;cp1@1*FKDHBIGYcv_W=k_^&daFbWy*0`7$w2#r*jr zEA_Dcm4^KEvXaVDgE99(AGUy7m?B)??~(`dlz-+a;@C0eNRiJnjA}L^^3777ZF+!J zruJ~6-&-3^va7yNzws>MHxWjOG`{{{jG|)KRNPY2`7@g93mF*&p$or@N#;L+$-IhT zFM`vux-5Rr&rWD3YxJFEbETfMrD9aa($1=?F9m7E5s9SjDnm?ITmtBR)j~slJv<1N zx%{P}>H&{Nnn;QVMYViTBzbDshC)ST?6mLt1~TGFb@>W}MXin}2V{r{$0mGfp^|#j zrR@w$xIXk#i(lwpZQaSr&XPO2YQ6mYO;9{Zfj~p((E5FUMx&u%O8<$ix0?)}CjN6# zS>xFntmeuY|C}f`<=ykkM9VA;Ih-0t8T3A%J8J~5A2S{kRMyMuH2X#1(nFl5O;}Rb zYYtC3nyCDx!mOcqNd@Udq)4+=ks_z{@4vT;*jasO;0S~Tp~FXZR@UeLIS1i6($+MP zlq`uCM#{>H3d4{?AnFBVBO?c?pm=0t)7=o3|Le-p8<;uoHzmIP5(bA*7VPD#SAv3q z7?42=p|8Sr(>ppkx1`^aK%VI7MMOsvocKy(V`6~g`Gxm~qWvpKvjveUl2ce0mV}ZnIlF(Rj+pVm$ zwAvC)rIF*;zv6UobcC9Dc3VGvbaXVxQH-aVQZIACjx&0HoFZj*;Ul+Gv4+fL?TJL9 zHdmO$HvBJn3(zxHz!%pLfuOOc|O}sNWv6P$#|Fb;fiLP zf;(A7QQ*{cq1}(2o)zszKl1zabXwyJP3*|ZO(iz+liy`kj@MUydi=%D(s9rz6B=lx zQA;@eefxKSJGLX3)EXx6vqY60^O%oop~{px&^@)3kWHkLDkp zoE)g^WjADmH&?EFO5={~GlM)yMc)lKHSzYQd*Qo>(|)o{h+rk#nyTrkd+5B>9ftIM zJ2xz>ZrJFEk(--~RCP+7vo|lCN^6Ya#tQZ{z04It=|#t_Cm)Ca#hYI_{~fNg@l5Sj@*}U(=CMV z9vrp}qj-8(oDcG!jYBcHe^E2&ii$@h(kGV7&<+%3gR%~3{QfCmBocq4k z#sz}A{&?!kT)#>Uw^MvIM7dB)%A;PQbMfgM_QnNitPhk=f?I zuCMU%6Ae8D#PU*oG#=+l^pWNV@5?pRXl<$N7c623f!V}R^QT`VPkhWQib{|^!?Uxq zvwHoS+=$pKRj(y3%}fs^ibHf`U8)&;f|9y}D4v7ELl#oJYKr_;uEKv4E;sJN3`Of6 zSqRbcz0x#J_5RntZY3N8xhZjVu`Y8@(pE^F;$|(Io0}W4#!72usuPTc#%{66@)^u^xGG7rf;gu?%TG=CFabYEH1)5mL>1O zutGur0Kln7g^B$9{3@@@8Tdir@y>$cix&&Q2|Y&=1DJ?OH^X+{tdPHw_tYse_+L;N zL7O5=OQ)LM$~J`XI)O{8{(jWMK$wVNT^cXKCvg~L`!wC|_kgnR)`$YHK8OJTXpm@5 z&H+pdPtVM`h(~H;0EVhJga+k=@B;c6r%h2jx6@Rj_(BZXXkf_ZW&=>`Ls3!D zYBNb^KBUR-TvRA4mf}s3B0yC8g?8R%m~+`I$g?|*rg>}@-w1;PnaUBI>f zup9#`TIgtJfxj8H1g4^8|BE2%e*EZINojO^JTaf;S{9OXV`F2{iI^BCa%A1b>|-q+ z3G9Gp$&rSLh-eG3k4U!^78c%(no0npcXM<5@94Qlzkd(^^hrgDT(5jmE}2bRR~K1P zq3(LOa%qsM&U%c)orU=Csqa*+b;^cNi4udfFHKrn8hAIa!H<~l33w-leMyiH6%}hC zl#DO4IbPe?$Y(s1@7_5s`1mnJRbO-n6$@x;^3}YPy2AKdZ^O{P$F4+Xa_X26RcwT9!yi;(o5`!Xpdd^648s zuXM}&4nVnD){vB^K$hErUS;<;Yf4-S&bShYHCX?5!c3M%m zDPX_$VzSZsDpgQlPxa@|A2E+@1|Brmswy@6+mQ%hz5s=jVdr;`-wW zoPZ~Yh=@$p+2{@VhkLc(x)=vBer0#52Y{)z=1%P66iZrM5+)1JM8_@@Qm}|h94Q-{ zn>_~y!mu7vqwmpoqk~IJxqxE|iS4T?Ib=T{mH;pe5m5R$R3Yv%9X-oI16v+Ux((Wa z*sH*r1cB&Pa;#RK!NTOG08WJTuyj-1x3RI=`}xLU`E%C2Mvon1&D>Ej_DM5lF-O_K zPQ!G|@TQ(tfmC8>2w*H&Q6d$B!RPZ+3;%9|68K`63|Bq5Tw^UG&9hs4jis&*{t)om=#x zww*t}ydfh9^NebNSK^T_E)jdK4wChn3Bq77_?s`@&9{@-@GUJZr`miPZ1T!yrlukR zxysNEq)uj2oSPELOQ0TB5&vI|R#HFa(=GBUPK z-%DUq?zX9F>*o$0bOE$T+`l8hUR}haPEnF6!aBQ}2d#rEp_~j?CI`4I#=!TfOb+n3 zqdzkd^Yg~;tTt?DA!DCEB76&pcW%iCe$Ht5QBYAq1PDt(L4gaF#DB@;(``2wtoHu? zek5UBpR>lxw*OFAL+Ww+^aoKl^UjmOV|>aj9+<&{MQMH!0rd%O=30 zZ{51(l0gQ=#F!-R%B>bFiHd|I;0&7GU;qg@nRw{id#eBM^N|0M;b;WB=M`V+jiN}j zqy-}?sjO5`S0@5mOMdC^*#N|BrGnKj087otSOF4mFc+^qFb;EbbEQHpkYfRGif@fC zEfw=VD7igzL=L)E5*(44?G%6k`~V?!3vganae4VMVc?^&v9Yo`I@lo(L2v+3F9eq) zny>1;psbaAtK>B&$dyP5!m53a?N2WKN7pEE)W-zG#3F$O6%}zXh&zX(1NgwyUU40s z4j7zX`nO)}qyI5XmC?w76|sOTNn_6?90n=x)cj2?7^yeMu*_CghlS4b=iJRXNT;g{ zulHJa86-Uucix}{WjC_KuAfQq=}+I2kvwT{V#W&1i~5@|v6P%91waZH0v?EPWUsyH zh-+9zH(piuh=`bY*o{eBk_LXDofA+F%P8McE!1lCKIDp6laIuZ)95=L_~DS|gQ_gz)3# z3v(9b~hVZ+0Z!w2ZrniG`RSeq#gu-xIbJi{_fE6FSE_!|J6*aK1K?I%4f)Vbwcv*q%L2CsOp9# zsd3OUF?HV*{P+$lm!E4oLw8BwYQ;Y+TGqP;WmMU0KN& zu884;kA6NC^cAyE;CeARjRx3XkgTjLZK@)eOegv;37>vcp*0<|(X!x8LD^ptV@vk= z)m65T8FL!A@Icw|&43xTK2Yw+9@9YazU=)Q#CGzKMPuk1Xp_BCc#4}*J{xh5bjLLC zYYxx?22rpvVfhRcM>3l!U?^Y}XrYnEyV9iDV}P5)(chQTj6QGeM)8D4pgpavQ<;D} zGW-Lus2$(+2LP!fc+f~y)&!;EvDTokAvZHM5r}M<_a^-EBsagU-Z1Wu`R>zNZ-t?EYmqVy?>X> z;4)o}1As4})6NjAP=+o`UQDKW*^*5O=HeYq7^yQXqmDC43C=(q!xzE;)S3Y&{W90M z*jN*EIxk?05dyL$CXMAf2EytgMb=xglCeNU>a(o)Mi$ez+fB$H30n0+SXdg%*X)`r z%`Ggj0ZBxvvfv8JDsl4Jc#VDiN(zFJ1N=Y?iiba7$?Guc#(0y43)9^)A`l0?Re~Wo zoSblO1D8PFC(Y3zUK`-|tW+^w!s<5)QF$`RMWML3H~Bk=&S_{}_Gk<_d2YHmWK9hj zHJ@Q;Z!h)@!%JSb&JKUZ6P}brCM+Vdv@u%1keMN%hza=fmC#J@;pGJAnmt81=Ya=t zmRk6n5)-)im&L^aJxYxu!jU+h&8m6iaSE#29Q6f?3DJB(DwI{-tpC?a+y97g|3@00yekGm zyt(pr?qhSHm;G7)xeu zZWxmDtJ`JPLIz=)t3=%M2K%m^;~oK+wzjs(Sdscvy&ZjU*SoPbiZo#;-mRP>YakCb zI;{XrPL3lb>%1i`bU@2_q1c-4MtcIif>aNrgMi7(>P)nbKSm?~OE3ZaGax{QJPI4q ziQ*YB=B8HZ>FK#);GC4*pdAex!V4Jnz!wtYJCDroHchs;ZBl{SA)%ZJH1O4uuC9k5 z(q$Iu@9sYPjN$>xi>a+G3^+Z=u;e!H)`D07g5#(qW$1r{LHN3$>>yco(GsBW!0Uso zvyteml(Mz`HT2Eci5bM62+b*d2*rJ3AXBE)N)o!y$CR*gdAu+%KAu|EZ7w|~EGQxp z252Pno~NO!I6@xafS23evb^ur>3Stmd>_ya*53xi1AQi%FRWz45kF?XsG)%xC?Hnd zw+94ZvGMWU0x(xs*GRsI602&g{ML;>f8<${IGc9|1=T4)($Ln{2K<(b4&duYLr=={ z#cu+zaJ*420a+_`Ae(>~ZG5nlWKIKJ-V=jDp@*DuZDB> z4A*Nit+T~ke!}KGSBORnNt=>yV>s_FKFpB`U}~-`sH;m$m^jJ=i~sra=SaQ+_{*0s zNn`qeG8m29RJV|2^)(@o|Ql=jX``?r7!B<6P}Jfi3x^9lmN zX}tLs;AeDdk+rzNxU#L}5@QZ%>I0Yv#C$jBwbYPA`BS7G5n0kr4` z54f9QdRe)-YgbCx8BitSh^^(qF>6i&nNv?`dCkPf#ehbz<&jyrecGZs}0zu)FU-aM_X8c0qEPy%!$q$-@easv~z&y5@;iUtV~ zcr;T)pX$oF-0IgmZrUneIc^7C108yX&gXj@1|=4GJi0sreX_!y!6EDt}C zfp|J9lAy;01Jm)Q2rmzIQ#8p(iWkY(m3Goj>SYpn#lwK2AQSHyV;uBlK+QZgGU9E< z)&sdMg%M_wBRd6LoB>t!SY17CgWT`~5-I13kLXS_41|DE1wTKj3;&KAxd*5$?d?FO z0{1KeR~-khY=Kr1ZW_tgqvL9{PMV9y&IE@rQ(yCdyaO!~Q&Re=G8PY(2>RxC09b`o zbxeE0$p&mn&m@qio8>&E-fjl^cH|CN=iO6Zu=zjS z3R@&76qJ;gQyM8e1ZvtofiTiiKz6@eJA4b5m|@rVranM6cr%Q3(kxKy9cB0ykOT_~ zu%eg0kkn~Y;(+AVu$k4H02&$6Ds4d$(PL$0wQG0>G|LOP@&fwO4F-UZB20~$Q4Mu< zEDXdxMHHHpI6&$HdLjTTXDO&skf+z+JlO7d!l`}00;D7$MM+3V07THHq=Do7oM7?c zLqxlYb9;P*_k>uj(ZDf1-TpPW$#gdnl=2VR$W1*-E6A}BaDL+HnIAu@J$B}izYrGs z{qt=;;(y_&APm+_>WD4y*txkmkmR}BB@Uuufn?(9;gRuqLbvZbZKeF(%W_uneZIGn zUZ@R{VAfn|Kkv$WcXdlkm*eiwcLGtF??pQdBB1`%Q74nIHa$H(xuvJIxLDB@e^oFZ zTd9Wmf-?X)%1K90Kf17xfMCTyqe3TGmC5UEr-SS3MM1h`>PG5?b1vze0|e%d02yKR zH-zL69Q>5o^$d_}0mU}PBb{Q63@eo2rGFy8doz$lq+7D246R<)`ARR$zRJ8WDk>xv z$pBb;@Kc>zqgIsQ0Qv|3e{f_Mfj~Rc{9gRnuZg7X^?!E8uqG%p!G|=V1pm|}D?7U| zu+>vMM#IcJu(iblc26K6r9F$acOV+4ZTE^Svv@Kuz>l}sWH+pAoovw85H7erb9F``n=B=~;;)%i)E literal 0 HcmV?d00001 diff --git a/assets/simple.png b/assets/simple.png new file mode 100644 index 0000000000000000000000000000000000000000..99412f264107e585bd44cc9590648c8dfbe10932 GIT binary patch literal 4486 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 literal 0 HcmV?d00001 diff --git a/assets/simpletoolbar.png b/assets/simpletoolbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fc2c3af51b90905995e3eff050191363d767b898 GIT binary patch literal 5895 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 literal 0 HcmV?d00001 diff --git a/assets/slider.png b/assets/slider.png new file mode 100644 index 0000000000000000000000000000000000000000..15f73c9043ccbb9ed74da2b851dff8df0542c1cb GIT binary patch literal 4827 zcmeHJ`8OL{*A8l^v2Lq+x#(4DD%zqo#L%J<6){E3LkSW!M`IqUuF`8RZB3~mLQJ=Y znyI#^P^lrb=C%le6fsAesB|&l4p&Z)S z4sC=8@d!o+qLBgq065a$GXQhh@S%H1i1y`>he%IEuqy`XsS+6etw`pGWg_&ii479{ z5COo1saXG4gQk3u<@q;Nu+bfxu!4=5$iST4!u~B%NG;fW^K86KMxfkGqq01o{Oc{Q z+z0vbet29>4Pr74?Y);iyE(irrPH9+u2Z9Bs?%&c;+leQTvq9QEI%2? z#{T()2o6>uHN?6}-!VAg5_-|$8oLCf4A2e*b^_-pTHSK}BU(0acqC;?5OAr;w$5dv zpi?<;Ie{4nq<=B2%sUTQm|6fQ7~cG47#iAynUCIgP6o39YK2uh>7xclf2^W`xyp`@ z5Z;`Cma83%?Lmjmh$gjP!nu^_w)IRCnMTZM%;5?1PYIb8 zPE}>N%EkoF@kqeJz>TuJheZN#=EZh2)rQ+~G1RT5Q|Q;G#(-#VyqT z`hl9;0oBA(3=4rvM6Ao}QE-Dz_^|+ys^804B@Xi|etS{eA$;Y66s&B<#A3_G%)2O& z1MhjcWZlFddNwF1_Xn!U>$4d61tox96!zmRcyxPdFsHCk8N9Z>K0ejtD+|_Vd>2xU zsNUiFxa%bQ+t#0u@m;4wpcGpVBJ*JkRJHEZz>g`Mr&(%((k(x_)m^Wau)SLllopQ_JjlB>GcWwx8ibm0>^hPZ=hau&X9dd70l8yvutq3tD~jGF01j;hJ&(eSJVQ9 zx$z?S?;Y-sp*bdkH!jyIk%D+W1ui~9O*W)cYx+hUI#8|UTvR%-RCUb_SY0^?M+PCW zdSRRJhz9q@<@^qadD@>wn!8aB__- z0+L|R6T!~Iq1IHY z7Jv}aama{$;ljUV-KyiM6XpxI4YnvG{%LT7VT#0b<>c*k z>#BP7?}OPQnr+q~a_rC7a?QuDC%RjVn-s@pdes)ATJAW`N7>uU?)&<$(Cq~BT`Uq_ z)G|gD6s2;i&~?@$#V4XYp$nNH$<~D(A-#izjQ)*o_V9!6Nl8F|3}*lJQ+gGFV8ueR zsiDJh6{lCKi(TTwRGzJT$c27e^0@Hrts_Y2ZG}#l8U7~T*K#Yy4~VwX#evW_|6GDd z;0pqcb`+HwY5T|YBifn_f?7_Pwh>#g1i>G;b-o|yv~=xkHl$9_MmP0q$(xu#4cc69 zo^#%#zLGv<0!a%xa-MtqvH~SH$03{~-SGuX&&z>UF(C#?783I-|cR}rtj|3oPHLy`pMT-2?z)% zDk+VPl!9cz2m}J<<708}UY~4g$ehwS5{te38yh*4wrx8jske;q^ESWD)FdS7+d5Z3 zx=N-s{7f5eG2QD>LZ`;MDL%_(QI*Y(JvVNnOqcaG)^cqE8IyT121AKMy{Gr0LkYLW61)RJZ?q#J3 z5UI7&I6Na9N0fq<{B2jWC$*mOeoVdQQ=Of9`Cj_ll?4BRvtXCOi=Brf>a#G$Kj_&BlWqPrti`RJb~d^ywfG$y5WpRBXw>tK73 z#@s&zilj>xn>A5C1%ZEG63aesbD6+52NRLhvNYDN?1PY24%2S7_U~1|#CVKb(B*x9 zrBQ#SDNp_Wvicexx8+-0Z8x_!TndCkp;nOE2<}1eA9pCy+<~HX%FQu3K-lnGJ96v`= z`4V#PO3w1ot1GM9P8-#BZ|)9wTKW0;aZFE5P1(R;vfcBsV7Qh!tFSlwjFj9FFCD3v zYM+AHx@earOX@R4jYp-4#GyY%HCy^P)nGO+WxGYKBR!r)0K26VjfsLLTWR;2jC2!2 zK=P`ymer;9H6vw=SDa#*BG1MBEUnec81Jtgnm1M8ZkH7lJbllGm4W(qfSe@?Q~GqZ znEWCamgFzdEDS?z=Iqm*wRk-j<@M#9V^oXhHm$d%wM^5S3B^s&S{c{tCF=!dIL_!` znbzbA?P+Z?6^GThc)i1KrezCla8bocb0s+pSlfBLKSg zHrrEffD?9D{2TzF@+1xbFpI)=^8o-@V*>!->X|bDx4ZvOAYMtAjb9%EfuQ{TZ6hPw zSr3;{kdp%$8yhPsD73zB;0S!f!()Y_3>WgAVb9Zze0$aGaH$5^27v+I#HvI zUdgz4%`Om!Kf55!YIcT(3w2<&w&gmTEgoO?SgOdea^zGaGGdnuZwlY>l4f_}U|m^K zSqbiOv&hNG*#^=&j+O1}jeIAnN0QIW9cc1R>NdCA=DWrii_hyc!B=^!0HS zU;MSpBVA>ZkyYk8>5cfcjFuEen7={u(5uj%FnYdzY}Z@A>2kv)L7bb{rD0xPUUdZV z0w+6sxwBD}W=pG>Zd`MPS7|B}4D0GfN}-*l3a1v8B?rQt+lyBdbD7yOdP zNK`vfG7n#Up1OO`rlRb0f^7?ZUR9cp9nXgP!3WYQimHhM;BVbi9s%S^5*F78ZmA?-BAp2k41dM7D=%wsX7o0aRa&v9?m z2_}g=>%EX{WOZGQAH$*r zJc2h1DBGrI`&qnQq~-guqF_WybD<4%@9xqel=l4zA1rUKxYQ5)S@9Ci?E|(EA5QS1 zw4>(Q4Y?g0me4X~3=5)HVSQW_!l^c*LwjRm82Ycnt$G}bK#3o|lV+Qno8dif8F34I zlVfA0j~_o)(oXs~uzOU8?IavMxuED;MpIUW=Ur*qmtEpZT*Msh^UJS82^yOUz*XO) z%?@umgA_xcM74^=jy)9d=3d&-64f3@yr_?3RMb1Acf#Z}XpsNp%^h8~WdCRvC}Th5Xih)&zQ-v0_JbR; zy5KY!+3^>2CFKPZ^W5@lhmI$MSz{hyvoxwGt-R{`7~edpFa6pf{Q;jS7v9 z?qpHxk>#nqFAAmpXx)xQcNWRsk$cWke1FU&=KbSdBiPiIm!a>FS?htiA7h^xx47H1 zVgxPsS}Z!L-yj@+i6oF-RwJ}3JNcf~-MnM^JU5qs$Abbow)!~t9h?0Ne{5-Py}Q0Z zpnPX?(!L8~YLur1tHKrOWlXY%e4?hQDRzB-D%YWai@E_zNi_BH0{DGB$CqGeA zD6ah=zDo~j5{uryn^S(^b(1N0Mxnv2huv?k!@irbq^g10bb=HC?U6|2+QtSso`c)Q z+Pc(8x|m2LlBD=s1Z8vteLjRhR}6g3tPH*(Tt}U&2KYqua5x-1LJaWNQ;lBp?}v3?fKW7%~b72m%rZ$#Fy^4VfVc$dH5NtTK}GkaI>EU<4%R zoO4dY&i}vNe|PKc)>gfGyH(p&9d7rzw@%-_ea?5jbHcSWlu3ygh_JA*NL5u7wXv|U z<1p9P1bCQZY(9k|=Je3@m8vcQX7eSm4#TtwomC87v9QRx|FL5y@sTlNZgRURf!q{r zT&*B>&Te*2j#vhEj@C||tO}njTwNtuU7hV5&8*xYp9Gw}DTe5tV|q~hqld1Y+b0_= zPcH!-jDP~>`LKMGDi#(ima5`QU9Zf&Id9*`XG`}-6T2-9RIgqUu+2VvM6vcrD^k3G z;FVp{tI}7M*JA+7mXAjh)1&@v=j|)SdTliyWeU73dTtgUJyO~?diY9(l`zf4)h9{t)M@LdN^}nhW!#BeO5PXnR%IAd>vV| zSbw#ip{bXps0g>J_+}f&bZ>om^8$V)mwPqevo-e5voSD>>? z%md8JBora=mpvrtBnpfWMEAZ9*$)&o=!@O>%B8O)r)0QY?pFDKFz4I0*#7p(_FH`h z8RdqoTxf9QeV%Dy&r-_54#Lf|6DvL}f;?s&`Jj(`#kjChYLfxf`nY`R$<}gjXzbOo zAugCGoq?$$!svkd@?L&8IU8U(|DC?=Bbg4#aJk z-SNZhC}W;uG^0WaJ!Z{HGVE^L0Bp1b%cKH5C4*<7UU$Pvy9I|LAFhqL^HLB?U;4aw z%JHpWGziPNca+K~%kfDsGXKlRsPbod$W%jLC-sRHxo|BPPFSw|NL`ujIPP!7R}?~- z_0bTrluwIO$_sg3?R3{EWmb1+to>CsW8f7#UXPTpn%MEIl~cmRp0;DXEdhF@e`2kx z_p8exu^52BToEj^T*XJ1vD8PfZ*j#Vks3oH&}JiM)kvos(y7Rf2hfygn)eA$5l_a> z@Lt!<_`dUHAbZ*RXkj7rXp}Df0-MF5hE8^`|c3OapxKn1L&*M7Dt?(yluWSmAf_`!#5anS&!gm8&W8M zAD_j$7awN12+*F+_Z?F=f$sKShnmO{IV}lPDJ*V^#*9)udlUPZLVCQ1ATd;!azw>r zkEc)F>XZxoHT_SDW2KaE;B2fZJL)(gQ8sR%%>SI(=`rpv@j;GQY3+kkMyKY=sWtsG zd4T`rl5L6+W~Fc_7O7*V=Iht5+(~-&fm-gw#SJo#kbhZy^4D1fM1waq#}S^&*j)R5 ziM=EizSCl|v)+MKr*ljM3d`T-yP>)CPzxF(vzh)3)B*M~oy4B+h=~o;GcpzyWg*H? zm!36c!`pGm@wT?OGd@vz=#}DY_)RO|lL|v0967{O_&oTBgXWR&m;3sw z{yUA$4{!(oELV1Yq(1ZpqV=vm{U=X}f%2`m^4RYd0S{C_O_I@F%X+54$?@^#6oLnO zv5)%=jLKeJTce<+9)m-+cRz#jRDrY2fH0eM5QE~u-^_5ot$kBej9{B(?1oTGA~Bt` zP!9RRTxXe}D=$a-_qzmEP>_@r9gbCPRoTN$k%&qe>4%X-g+j$FEM%59(HrUhxe|vx zP=53WT0T>=*X!hh>BMlpLKVoSiLtd?FHl$SXj&wc_^ZfMc8UQi&D-Rjqas6!ARFv{WNdUNJp1+i!-VBdj)yUL?!-HcpY~@P z&NSrQHseYm8v|*sw+DSJ0k`lAA|j$sNk;nm`c?xt<_GgFCGTq@wnp<;E^Zi2^zW=# z2bmScIkrE$d6ZdS=P~R8tHTEcBH@)=obEdsx*up~JeY6~%<=Mpgt)JmrkWE;xy-%V zpMv_OGVonhrz=-V*`wAV7PvTyzQbOmEOVhI1Gr5dl|ZT3R~+fjS0-I_Gu2$IvCt8g z$7c8nuql0 zY1y7%EW0xR6SRMACMcCV>`dOQd7Q6sa^H~%q)ErCdxqT>fj=~5tClb7kK5uOdb0E+ z@+yRpC246RZk#(+Z$no8R8^3O+gas7^agl*kFPvhr(FnUh22>GMgmN%TmZuK&gWXS zZFQep>?gD)Js(*8m>u(P&#$#I!e)Qwbh!puEHTo_qBej~!^$_~*rVH2srBt#$=%2!G7T1EL_n z@=ESeBU9iP!*{QbhS}f5ep+6*zYGkP$%FLm@*5|UxAlECq*&Zs>gOpS0Y5g;UUo5H z;u4e#bnmnub*4y|O#*=>zTgw{ieq<$i%Z5#eh_qoVJE99Rit()<0$guzyxF9Ax~!U zQaf^2X%#FdKH7Au?l{aFI4e!Jk;~myoCCs;Ys-H+9uOUqv)l;xGNNYs5`{I8(`9@Y(PPgH|vcbCaZM7|zUt)X4{WQ|<-kru| zl=3KqOy>s{g`JK&UYH8h`it7HnTcvAWQ59&R$y3I*t7giGxbLl@k6h%+1c4^pU5jJ zcGKWu9!z37QBW8?W@Tr$jKp9%#ZT}4DNpo>f}&FCKO&s|v_2f>)RtodGrG#bu5ADm zyK%&#?upfi2lR_ls~cbMLifOSm%>^(Gjhp`xe`2E_7IEfHjxypgHAiT@-D$UxFanLm^A3$j4*;ylC|f z=GpG9Ht!Tua9@RuA6d_5*8NthG(UHi@!N|BkbLylDTNBm71}@jsebxon zuJUOSVs%VrbrkBY`%O_>>m3A+%kgq0ma9qO{3e&!Q0;sd_hS*$nFQEXy9|FM;8%%M znN`?*h=ViG8CVoh!1wEF(=glHNz|K*8c2!fdUdw2VIGy_g$GDdT@8MUT02PPyg z8Hn6KH~u_>EMJ3N7GjkbhYFioYaH(fTsQR>d}e7nc76IY@A2{%BvK~DS&IE;N^?t~ z=x#f?Z%!}o&UPh4B1#!uf!dU8HoJ8a3y5?s`*T-#eb6cbECPnmRIX)sUAB5|N<0lM zWhB?qegASfY|B{O<_TfU^^PB8ChO(V$oq2zpSUxgzX9uSgS~g!3?NG_a!XMk0$CYZ zGEo`e*+B=6^OLr>Q-XT1m!*4d&-_kyfY}+R4F&nnim0uU4!~QknkVbm#t)KV-Dp~2 z@DSIjQ0(4Dlm8HC;v?GEY;Q)^$(k4W(P-Z4hDs1(jKJZ{Y)dm)l2u1WCQRs8|DqUXhB)s-+0cyX$t21`uVGgF9VveZefZx0GQEpA@{3T>cDm+j1F*X zEp8JGdt{>7{f?Rc-PoLudf zw&e$8(v}Y=lzZGprn1a+P}@b%8PmG7ycWF!i~fodzk&=Oc%9aiMm4+84P&iI`1-p& zsGIkc316E5UH0*K+aR4C>9mm7d>)93?CbHyJ0qBAU4YCEeQKZmSrVanx9F#9lGje< zHZ%4a`e-geF)fsPnfI)RC-+eB!BPH#>`|JtF!SNc&#f?czcqZXMBO*w8!XdcbI!Gr6{lHXI9CgM|Sa! z*Zz?^qxfmVH($@Ln@5rD$x6*Gho2l<0;CIH^Lpb4an=WFS;egQB-7eq5ALfe_eT(V zQ-&3;d@Gr3OMe@KsCQF*3V^-TT?Yy<(k-5#AcQ#eO(GCoZh!p6t^PnaS{Qlq=-NPh z_dYsg&W1*JwZb;|_aZ`6=)BxI_(dimhxQR2VB~cSPm8mRR74CZH^VSVmUR4gliVY3 zlbQgpV$n!L#G=6ZU`AiF_euRtJc?I@)KUb0SZX-9Ybm$Sj=ug48C40xsGIxJ?oodH zs)*1JsBlRNj05%{wWg%)$M=6sa$kRul}txye>L0RFrRF1TS-$KV|Ws*98Q%+icAufqueXukZ;KKjr`knZ9>U1b^6= zD2~!Nr+7;62wSMR`#RH1&>RFx{=#=f^19c5fTsz$$$|)tCRv*X00tazA2Uz&D4fVi zCHr%;iKbz*QT@OIOV6#$Jx}KdwV1e%+G^qJlgGHxVSNgt1-~rM30tZPrbh!m2S(eb zMf{iV^xVaSn3CMfKEIA<5-v}RFQ5ALmNgsxB$Ekuo37f!!(wt1C~I7kP);dkmFfR%3sCXnYuL_oB+J~3 z@KY*#7Wn@0cJs#<&dPlhv>P(AR==mgUJ%2lh>g3<&y{3B87ylCgL&M>?A0P!=b8n~{#3$fczE&(gC z6)!BvTTF5qS0vXNB#%H9C57J_E4SP%g{5ZnM_3AfTeHw3FFf4u2&1-N5QEVlUdzw7ZOkPQ!KdZX}~&swvEXMy6d# zxib*9`aR)l*xgRi8!BwKPtEVU{&L^v`(sN{I`1(ifw!J7z3;fBC}AR!OI)V>4I#yi z%*93JPx$7cvb6W7l)%Mu)|;}|6hmo z*N{ zD*OH!rIdUAU8(+%*woh&d&&mS(Tws=us+nqB0WBcFGt5cqX7g9B-z zE)CT?l9aHn&vxm1t+UR+f$g#4DFm22EiLVtewmwwB(Xc|&Beh+6;goX>C=dikcUiU zbDwvg93LO6sHyEdTI1&AJe+k!@yf$rO5(V)E;-ZXj}{)r=~FW@ssWiCcRs4%e?w^D z!w(U|Aly~-v&MuKRVpIKy|(UUL%Q!5SbLp>o~(W%_*Bfw`Tbmbh$6yghA1OD^<6L@s5 zBNJ!Em?}>hv-Pe#;c+$h-mxR}U0bvhL)kuJvBy{U=+vCnbsH^O&q2GNIY)AG(By)g zwxMgJ<<#xr+3e|wQs#N=K^#p9I33|2rlcsDoh-#6$;2bgtow3E8Ff4W&G^k%*d8yG ziY&jEUD#gg!4gs@6A1Xa@N7Zdv|Y9TkT317#dVWrs+%JK)bopv%CPYe=Nvw?+{zN$ zo`p!<$T1z5o`v|%y%xG^JP^stz~{h(0RblhEkiLD$ZMtuoR_nHJR;C_3AbV=8OKO- z4;h=GfZ)-COtsyN*rVxe=>hzG3&T@++j(H(Px9v1oun7eZ&@@WUzl0ZhkkySG(<*T znWp1?Xa=rw93mOl&(N>65=Q#!c&(0PUm6Sfj+2u3oD(JkuEh-2$7S}K-o)u!RgdWD z>GV64O8yep;WO243fp;+z9pCO(zf|`N~C{ZZn=ZaYIIi^-V@Z)NiJ3WS?i7}|3Yu4 zoa}Etqfpl_tcr;7lm5PqlR2XR&3mBWe8e38?G0tWU{+sFFQ@k5Fvsm4%faYPEg>8` zad&z2P_zDSsP(dIiof;#rRkhxX2ac%A*x;4w76UyizC}&6fER((-w9$%xoOL-bu7? zyYP*F*=nZa1poD8oU+sh@qQ&QiWe*q1naxs>Ua1Xy^C!3RP_g5imfKQs%DM8@)aKp z=oeqf_=LW_icUY6XhXY4CPJ5Q-aa#cHzpH4LZrSR-nYyuKHlz~Ie^Z3ccpdPkg=~% z^2=x-+s~#gf@qSkm$y5oRx~+&+XNQVcKLXFU1?#tVwo$7x*aQqdX!3ceQ7oRjb{&Z zeGOk0W_4Kg8o58Ak%|ytdq(8!X|r0OeoNLqnuNV2AO;{YKQD*Mbfn_-mjo~E40f}e zI>y`D%W!{}CxD@1i?@SDm)NGM*m>v*!SA8W8x-;91z&pQE$KY&P^t4x5Rz`^*Ax!a zm1lDk-kuI(*huUS<9_M8;%6&7^JeZ%-R;gG(0Cj$*M@$dVt5L zzYCn!+@h@3uO6Fwg`ep)omuMg6~~-C2id~b+o|@th>|I4v2cVG5<_Pdp;>3@qkGXh zr8PcSJjq65Ct9%z@3o2NIz|2o13W)HVvhV;gF0NT(zQk1NZ?p8KNOeiFE^F5DD)XJ z7|WOVpCAO&r}u_$c@d#x?k#-6iIZ+a&*$vL-h)F>|?~q6Z>A(mSG!7-|ogYlPOf~ot-59zccPH z_>ttb2Yse~cigTPt9k%GD9c(r`?$;v0iy`FtD`u$WmHj-p*RU|m~=Vx?Q*l;{UUkY zvyPm}3}Mqfs8;7la`Fuk?Vq zE=@B)XN@=+_@Z{tjecRM&3aQVn&sX>%oFWKsjz{oN+*)kbnindV-i@LZO6_YZOsp= zXlD?2G&Y)0U|3p-m9yRcTUdIGSR84DxVmnQmm0x%FTTS7%grZ4_D7JPC!ki}2DD6E zOkVGWJY2z!d;y2TPIYe)NrK6KQSkncY{Ztlu>ftn3cR$KEz9`bI||vHa?B-j-~%|0 zs-`A*Z@T6&HFb@<9z5ac)2EhGRW|Uvyjn~X=Z_AES;f|t`{sOaFFwU6Ay@C0ICx)FW-mT>Uk)W@VcGr`ko7-v zmo>iO`oe}kyajfd8aQy)XiNxJL$^EKyB>ycNs}~fi4P1NGeeoV%jd6*nckl`p|AQs zp3`J_eZ_;IUm#L}tavMrKjnl~3+@TYvp@Dd2HqnILWT`cHt0AYv2Q)mpWJz7k=FP) zp?*;D{MEn@lsCG^grt5+))Die4-o;!8{h@&UoxY=-Eyi1AIE$AxWiR(roA`3rS=2Q zcKsDyd0PJIPUhE}g7gmd)Ruqmsq%aED)d@&exhUsGj?1FK>*4dv+hiZls{b<%I0KY z@$|p32n%lnnlE@VDM%k#uLPfXpF}mKiB~1s)bQt+)`s5S&DnF#I+IVF9{tG%Qo)3m zI*SY{PZ_3TH^*R4qU9q-zwBJjles#dX_Jv(ljZk}k=S$Q@CfPY z6*C$_+{Cq384KrdRe%AaO`U$J$2(@}!PxtQ2pZCNA)6?OrmLT*aZ0J!9!dsaaka6>mbejD4U+E;@?vxsRUU z4i!UTHq8gZ?uteq?%#-ky3&N$sbiPe{^2HwClI*>*ESWOrCJ%$wvb<1Nkq^biB)pC&v~TChUMn|oNC?g;D9%P4*U`k_Q(k)tsc%gEfFc?K_+3 z$C>b%u7=CCwbyu}SdjrG%S*=k%_+(Yd??n+R{2t!R+SDSK!7g}j^iz9opt)|-6cKX z1{pcfc*junW7@kbOeNAj0Q;+S9ElY*pJ%ejhYzQ!CY;K;lrARFqueI$cz?^i;4!m$ zm0yiv2jFP%aV?khb+=B*rcCUSuo=n%q`?GA1qEW;#(n+f&9Ar(lAW45W}G7;aiYBI z^^I(G60`k_Hp!rBiOsRt?hzr*`z&$V!H~SPp&tTZY$cG?I zHCKAD3f_3<(P<#p`Nga%UnnFza3k(LVwEEp9y2mg5)FWX9k7{1zUa+CNKQco~~wK_PG(M4JPW_elFZlcIP} zTxMZx03Lkl<|HVPArjY@bN%AN$MTTp-0JX~qQ`ihuM2ilokKqI^88}+-Rh>ty#Eqm zEo~?kt&0q5@oU2<-D8s}7{P{rXVa8S!|Am3$J5+?dq*9U6Ym?1^_!J!tEHU%)hQw1 z?N(IkwO_A?-M^{-Z%LDA#)MoI`g`mT{aFr*&{NT#6k0kbJLuI z7BU7UM8c1>Jlh^yU0scfkH>_nlv{}mSr3hlpI*+L%3jW4Dn>$V3`-5mHIPfr&J)!1 z19xp%HFzo-8e|(e0kWYM1z8y#OU`jgNj+b=)G*nVQuweHE0kP$GkZ0+q(q&k##ZQU z!oI5P1L~SO3vX|U%F4=*8@3{E6DB7oF~~$Ee|#1C4g-T;Y_subNkytaC*W9>{Avb0 z&%S*Z)0L_tsrjz5^ASR>$kMNqYf|kx?ewES|>I2 zvEpT{iX>QJE4;6}M86%Ccvf4gsZBxVbe*U`pG)^>V%%LqX?upnXHr9P+aiR6&~r$mN2fNsZ73izJ2!W-N*31DW1)>|N{^Jusqh-}C!_tc=`%!LZ@2x(5;<`) zVJ7f>BbBbU1iAFV4p%kTR><>OXjx7Fun(H-x^)mRls1fIQvzMopvm#(qiXdDO7YmR zMEe6+x=Ae0ZyQcg_ksC2UP&mj#FahS2q#q5ZwWg-lvi@x5MiV~Hqn_iRb zLHv8)pos~K?!Z)iwSl>50>rA_$X=}NlK)a)*_wNF5 zj+jk4a_$#iC1)k{bbD32@i=Z+5%51Mp7#opy1Z~=S>KXvTh9CJt~(TFbs1$(-*m=n z>6C^_bfZl?Se=5+vwB@+-8vZ4lC|6$pf@V(wr(Q%Hs=W)51v=c6%|7lX1jV|ri){< zF0*G7k(=vJ*u;5Meh@!d=uyk6zf)}8O83oe+uoiWx{t5Q4Us172HNKUrY{H?nQ|L^ zt)Dt}wdZ&P67W*0Y|pS?(JX3MbYn`$K)?i_1p1s`6~iruj5M#+xp9_}zn&3U83sxv z4d+4^dpZx#mS=@4cTH6ow%MD97&k|;;-Wj=0aAw-C4zq|gk^uRAlYmEA90m({m&YWDB=V6MJK8xD>1T8q9 z;Ti=$68$#y970_D{qCJNBXPy{g7}c^!g?)BYag;4{YA=D-D0+`+-AB!cR>GRTdy{z zEU!%Gnyy?_A~L&|NdJ?d?ctU%k9z>qJJrh|*b^cn&IatKPh@pN#ec_IBqq}o!v4$iANX_wOpk#m{4nYRY#Ge=-c0O zJ0Y0=XC);0<6gpOA@J%&wOkB-k45?@Oq(&|1eLO-JdIw_&&11*nK6b`SSFEKiXJ0Z;8iY z)y*+IDX5&j?a{ocqs5DQxuT2X?OAb+PAR#Kt3LEVs|dcM89R<(`frKfWc9SpD@p_Dn-v z9f1jbtbACRe`L)_oc+T%Dd*65c~TGZM^#-W2hA3cOC=|WTBSZ@o->A6rMQL&wlZL`y{t&VNm9dyz$DzRryv6H2Pi>19Cn1-dDiM>0Ch>fAM zGcSp=gOjPDiL-^NsSBfnXRv;PA*c`Pzdov#E;goMD*vfh`B(2f?F*Zrzl43hPU?8M)Bm@&8smyf=xO@%gOVNmf69E^W<%Y_Jr?+bJn3w7?x&> zL+i=7aByI6T0Gpi3WyI39n_xoaLs{g9n)B$jBe3SCg0(Ee_?#K4W zm4<@^2h}}6-@cqyQ$?b~<%th>c;0sDRQ{(N#mCrlH;SueI|RR=Pchn%0D(?PEs?O@ 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 z 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 literal 0 HcmV?d00001 diff --git a/assets/star.png b/assets/star.png new file mode 100644 index 0000000000000000000000000000000000000000..70890c1808298f9271b83647b4f1dbc09bd1ccd7 GIT binary patch literal 23906 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 Rh&;;!P*Kp3uaGql`fsYWul4`{ literal 0 HcmV?d00001 diff --git a/assets/staticline.png b/assets/staticline.png new file mode 100644 index 0000000000000000000000000000000000000000..6da0ce492ea4a4289f3c401f029207a83de7da8c GIT binary patch literal 20561 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 z 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 Pzau8bmhktNZYTT)EZ#oY literal 0 HcmV?d00001 diff --git a/assets/statictext.png b/assets/statictext.png new file mode 100644 index 0000000000000000000000000000000000000000..dd497786bc6e1b969195155226d981d9e56581e9 GIT binary patch literal 22953 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 g#shpXzGkx~ literal 0 HcmV?d00001 diff --git a/assets/staticwidgets.jpg b/assets/staticwidgets.jpg new file mode 100644 index 0000000000000000000000000000000000000000..acedc65ebffdeab8dee4023ccc8824c34053fcff GIT binary patch literal 13691 zcmdVAWmH{F^Cx<6NpN?UU6+^1meDUxQzN0B}$NF>p8taI^q;95@6VxYs@a z6#xJa50CJ-|NqhV?;9Nz4G9?@0R<86&0hu!YybcW0Ui$FEhZA;+qWnH02~71-+mNS z01g^14JRG}5wWDEu3kdw`~p59iI%y`*TkfhwEXEg?Yi!*OFBmIEIKVcmw+_zldD^O zGXpmdFCV}B=PyAm159$3?w%#T{(|8D1OETj<6o^f|5ob1w=M(TBEbDs9{~p-4hVp_ z6T4UiLUd60)dd`=h;Q6%1b%RQEt7XNU-kI`H~HkhCS4iqd_kXhrDJ`%WR%*Z>aj=B zACO=yMGsZ1P&L#SAcWWRJ+H~j7AXL(}K`CLCgHLQu^apXrAmF|Qjc}_gz#RL+lLs%a1%Kdd7@Dx^lj2WJ z`uGl-(d#Ymr;AZM+>*vmRQ7$&5U5-L{K>}q5@v<2Y6ILO_0pa4-cK+_f+D_QQJq&P zwgMDn*kg111=}M;DU5tk(kxyaML#N%knmh_-T<{6E(KupN_HMDZeni2Q>^(PVvzFK z{Ld<U!bpBxiXS(kG0Tl5oZF{LzB=v-((=!3y-d9tt?u~wND zn8p&@XRltOd||f%*S5wj)xN32L8@uMc}-S_EizB8+~OBAUa7zc%_Je4Y@1hhIM&^M zpMWg!6(5`%TguCz0sWfY{?d2v3j?xJqHJz9PiF_I-R(%$Xfn4bp-)9N6CzQjeajN? z3D~7mkBeYpr8G<*T2wn1X~%%h z5*_CGChKl1OILUF6V8)JTbelaDT|;gl-J^H(mH$xa_Nw+ZaFUCLL$@H!aq-JJb(uz z-?>6vSv6G4k^4GPs^Al8znpE*x&F?VAMC_!rEwDNP&Z3pkz*_Z03Qtk-tV2HN$!kW?0Fm#vUmtW!$4 z8Hqn48AgH`dX}=|8S1X(<=IWb{k}U?@V#U{STjG*=d9+g^>nx5^zAop%V&Lh#HZwpSdIq9%bFwk@s=1|@+%(skaA7eaJ`h< z5_4qI<|k#Bf}5INZ->InrnOk>`ga*+JPVjdpt-sg2IowfUT3fGBwI4T)1=i!5x+9|=HMU)=GMr?TAVx`(2aN47b+S5t5iX-y)JCo)P%jL7 zVAEfkv?APwRXe#wuGmea6+5c&;?w+)P?93)kE=iNGoaWllGG}z%Ye^`lE308?YHi_ z)A&Yi#(r)4p5N@b3A329ag$cRDA(f_Oc){AL+472`|Rh&p~^aHAZ8K+W7Z6@G9U)T z^fTyQWS`9_lv2rgQ4^xigwe)&Digc#qk(p9RWHigi~Q!n%VM^kXiYaIm7u~5O~xKU zN6CtXf@u-H6pdTkom)#tu82M-hP`>iCA~j01%7B)nx2e~xb#c6t@-bPttHk3dz@wa zu>%JVbnv_sLv2wSp8;NrE1xaxC%~>_M}j6VeX*9a@O#JVVI&sOp7mb>y=0O8yGsL! zS8{YjofIHyA~|`q^e#E#ahYl7!s9*EZ$J^?OWoH$=46&q<-QBz6mFhEA0qNx44s=v zrDpXKmz-(F6!xOFrO9k#EgZ$Ozv&A))>W{7%Kr)HRkLH9cw=;%JgalpmKJupqWk&Y z0Q2p3M{xxlg3K+xMC5h@hLm)$ISZi*PZqsXGRk|VMHs719m{6#6+(D_`@pbUh00R} zulp&%bMt~77+KF1^atHxETPkK!$lV+_sw)yW;`Ev#PF?~{-#pn805^U+pFJdg1JoM z^jJ=9XLvm39o?G^ z%zZnMrnR+Curf(W*5ZqG|1|R1VVA$Mo=vau1_0K-$CKY@8%hkL(36~x$x5sh0k5I^J8sW`;tUnWJQDjxos15aZR4BGL zKu^N9ZS+1*h@-x@-V?Jus3BqH#IIXAq4#dp4G6WW)l7OIFR+~ZWwlCH#fn$8ez=o4 z^Tvn`x(Q1@04;K7FkXMtqXWa04xS;+dwjk`1SM)(wOrzAZ+Tnpm~ zP*L7#ckEY$yu;{qS;@_8TRX4y7ZoSn?F*S@C2f;Q7TKm1xd~6(gFB!+1Rt54D>iBM zF+R?=UimO94TA2DQaYSU4EmQtEFe81uYe(3N<&)=#B+L2HkA7n6W9^m3rp@!2lNcC zP!94xtH>0G{0cS!>3YW$5|7U3Q~eouo!{H}c!Ev?Vl`rn(~70g$JAXcdCS;8RPf}9 z)iYPY#`B;ivePC63vjC15tGGx?m)Xz(C;E?r>={`=SMr3YuIqzWRiCNcx2P?CnZco zRstI8TSdTl1y{(3Jx5_ATX#W5OdjkoZ=}4Wq9?xyMN<5^t@nuy;^)2iP))hI^+G7u z*6#4K%(#XZb47GGTsm=Drs5)`4NdH*-99+iV@s)X(yB!{o5y1Bt5GS zp_Sr`%X7GYXF$8esp-GP#5p>@0^ZP>nKr%HE56hHV2Y{n3J|q6Gj8+jDp{mlAnV?$ z8a+u9KWW5VIh&x`va~;0=o+`VJHWcE=e<2K+iy%Xsp1drHAq|J2w1c^GyhIWI@Z|+ zercCD>--Ne49mS=M0nHvTo0Z-V*k$}kQ503WULbM00%fk3mt*NJJ0h)DTT!E0TCCx z=~(>kd!x7RPCI)G1}#MALuG}PDh&IYBLM8`wI8- zS%S~e(ZP^Z0HAyTAiWr(4jPaqCJmu`F-$95dj=wa+V1ubHq0-aR;Ltz;@iFV7xwLD z%#;S&0Bve2;y_=E$zPu0rm+5gX3QQdfcOz|@cDGrmo^3f4uZ}8D?osEaZ!8y-fRME zP%?SC%FIN|XDdKJoPxq#^&<3X^T~}wm9+nMp1+gmI{4T0|2Ni}K=Q;>s*&mI;JcG} z0mjO_5tLWJ2OF_9(v!SpRseRH;0yM10CGDIGK7?e0-Xh28HXxvc(P2>{eU0t>Hs6V z30wa(M=IxS&Zb!Vs8yJpK_*F>7&Nw}NLh+cuL;V*qT5{gVM5V1sYuO0ikAZT72et? zKgiI61#=Hx*uSgYPpaLaqS&iktRf!=w{C`6!D$uU(Xyl?IJeNdPr9&l5BqYk5-Amn zalt&El}%xRRv4+@pBwZTNQYkfJ5H?0uFjsN0*A`h!z|156;L|qUlM*i-+efxHMQNT z9q|g7TKPbQ|9mmG=I>Ftr~bA1^W^U?EqCW-9{lU&niMhQpSj}e&#Ke^py!K?D@z?5 z#v~^;*WW-8n?5jVu$fx_W;CM;mLZim4hssMP-b$rx0XPjLs0Y|G1TM8+nsH_wpS0^ zg$f$$C(8vm)jTIGE^DHKYwIs}x~`c11p zRPt=(s1>u~p{Db`<(GV84==xu9b^ANL&;3}xrd@L9Jf5Vw#P3R8X=Mnu&C*^pITYt zfh9(tTD#2MW$^kNIjUMKuDXXiE2cWodEKVk7~FC3DRp#^9Pj>ZxZ6KJf)hJbfzl{* zZ8`O?Iqotk!%g1OwxTS%Zz9-%ypgeaa=}UEYPO$oLGV1^OxzX~B2Y2E!{dF^PjEed z11V`CQH=G3Kjsk-;%PS$P(5#UZ4X*F9#EV-$ zpQ>sbiw+O}pVax+oZJxCrO>{ zaZ)&2!^VU>1na&63MDo840rjfjCUvg%;bnOK@_QI6On@!;3W2*X?3f?s=mN)JQ@+ zKQ>(1PoXN@oVxI{Ft~&53kRPYY)_;xzS_z5i|N>#Rig}ZHPp;8eXv*QR74AsJ0k~7 zsamp!0tl7o-v60`q21>I0fpHaoFJE%}mQlfQBYOWHMP(}rkFpC|7;NK8B zMxgrW)c@U7e|X>e$e+>b9dnf4)k*ysR&`H)k0D{JM&C%R-%5`@>H&lU zdcY3x+O!37Rki1oSOW1g2mn($5;S>1>x#qH8`^D!IWK&pycmZ_ODQR}-h+@4c>`*xDY4cXQp_mnK1>BcCM^!prn)iL;Ge^!lOdU zpXkEn7sq>cOaB=L|AJ%pCQ)v&c-Inn>%rvVdCHJm4CR?tY^mKQBo@sqS7|l2CdG=1 z40UxA?JQL(fE9j3SiLtY`dcp;fNI?6za|;a&^YnjOqrJ^jBmZH?_FDgNBLG;$~hUg zvu`n7CO1f}guz|vgwl$qUZ=RER;`?~6bU62iPY?BZeBIbF7tj!F*e+YOqfpXV=~zH zwkP9lkz7LQ&tW67;{#0R^-y=f?;kQegj7!Fc8c%l7c_6uN73aopcla`* z`*kgH6hZ>P#TYyl(fR$$8BmR2wJDKre|cOC_TYxsd5aox4tM#xJu}?L@p)2yqHNc4 zj;`|t@Dv2sBLCs~;?E7)zqTae&z+XmXD<>j`E%5bpXf4($TkO;T79z>?S!-z;Srzyk*Z@%KU(+sC^_ zf+X2L=QrJFiDFmXi-)rr%?4ylrew)2?rUGS;EFhGy+L>C4WwDqSxSv>B58nNWq}G- zj9|I1a5(J&mO{VmzLDxsPnJX`Cva1trlF8(m~r9DnJv8+?aV3L_Wv|dqSej*KJ}-{ z%qsf`!)J}6E=^DEhs$tJ&3EA4V&$g8nlZPwLvLW;TzzOD`};dkazh0B z6v-=&Qjf+Xi|CzdceTwbsCv{V8YAugai8GH!zudaPviILP1fzg=S)Uw%$iFbMIEh- zu^jf>t2gbnk2|sF8p4)?Ui{=w37ME;~$tWR7dC=OEl%m2hnK5 zR)K`1rI*Y{>WHoWm9IfWWs(#Ee7<6u(zYw`(otUA8=HCD%pFAHYxBtdceU zD6*gMWf3XW19JkYqLXp(1hjeHtoC9IbvDNIpubiYrqn z!xamV#vnx;u8(f5naxSjh-yPPf-?rJLbh__SXqirLu zomo_^6T;6MZG;*~|9tP3@gPNAp?uk@l}p!$W8223jtg^6AC6|M*jhEY&P6 z$xjsG-fh}N+`~T{%GEfNJA*=_&|3hXtd$_Gw1XNvFaH&S!5bNeB5U?hJ`uvxs9T|# z{(z^MW%b_h3*Vc6G@NB6rXhdCsx3c!i9Ubem0Cn=+!K*_534UD9j!PV1+bLnBrNOR z)`m*J!;?RrQ=vG!`}1|sBzG$o*3dZttKHEY7YfM0H3aHHWTBbOIA2)OMgROBcMu49>n zG8@^;edRi@L1H^;B^UpYOTNh&VFev)_I%qv3z9`~V)x2Nzo^dhsqal8qnuzCbKSeuA&b;{*TqkC({j;eqhbl8 zM9snz+9OGH?1qH9=r(ru$ zi@^nsa5waV{Aj80i^;JkYQE1!hR};1;mN8EYnw!WD`y}4R^-Q*ZebDKRZnqf`oNNw+xe!klIYB4LlV&=d6&=-NuL3qLyzS=62$1hnZQ6QpVH@S{3$40Zm}rm8zn(dVD2OkzqeUyfoRTx5$U ztOd4jkVN~FqAFjdUv4lsuTLpyNvM(hG2_jOdmjH@cE6%#W%zqX+9cMZ`Xdv=90|ZH z!2Y>@W^PWLcux4Nxo|5c-I5?e)6-f~0dvJ+<#77hqC~)}+i3F-=rc$AU2mFxM4V;| zRwMGxY^@Gk&24Pc*R4s93LKpFy91Y3K>K2i!Ofd-EiuEu2oJOL@E6^>^MJcGfA?H= zU#GDb3$sGEUWDGn)4##rA`%QMYD3g}vSt#TczVCt67YG_wBeAbuOE=GETVjB*TGQ0)k3#S{ygGf7WKMh(IOTa994z@fQ!F50lDAljpZTw04LX^IzXHG~tx$?I=ZrSlwMUl`xK;Q{ z@7w0B>DG{3zwcdyLD0HNa?{B8)Vl}6G!$O>RJ)Xlt`>pi^4%E(9V0CTB%Wzi9xVke zS)LjEK+qV`D0-+5`UgYvLUY6|wH43umBPZzkB=?;`@|$x)*;ObyEtgfJX#E4WAyQh zS{V{oD@3diQ5IWHZ(JRSQlv^1@K!2HQ^y(zFH%?PT#!lOoJ9*+`AMEv&#eCzr_{4n z4*4r>m0_m#d&D(;=BhWx+Y$uxf&^EB#(4$#m})^4u7v$nA33L0kc?J!o0N2*AHw)s ziWF>htClATpP9JSlX1>!RP`R11ZTwg{-`@Xp~+p%3%C z!x;RyN1i-Q(ViI*aZ1IC!>2zM^?jg>llP9)y_jw5#6yonGko31Z=}qVQntYpu(7#rrSW9^yas<3 z?QiBF{$!nXgLU6W8M|m!>-sn-a&pk}M_h&b+|>k&JRYk-&&k+*aCI9-DVS$wJ+a>U z*L#-){dRKPuUDR_{z3lrUIA!$tPRo6h8C!h=mcy2P6pDQ!`VsfS8vhav~|G)GtsW; zKmQ=j1He&-U-rNHWeR)m6#nmqfTccl?4ht+t9krgyqLr9`0f2-4avrx)0z@oN`Qi& zwC$LAf=pD{dPb}43+k|o649_O$_hGFjVs_`%r%ZW02=T01BNNAN6SFJjCSvx8b%nQ zw@GxI?&U*rJq4$Ewvb4}*J_*==IuN8aaBJz>g8_bUYJ!R!3+T-G0dHI~R-aLKf$$16rTE7DF#LL`K z&ZzEfjGdmuWnTfel=6AGLOgaTzr^|%Ri?IXQdV?RTdO|{zSB<*LDDiT)W(yPvZ4{;vHjpu8QMjF#%Hk&Ss4|;u>qOv z4jmrgupLVgIW7*rYw%K!IdSa~j9r)zSn3yY*5rqbRPVNvMtkewDZK*79Q{MyIlG$1 z7P-Y62mf%SGRTZ0m)sRp6zh#jvT#U^8FJ}+>v9&=>~wp%8IUoYnX9Vn7O--X-KDtl zP0Ioz9~x%j5?N2s6{2aY%E^0C%J}APWc8`Cm0cmJ^6kv_pGPTG{GNM7d#4pp3Llh_yABu`N3!tQR`U-B?3^ zMi+Wp&pAt4H134AqBf%p3>OTd$9fAnCY@?!j$L!8I<(GLCb$3savYo_l zwBD99H)IMZx^Cm3IjEa%*TAkZC)Wr#$(SBY#>px6CZi+BA*p1ff*4F9B1KBoBnOrL{LYP&*8&*^J{Mn{CopW; zcEdIgVi5T3nrd1HNg5Und(BYa-WDv+G`$tu7O>=y;8mU%sV`4zT@P^|*}mpQth5Z1 z$L4Pn)x6yPjp6{U`_dl7$54vAvdLdc_GNTyU&b;=LjHmvQhPX&c+tj*QAK&A9W;yz zgJYo~NNf4c$V)(sA0;;LypFV(gdeTQtgr_JI6sbiv9F68k)-UvE|e|q?f~=3tJQ1u z+^p%X{LQ*`+$tt^2 zz@R}PNHeSA(JLQ9KsUT?Q&u}d*X-&2x zh|~m?Hy8KPZKj3?Wku06WzFV6&bK7{ytQHswooEg3TKHt0_t(TKP*7Ui(7SF472jP zAAr`M43!zU`yND_ovX*sgng^ns;?8e6T4zGa8)#UbESpce;i0q)3jo4ifqzM(QGWn zDbze?N18^v#Ni6=DC-=x*R>V(tgPH33C#UsgBaDXjAyj-lPb{}*{D;oPj?n4R~dgh z?$)6kV1BOLEw{NWp47R2XT!PBZxr2Y{eH#TbM<7$yk73w#5f=jc6r>Oe)ka6X3rzX z8cP(kpDBZWB}&5fRpu0V)ko^y+%X(Y*!`S9gBC8W0Pn52P$r;GLBk zCc)ohEPTAUacGr6rSHxjGc-uK9h^d;!m`A##qL!m4|*&BP*9=tJH{qjEa;clE?7y= ze{?lO$qE?wP+jEh_3(Qm3uW(U9&@#UwKPKZz6d3=KBP)Qcw?fa`l)NM+iiYP@1vKK zz;zG3@UueA9m=ofpxG)W(dhb}jmCw8=gH5DRVTw$RL`^X_zKDYbSzd9=Ht7IhVUQe0B&{n&uy4W%d z&4g69%>olrO($#O8KrQWZma}1j@nXQ`)n<8MOnOaW6^tm>l~f~-x{XUdpprU`h?RS zldvzxBoq!C;bA*-ovvFdM}6F&W7|q=cqeAfo*~%w!f3h5-BDs#szK*}@{_~d zs4EgQngjFJOIxMDRHPg{(2?%^7L)XC^8`M_s)z>8I){Yj_6di6q=pQKBV2xKZRF-W z+O)esjrBhmPPSu4l1$BnE}y4#h+N3(ex@ZS#8?j5yaKR{Ynn*f$?EWA*jt$12t-({ zwYDy8IWtUT>#tzAnlM6tMF;pg^v(v$ILcB7d{lXmw46JgOX(=WXVdK(U2nCpl4*Z0 zpt3Vq--Q8e)tYbXI%nQXjKKH!qFN(`l_JW}BvWJT z(*Pd%mh3W47fs7cy$Gj6%L^m`@@h~M%)rC*LVPpnkt^Sg5PjwmHGx+F`gWL% zTuiK*%Z?%kcWQgXFvYH)gW%_#h!UIoN#{3n#6~_Ty{NIF?c#CIf-=mmLS8smKyvoqI-~-{#fz_UP8?L zmX;c#`@Zck$vxgX^Y6M0U=CS}z0yQ0=``!+8Q>aR5;~bVLEAKOlLph$qsgEP=X#BO z!aI1m-wX<0M@p}UQlLTOQ0=qLW>i&Jgu+1*KWwJP8CfA&G28wrbi4VksB%p=b#-R7 zNxv8*Rp%W~tss{ol`+cL1?Mu(imJxMW8LSnZ13{xP7ybBqTr%=VBUCmZa|$N_j^5; zT(*9-1-Yi|n33YKCC2e8&Z9QF54S37cJ@qx#A@pmkv!QKC(GjR(tT>IzRrRZNBg|z zF$cpMv5ZY-nQ}Lao&{<37_8Qfd`qc<1e22BE%0~>Qgec~|M#-Z&CJ7k=xSSZ;rD>14rd5*cB>0S2lFNvI7j4`I}e^YsU z=)E7(vG+J#?QJ>fZSH8(nB&{Inrl!nRt4Mscm;1!gm_@ZBl=TQ_&bsXI+8`820Bep zlK~=76arBLQGfGe{E=4tnf{&Hb^mZfjO9TQ#0GBflu&kE3GZ0g`X!*~y@@l=Y{A#W z&~7~x>1)#AH)(AZ3L~Nd1z7nOY!_PiC-XFwN)pK&Dg_;y)J%K<{sOpece~aLsS|yl zDWGha*f49yN=Z%Cib*aB+==#y7LsP`JC}8P|5oi4&_}JIU~s|drIQnAgq9_DLXX}T zq*De>2}Q`T`zA2ml}*%`3b~BxYtU3r(UScrjOxSI9HIjb_fMfk*nnH|Y6AZ$coE^n z5cmb^6Y`-heOxV+5O+Ql6QRsy^94DS%^p|Tu_aI(Qyyxyf-f$SAKk8>^uQE6sxqol z!WR-)YR^33p1bEqUiV&lI;w1sargB?h(2G{doPbdK6PDtQBBXjOa$9a7s>@=-jEgX zh>!hEzvs~tDw9U+Tdp3dM8@(d7YD`Ru7V#ckX`kdm0jqOE7W2Z5oS}1Zg#(E4&tin zd^3;(T4{&E6WDd95zH%AWVfs*V6pB+l6Bgrzwpi%+7x0(8$&lsw5%qq8R#k>M0(y0#IJpQj7 zgWv(u2Slun`UA+f>9}JZ;5Ml4l@%-HNY?6b*3HE!9ZySSF9U92BQ55|^GNt`^~2N2 zSHaF)s?=2|E|~G<9|Nxe*I+R6+Vqq)BN|%#0q8W~GcbL;d|-E2C(lK~OBshEaTk3TJo4{@K@uV+QK zEs2LKv#WsGNdRQzKVtfWq{dwOWTyvtPIQ?>_6Ra1!zqj2@?5iGv{dz~pvOR=j^33O z6)=8Ei1C>JT9p18b6<8>+XH!y!f)FZr{JxNYZS4ktuB3^Y*19)opX}oTk683 z#7tImw%uc3KWS3AikD7JQI9sGhCv83^@uG`QuK#H+oBPcB2lw?NW-s4r0cfe8PY9-g!gX;W9fMiar@n$^;yWCjA)^zP5Qb9^ml) z@FD4-9cqGDiY!g*DgKNh%ocFCzp{B@Lr(S&*}}{#;>7W0!rw$`il!^yo-fh|PQIh7= zOY$$@7N0mIpZpIjr}*AEw`{L$3__U zD?rFHAbWb**5ipY_hFXq>HO>1{%MF^vcT#Htri&>D7_F^w(=OE zW~=>)@$*27tZeB!Uypo|zQYtsTg$65Qi+ixbmTm2I2~7dsYhoO+TWP=K2{3D>+$|a6p=Or^q*`k=NA%+S|rRK!5Mei?aaA5K-EzUFJi% zLkWPkZu70639^ev2~WywnAby7z0K4Yt&~D*V=J9+F&Sa`t1>o4-rk;Y&uetERn$wZ zm)BABuK;=VopPE&Nz#FV501h#bfAZ>#8R{DVB!EtxV}jGd_C>Ms=F(d_J?0|H+7VOj;o$aZW3;H`^uNNAv4g=5R`GxyslVAsyZC z6;M$6YZ0?MMm#U!hUY~nu>c@SjqvN_`r`#kJP%Gytp(O0y&r~nZ0x^TGEu&Wd@cOn z#_)s9*yrQRmiqLC+l$Z$O+!`0SV;v=Jc2@44?d8B%K!1k?Iw<|<616Q^K(oQs3e}b n;@$4=@+E|>u7Fly-^>$-g7|`Xz>9d?Chw?R;J^0v*Ps6lP!dlP literal 0 HcmV?d00001 diff --git a/assets/statusbar.png b/assets/statusbar.png new file mode 100644 index 0000000000000000000000000000000000000000..5ba9fb4b4f537fff8020d4dc23e822ed68bb571f GIT binary patch literal 11152 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 literal 0 HcmV?d00001 diff --git a/assets/tetris.png b/assets/tetris.png new file mode 100644 index 0000000000000000000000000000000000000000..ba13a84cd667c774785dc589d6a087f3d9192698 GIT binary patch literal 3692 zcmeH~c{CJUAIC}3BTS-4k8LVj2z3}SV#>ZRV+INHlxz(KGxlYQ5JD0vLm2zSWH*XY zLI^V$%ZRC@VQdd$Uthg{z3*Q=|Gek@=eg&5&+jhZd+zUi?m73|n_z8e#Lp|r%fZ3H zZ(^(uJ&d&+9Gnryj~%w$Inxk_;V4?y1a|zeL>#~K@UZ`zpYaVe2Zz9ipOrI1Q9$f) zPzqzj zbWZfBxkHY;Pf5_{DycUj3+;WrjiZoedXH*NpLb`@tYvVJdrgzZ58ZYJz8I-Tyasxw z$H7HjYSQQK@AhjlBR9@VpZsL<8}pfXR0PDnD_jF$^*&fKmz^7b()0H+n8J$%u(kR6 z;)Iw}sFMGdob5Tt#%J^ikla~dnwskTEC5;tt3{4fwm%booVB;JVPzy?oPHUyzd4np zrFa&gLf)>Fq1ofmh&JoR&FqKUYP3Cf{&{xPv44NOk zEHzVA>+Hh*M5jWKR zby8kcUO*+KOW!6HsCPhZFuse*{g5~!oRE(cEIy%DOa2b;(zpv4BI$het3bMBfPt8!Bxx|~%Rmgtf zc_uc|pz1syxGZ}lLT@8NruY*RSc+Gykl_~_a>#~N`_}oEo8QG;u)pUO88mMpvHuIR7e0vCv!2eFPV_KR6ErxQqZb+3EL~PnVWFg?GzheEerW|E#R%xR zRfisvh)ayl+l;m=YpI^S6Q z1K^20N{|oo)i4RKGJBvSo`EqX?~d3)7u2!fS8GQa$Rx~cZz(KH*@}%(9fRvu7B)PVtJ0;cA^CC=bH^C)x_H|UrG40J6 zFt-G8Zh=b$>9r?W;cQ3D7Q#a99f&;pD>@aWBxl8}eY^XG{eb4u#ZvPg`-vi2o!d5E zT1Ek8n?Y$EN3p(iHkUVs6C_D875)1fuTBTj98ZZ+M_-vmEQjuIF_{s&V;(P?i~Zx{ z;@tJMiw?8Y)6-*%B8T%pb<-b%V^iLr$J&Ine=ab#5x%=>MIJ8k@)|=#+#FX|8F6qX z>g={(&e>NZRBS{#2gXmr?d$F4)KSpLFef2qP5OAk=E&LyMufdsR_9ZlVDtDA9)UuA zr~8G}Ni^>W))s&&hZ~sWCFENh>@1LUot-CesZ2KW^Tb3&T->o7O|;>YAqpjLanUy; zE2|%g!zp5fvQKtBBm5dl0#e3xfQF)mCreOE^a5fg0@47< z4gK+46Sy?{d;z}x@(LIXcJ04t;?akrQt?K#fq{bR>S}@{a#0)8qQcweO(jyY>_wcN zs>~F+h0|f|FX`KTO+_LM72c-~O}aA642zcgm}TUP zkPCWTtPs2fF*gi>I*3a5MUeHM@A}FrJ*)BPkCLBqkwl}>HPXGKwo79*%<|3`JIY4t z{n{8|3nM7b{bqiV3}JYVAd|Db_a=TV>YJq!zaeN;wUouvQdC{un5mqm7U9T4N6=P2 zSTvO^SNkg;lk9CIq|sXAiL=)BMXWi6r@iKt-CZlD@Jx5mC0uj<(mf|hc57?vYNxG@ z$h@)u^d z2GmH*bXSi6=cn~G!^Er((B^FT_NtW0_2(>6AWeu-YIA8a++g=g?!=p5#q8d4G8wz= zh{cj$WM`jF?WB#5htpiS4=-wZQ{ddABq=E=(KF)KZ7g`GMQsfm4S#Cq>E-6;G8I8O z(yoYtP7D+dFyGL$0%n&E9IAEUv=Oi>s~s^GA>f>2trO8*9+prY%nnVA`Tpa0<> zC*(aSt!oeSZcT58X7e`k9_3g3NB)b_D-9nSm4yu4HJad3Q# zP~^z&=ah8;P@Vd;wqcKDbgoLh_-kFtFZBLvp*WbXm3W))Q>rs17Q8(+M1MNMzG+$S z=jbaq%B|$T$~Nqf6tz44D_sQ09eO)X7edQCdoq=hv;k*PMk(UAdN@`77o;*FmLgf+ zqm;~zGjdigkOP$Fbq0qeZsyGoW_?4jC$n!(&hu{q5W5y0-g(>V*1MA!LB$VLE0eoE zKHYO$JL^6l!v&O-Dd65sG@#vGdn>&+EFj;V>w7{&%YPx0IcKqtywUpZfUE6UQ-WJa T&f~+c9*2p6rGBOEpV9vU7fky$ literal 0 HcmV?d00001 diff --git a/assets/tetrominoes.png b/assets/tetrominoes.png new file mode 100644 index 0000000000000000000000000000000000000000..9e30a1b58a6da0f62022789a7e577d25c5861d41 GIT binary patch literal 5709 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ξ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 B0XF~u literal 0 HcmV?d00001 diff --git a/assets/toplevel.jpg b/assets/toplevel.jpg new file mode 100644 index 0000000000000000000000000000000000000000..da805c02cb48b1b01be82f6266b7bceed24186d9 GIT binary patch literal 19294 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 literal 0 HcmV?d00001 diff --git a/assets/undoredo.png b/assets/undoredo.png new file mode 100644 index 0000000000000000000000000000000000000000..45de1c8a04aa822d63caee322462b8fb3464fb02 GIT binary patch literal 6686 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 literal 0 HcmV?d00001 From 2c8bf1badb0811f63ee1f0cd4fb38e1bd45600dd Mon Sep 17 00:00:00 2001 From: necan Date: Fri, 8 Jun 2018 19:44:28 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 5893650..c9d0032 100644 --- a/README.md +++ b/README.md @@ -1 +1,7 @@ # wxPython + +翻译自 [http://zetcode.com/wxpython/](http://zetcode.com/wxpython/) + +代码:[https://github.com/janbodnar/wxPython-examples](https://github.com/janbodnar/wxPython-examples) + +为了方便学习 Python GUI,本人翻译了网上最简明易懂的 wxPython 教程。当然本人能力有限,如有翻译错误,请及时向我反馈。 \ No newline at end of file From 2b63725bf82c2b6cfe9e2c662c43b344dd45e1d3 Mon Sep 17 00:00:00 2001 From: necan Date: Sun, 10 Jun 2018 18:22:16 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c9d0032..7a486c0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# wxPython +# wxPython 中文简明教程 翻译自 [http://zetcode.com/wxpython/](http://zetcode.com/wxpython/)