龙空技术网

第2天 | 25天学会wxPython,一个窗口

老陈说编程 471

前言:

如今兄弟们对“java最大化窗口”大致比较注重,兄弟们都想要剖析一些“java最大化窗口”的相关知识。那么小编同时在网摘上汇集了一些有关“java最大化窗口””的相关知识,希望大家能喜欢,同学们快快来了解一下吧!

在wxPython中,用wx.Frame来代表屏幕上的一个窗口,而不是wx.Window。wx.Window是所有的可视化元素的基类,如buttons, menus等,都继承于wx.Window类,而程序窗口则是一个wx.Frame,它的语法为:

Frame(self, parent=None, id=None, title=None, pos=None, size=None,       style=None, name=None)

pos: 值为Point(x, y),以计算机屏幕左上角为原点(0,0),指定位置为坐标轴上横坐标为x,纵坐标为y的那个地方;

name:Frame的名称,如frame1;

style:窗口样式,默认为值为wx.DEFAULT_FRAME_STYLE,有最大化、最小化、关闭、边框等标准窗口,其他样式如下:

wx.ICONIZE: 窗口初始时将被最小化显示。这个样式只在Windows系统中起作用;

wx.CAPTION: 一个有标题栏的窗口。如果要自定义最大化框、最小化框、系统菜单和上下文帮助,可以选择这个样式;

wx.MINIMIZE: 同wx.ICONIZE一样的效果;

wx.MINIMIZE_BOX: 在标题栏的标准位置放置一个最小化按钮(隐藏或禁用最大化和关闭按钮);

wx.MAXIMIZE: 窗口初始时将被最大化显示(全屏),这个样式只在Windows系统中起作用;

wx.MAXIMIZE_BOX: 在标题栏的标准位置放置一个最大化按钮(隐藏或禁用最小化和关闭按钮);

wx.CLOSE_BOX: 在标题栏的标准位置放置一个关闭按钮(隐藏或禁用最大化和最小化按钮);

wx.STAY_ON_TOP: 窗口将始终在系统中其它框架的上面(如果你有多个框架使用了这个样式,那么它们将相互重叠,但对于系统中其它的框架,它们仍在上面);

wx.SYSTEM_MENU: 在标题栏上放置一个系统菜单。这个系统菜单的内容与你所使用的装饰样式有关。例如,如果你使用wx.MINIMIZE_BOX,那么系统菜单项就有“最小化”选项;

wx.RESIZE_BORDER: 给窗口一个标准的可以手动调整尺寸的边框;

wx.FRAME_TOOL_WINDOW: 窗口的标题栏比标准的小些,通常用于包含多种工具按钮的辅助窗口。在Windows操作系统下,工具窗口将不显示在任务栏中;

wx.FRAME_NO_TASKBAR: 一个完全标准的窗口,除了一件事:在Windows系统和别的支持这个特性的系统下,它不显示在任务栏中。当最小化时,该框架图标化到桌面而非任务栏;

wx.FRAME_FLOAT_ON_PARENT: 窗口将漂浮在其父窗口(仅其父窗口)的上面(很明显,要使用这个样式,框架需要有一个父窗口),其它的框架可以遮盖这个框架;

wx.FRAME_SHAPED: 非矩形的窗口。窗口的确切形状使用SetShape()方法来设置。

1. 属性方法

窗口(Frame)信息,可以通过set方法进行动态调整,可以用Get方法获取,包括窗口的背景颜色。

SetId(int):设置窗口部件的id(标识符);

GetId():获取窗口的id值;

SetMenuBar(wx.MenuBar):设置框架当前使用的的菜单栏对象;

GetMenuBar():获取窗口的菜单栏对象,如果没有菜单栏,则返回None;

SetPosition(wx.Point):设置窗口x、y坐标轴位置;

GetPosition():获取窗口左上角的x,y的位置,以一个wx.Point的形式返回;

SetSize(wx.Size):调整窗口大小。wx.Size(width, height),width宽度,height高度;

GetSize():获取窗口大小,返回wx.Size(width, height),默认为:400x250;

SetTitle(String):设置窗口标题栏内容(字符串);

GetTitle():获取标题栏内容;

