Button
Button 是做GUI程序时必不可少的控件。
详细文档:wxPython Button
wx.Button(parent, id=ID_ANY, label="", pos=DefaultPosition,size=DefaultSize, style=0, validator=DefaultValidator,name=ButtonNameStr)
它可以放在 wx.Panel 面板上。
对齐方式
默认情况下,如果未指定任何对齐方式,则标签将在按钮的中心位置。如果按钮同时具有标签和位图,则上面的对齐方式将标签和位图结合在一起指定矩形的位置,并且设置的位图位置wx.Button.SetBitmapPosition 定义了位图相对于标签的相对位置(但是当前不-并非所有平台都可以实现默认对齐组合)。
参数
parent父窗口,或者面板wx.Panel
id控件编号
label控件中的标签文本
pos控件位置
size控件大小
style控件样式
validator...额...校验器?
name控件名
style
底对齐 | style=wx.BU_BUTTOM |
左对齐 | style=wx.BU_LEFT |
右对齐 | style=wx.BU_RIGHT |
顶对齐 | style=wx.BU_TOP |
居中 | style参数不用填,就是默认值 |
方法
Disable() | 禁用 |
Hide() | 隐藏 |
SetAuthNeeded(True) | 让按钮自带盾牌图标(设置了背景色或者标签颜色后没有了) |
SetForegroundColour(color) | 让按钮的标签文本颜色变成color的颜色 |
SetOwnBackgroundColour(color) | 让按钮的背景颜色变成color (不知道为什么按下按钮之后背景色恢复了一开始的样子) |
实战
# -*- coding:utf-8 -*-
import wx
class Frame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='BUTTON_wxPython', size=(400, 283),name='frame')
self.panel = wx.Panel(self)
self.Centre()
self.button = wx.Button(self.panel,pos=(150, 100),label='按钮',name='button')
self.button.SetAuthNeeded(True)
#self.button.Hide()
#self.button.Disable()
self.button.SetForegroundColour((192, 192, 192, 255))
self.button.SetOwnBackgroundColour((0, 64, 0, 255))
self.button.Bind(wx.EVT_BUTTON,self.button_click)
def button_click(self,event):
print('按钮被单击')
class myApp(wx.App):
def OnInit(self):
self.frame = Frame()
self.frame.Show(True)
return True
if __name__ == '__main__':
app = myApp()
app.MainLoop()