1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
ZetCode wxPython tutorial
In this code example, we create a
custom dialog.
author: Jan Bodnar
website: www.zetcode.com
last modified: July 2012
'''
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
):
ID_DEPTH
=
wx.NewId()
tb
=
self
.CreateToolBar()
tb.AddLabelTool(
id
=
ID_DEPTH, label
=
'',
bitmap
=
wx.Bitmap(
'color.png'
))
tb.Realize()
self
.Bind(wx.EVT_TOOL,
self
.OnChangeDepth,
id
=
ID_DEPTH)
self
.SetSize((
300
,
200
))
self
.SetTitle(
'Custom dialog'
)
self
.Centre()
self
.Show(
True
)
def
OnChangeDepth(
self
, e):
chgdep
=
ChangeDepthDialog(
None
,
title
=
'Change Color Depth'
)
chgdep.ShowModal()
chgdep.Destroy()
def
main():
ex
=
wx.App()
Example(
None
)
ex.MainLoop()
if
__name__
=
=
'__main__'
:
main()
|
wxpython类似TK中的label frame实现
StaticBox