SetBackgroundColour(String):背景色是窗口中没有被其子窗口部件覆盖住的那些部分的颜色,字符串内容可为颜色名称(如"Red"),也可为十六进制值("#00ff00");

GetBackgroundColour ():获取背景颜色值,返回RGB元组,如(255, 0, 0, 255)。

程序清单: wxPython_para.py

import wx# 创建应用实例app = wx.App(False)# 创建应用窗口frame = wx.Frame(None)# 对窗口进行设置frame.SetId(123456)frame.SetTitle("Frame参数")frame.SetSize(wx.Size(900, 500))frame.SetBackgroundColour("#5F9EA0")print("Id=%d" % frame.GetId())print("Title=%s" % frame.GetTitle())print("Position=%s" % frame.GetPosition())print("Size=%s" % frame.GetSize())print("BackgroundColour=%s" % frame.GetBackgroundColour())# 显示窗口frame.Show(True)# 启动程序主循环app.MainLoop()

运行程序之后,弹出的窗口如下:

2. 调整方法

Center(dir=wx.BOTH):dir为wx.BOTH(默认),窗口(同时垂直和水平)居中;dir为wx.

HORIZONTAL,窗口水平居中;为wx.VERTICAL,窗口垂直居中;

Enable(enable=true):如果参数为True,则框架能够接受用户的输入;如果参数为False,则用户不能在框架中输入;

IsEnabled():如果框架当前有效,则返回True;

GetBestSize():对于wx.Frame返回窗口能容纳所有子窗口的最小尺寸;

Iconize(iconize=True):如果参数为true,最小化窗口为一个图标;如果参数为False,图标化的窗口恢复到正常状态;

IsFullScreen():如果框架是以全屏模式显示的,则返回True,否则False;

IsIconized():如果框架当前最小化为图标了,则返回True,否则False;

IsMaximized():如果框架当前是最大化状态,则返回True,否则False;

IsShown():如果当前窗口可见,则返回True;

IsTopLevel():对于顶级窗口部件如框架或对话框,总是返回True,对于其它类型的窗口部件返回False;

Maximize(maximize=True):如果参数为True,最大化窗口以填充屏幕;

Show(show=True):如果参数值为True,显示窗口;如果参数值为False,隐藏窗口;Show(False)等同于Hide();

ShowFullScreen(show,style=wx.FULLSCREEN_ALL):如果show的值为True,那么窗口以全屏的模式被显示;如果为False,窗口恢复到正常尺寸。style的值可为wx.FULLSCREEN

_ALL表示当窗口全屏模式时,隐藏所有窗口的所有样式元素或组合wx.FULLSCREEN_NO

BORDER、wx.FULLSCREEN_NOCAPTION、wx.FULLSCREEN_NOMENUBAR、wx.FULL

SCREEN_NOSTATUSBAR和wx.FULLSCREEN_NOTOOLBAR,取消全屏模式框架的部分装饰;

SetSize(x, y, width, height, sizeFlags=wx.SIZE_AUTO):调整窗口的位置和尺寸。位置由参数x和y决定,尺寸由参数width和height决定。sizeFlags的值可为:

wx.SIZE_AUTO:调整为一个Frame的默认值;

wx.SIZE_ALLOW_MINUS_ONE:有效的位置或尺寸;

wx.SIZE_AUTO_HEIGHT:有效的高度或Frame的默认高度;

wx.SIZE_AUTO_WIDTH:有效的宽度或Frame的默认宽度;

wx.SIZE_USE_EXISTING:使用当前的窗口尺寸。

程序清单:wxPython_method.py

import wx# 创建应用实例app = wx.App(False)# 创建应用窗口frame = wx.Frame(None, wx.ID_ANY, "Frame的方法")# 调整位置和大小frame.SetSize(0, 0, 900, 500, sizeFlags=wx.SIZE_AUTO)# 居中frame.Center()print("窗口大小为:%s" % frame.GetSize())# 显示窗口frame.Show(True)# 启动程序主循环app.MainLoop()

运行程序之后,会弹出屏幕居中的窗口,结果如下:

好了,这一节就说到这了,关注我,下一节更精彩。

码字不易,你的关注和转发是对我最大的鼓励,谢谢!

一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!

#python##好平台好讲师##桌面##程序员##热搜#

标签: #java最大化窗口