龙空技术网

wxpython入门第一步(简单例子)

一丝不苟的克雷吉 382

前言:

现在姐妹们对“pythonimportwx”都比较关心,各位老铁们都想要了解一些“pythonimportwx”的相关文章。那么小编也在网络上收集了一些关于“pythonimportwx””的相关资讯,希望你们能喜欢,看官们一起来了解一下吧!

在这部分wxPython教程中,我们将创建一些简单的例子。

简单的例子

​ 我们从一个非常简单的例子开始。我们的第一个脚本将只显示一个小窗口。它不会做太多事情。我们将逐行分析这个脚本。

# simple.pyimport wxapp = wx.App()frame = wx.Frame(None, title='Simple application')frame.Show()app.MainLoop()

​ 这是我们的第一个例子

# simple.py

​ 第一行是脚本的名称

import wx

​ 这一行导入了基本的 wxPython 模块,即 core、controls、gdi、misc 和 windows。从技术上讲,wx是一个命名空间,所有基本模块中的函数和对象都以wx.开头。所有来自基本模块的函数和对象都以wx.为前缀。下一行代码将创建一个应用程序对象。

app = wx.App()

​ 每个wxPython程序必须有一个应用程序对象。

frame = wx.Frame(None, title='Simple application')frame.Show()

​ 这里我们创建一个wx.Frame对象。wx.Frame组件是一个重要的容器组件。我们将在后面详细分析这个小组件。wx.Frame 组件是其他组件的父组件。它本身没有父组件。如果我们为父级参数指定None,则表示我们的小组件没有父级。它是小组件层次结构中的顶级小组件。在我们创建 wx.Frame 小组件后,我们必须调用 Show() 方法才能在屏幕上实际显示它。

app.MainLoop()

​ 最后一行进入主循环。主循环是一个无尽的循环。它捕捉并派发在我们的应用程序生命周期中存在的所有事件。

​ 这是一个非常简单的例子。尽管如此简单,我们可以用这个窗口做很多事情。我们可以调整窗口的大小,最大化,最小化。这个功能需要大量的编码。所有这些功能都是由 wxPython 工具包默认隐藏和提供的。我们没有理由重新发明轮子。

wx.Frame

​ wx.Frame widget 是 wxPython 中最重要的 widgets之一。它是一个容器组件,意味着它可以包含其他组件。这意味着它可以包含其他小组件,实际上它可以包含任何非框架或对话框的窗口。wx.Frame由标题栏、边框和一个中心容器区域组成,标题栏和边框是可选的。标题栏和边框是可选的。它们可以通过各种标志来移除。​ wx.Frame 有以下构造函数:

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.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER wx.SYSTEM_MENU |wx.CAPTION - wx.CLOSE_BOX - wx.CLIP_CHILDREN。通过组合不同的样式,我们可以改变wx.Frame 组件的样式。

# no_minimize.pyimport wxapp = 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()

​ 我们的目的是为了显示一个没有最小化框的窗口,所以我们没有在样式参数中指定这个标志。

大小和位置

​ 我们可以通过两种方式来指定我们应用程序的大小。我们在widget的构造函数中有一个大小参数,或者我们可以调用SetSize()方法。

# set_size.pyimport wxclass 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()

​ 在这个例子中,应用程序的大小将是350x250px。

def __init__(self, parent, title):    super(Example, self).__init__(parent, title=title,         size=(350, 250))

​ 在构造函数中,我们将wx.Frame组件的宽度设置为350 px。widget的高度为250 px。

​ 同样,我们也可以在屏幕上定位我们的应用程序。默认情况下,窗口被放置在屏幕的左上角。但在不同的操作系统平台甚至窗口管理器上可能会有所不同。有些窗口管理器会自己放置应用程序窗口。有的会做一些优化,让窗口不重叠。程序员可以通过编程来定位窗口。我们已经在wx.Frame widget的构造函数中看到了一个pos参数。通过提供默认值以外的其他参数,我们可以自己控制位置。

MethodDescriptionMove(wx.Point point)move a window to the given positionMoveXY(int x, int y)move a window to the given positionSetPosition(wx.Point point)set the position of a windowSetDimensions(x, y, width, height, sizeFlags)set the position and the size of a window

有几种方法可以做到这一点。

# moving.pyimport wxclass 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()方法。

屏幕居中

​ 如果我们想让我们的应用程序在屏幕上居中,wxPython有一个方便的方法。Centre()方法可以简单地将窗口在屏幕上居中,无需计算屏幕的宽度和高度。只需调用该方法即可。

# centering.pyimport wxclass 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()

​ 在这个例子中,我们将一个窗口居中放在屏幕上。

self.Centre()

​ Centre()方法使窗口在屏幕上居中。

标签: #pythonimportwx #python电子表格加一行合并居中标题 #pythonwx教程