前言:
如今同学们对“java窗口按钮”大约比较着重,各位老铁们都需要剖析一些“java窗口按钮”的相关资讯。那么小编同时在网络上汇集了一些有关“java窗口按钮””的相关内容,希望同学们能喜欢,你们快快来学习一下吧!组件(widgets)是应用程序最基本的单元,常见的组件有标签、文本、按钮、选择框、滑动器等。wxPython的大多数组件继承于wx.Window类,而wx.Window类继承于EvtHandler,所以大多数组件具有绑定事件的功能。
程序员们常将和用户交互的组件称作动态组件,而将主要起到显示作用的组件称为静态组件,静态组件尽管也可以用Bind()方法绑定事件,但不会起到作用。无论是动态组件,还是静态组件,都会有如下几个参数:
parent:父组件对象, 如Panel、Frame对象;
id:组件id,为wx.ID_ANY (即-1)时,由程序自动分配;
pos:在窗口的位置,值为元组(x,y)或wx.Point(x, y),其中x为横坐标,y为纵坐标;
size:指定组件的宽高,值为元组(width, height)或wx.Size(width, height),其中width为宽度,height为高度;
name:字符串,组件的名称;
style:组件的对齐方法,可用|进行组合,默认的对齐方式是wx.ALIGN_LEFT | wx.ALIGN
_TOP,可选内容如下:
wx.ALIGN_LEFT: 左对齐;
wx.ALIGN_RIGHT: 右对齐;
wx.ALIGN_TOP:顶部对齐;
wx.ALIGN_BOTTOM:底部对齐;
wx.ALIGN_CENTER_VERTICAL:垂直居中对齐;
wx.ALIGN_CENTER_HORIZONTAL:水平居中对齐;
wx.ALIGN_CENTER:居中对齐(垂直和水平都对齐)。
13.1 动态组件
widgets的动态组件有10多个,有按钮wx.Button、复选框wx.CheckBox和列表框wx.ComboBox等等。如果只是一味地念”名词”,实在太无趣了,能用代码+注释的方式讲解组件,那才有点意思。
1. 控制按钮
可用wx.Butto创建文本按钮;用wx.BitmapButton创建位图按钮时,需要提供一个位图,而非一个标签;
用wx.ToggleButton创建一个开关按钮,当你按下时,它将一直保持被按下的状态,直到你再次敲击它;位图开关按钮BitmapToggleButton,一个有位图又可进行开关的按钮。
如果你想回避了本地系统窗口的组件,那你可以用完全由Python重新实现的窗口组件,它放在wx.lib库中,如通过wx.lib.buttons引入通用文本按钮(GenButton)。
通用按钮比本地按钮具有更好的跨平台的外观;对它的外观有更多的控制权,并且能改变属性,如3D斜面的宽度和颜色,而这对于本地组件可能是不允许的;通用按钮类允许特性的合并,如GenBitmapTextButton允许文本标签和位图进行组合,而本地按钮不行。
通用组件的用法和本地组件的用法是保持一致的,你可以根据实际需求进行选择。
程序清单:button.py
import wximport wx.lib.buttons as buttons# 继承Frameclass Button(wx.Frame): ID_Btn = 10000 ID_ToggleBtn = 10001 def __init__(self, *args, **kwargs): super(Button, self).__init__(*args, **kwargs) # 初始化窗口UI self.init_ui() def init_ui(self): # 面板 panel = wx.Panel(self) # 文本按钮 btn = wx.Button(panel, id=self.ID_Btn, label="通用按钮", pos=(20, 20), size=(100, 100)) self.Bind(wx.EVT_BUTTON, self.click, btn) # 位图按钮 img_btn = wx.BitmapButton(panel, id=wx.ID_ANY, bitmap=wx.Bitmap("exit.png"), pos=(20, 100), size=(32, 32)) self.Bind(wx.EVT_BUTTON, self.close, img_btn) # 开关按钮 toggle_btn = wx.ToggleButton(panel, id=self.ID_ToggleBtn, label="开关按钮", pos=(20, 120), size=(100, 100)) self.Bind(wx.EVT_TOGGLEBUTTON, self.click, toggle_btn) # 位图开关按钮 img_toggle_btn = wx.BitmapToggleButton(panel, id=wx.ID_ANY, label=wx.Bitmap("exit.png"), pos=(20, 200), size=(32, 32)) self.Bind(wx.EVT_TOGGLEBUTTON, self.toggle, img_toggle_btn) # 通用按钮 gen_btn = buttons.GenButton(panel, id=self.ID_Btn, label="通用按钮", pos=(20, 240)) self.Bind(wx.EVT_BUTTON, self.click, gen_btn) bitmap_text_Btn = buttons.GenBitmapTextButton(panel, id=100, label="文本", bitmap=wx.Bitmap("exit.png"), pos=(20, 240), size=(120, 32)) self.Bind(wx.EVT_BUTTON, self.click, bitmap_text_Btn) self.SetSize(900, 500) self.SetTitle("按钮应用") self.Centre() self.Show(True) def click(self, e): if e.GetId() == self.ID_ToggleBtn: result = "按钮开了" if e.IsChecked() else "按钮关了" print(result) else: print("普通按钮") def toggle(self, e): obj = e.GetEventObject() checked = obj.GetValue() result = "位图按钮开了" if checked else "位图按钮关了" print(result) def close(self, e): self.Close()def main(): app = wx.App(False) Button(None) app.MainLoop()if __name__ == "__main__": main()
运行程序之后,弹出的窗口如下:
判断wx.ToggleButton的事件类型为wx.EVT_TOGGLEBUTTON,判断是开还是关,可用CommandEvent的IsChecked()方法,也可用GetEventObject()方法获取到ToggleButton对象,接着用GetValue()方法,判断是开还是关。
好了,按钮的内容就说到这了,关注我,下一节更精彩。
码字不易,你的关注和转发是对我最大的鼓励,谢谢!
一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!
#python##程序员##好平台好讲师##热搜##头条#