심플북
심플북
은 노트북
과 동일하게 하나의 화면에 여러개의 레이아웃을 지정하여, 현재 선택된 화면만을 보여주는 기능을 제공한다. 노트북
과 다른 점이 있다면 현재 화면을 사용자가 선택하는 것이 아니고, 프로그램에 의해서 선택한다는 것이다. 따라서 심플븍
에는 사용자가 선택할 수 있는 탭이 존재하지 않는다. 또한, 심플북
은 다음과 같은 화면 전환 효과도 제공한다.
{
'roll_to_left' : wx.SHOW_EFFECT_ROLL_TO_LEFT,
'roll_to_right' : wx.SHOW_EFFECT_ROLL_TO_RIGHT,
'roll_to_top' : wx.SHOW_EFFECT_ROLL_TO_TOP,
'roll_to_bottom' : wx.SHOW_EFFECT_ROLL_TO_BOTTOM,
'slide_to_left' : wx.SHOW_EFFECT_SLIDE_TO_LEFT,
'slide_to_right' : wx.SHOW_EFFECT_SLIDE_TO_RIGHT,
'slide_to_top' : wx.SHOW_EFFECT_SLIDE_TO_TOP,
'slide_to_bottom' : wx.SHOW_EFFECT_SLIDE_TO_BOTTOM,
'blend' : wx.SHOW_EFFECT_BLEND,
'expand' : wx.SHOW_EFFECT_EXPAND,
None : wx.SHOW_EFFECT_NONE,
}
심플북
의 화면 구성은 노트북과 동일하나, 사용자가 선택할 수 있는 탭이 없으므로, 노트북
의 레이아웃에서 레이블
을 제외한 다음과 같은 구조를 갖는다.
[ '레이아웃1', '레이아웃2', ... ]
body_def = [
[ ew.Simplebook(
[ editor_layout, browser_layout,],
expand=True, proportion=1
),
{ 'expand' : True, 'proportion' : 1 }
],
]
레이아웃
구조는 다음과 같이 노트북
의 경우와 동일하게 구성한다.
editor_layout = [
[ ew.Button('Clear'), ew.Button('Copy'), ew.Button('Paste'),],
[ ew.Text('Multiline\nText\nExample',multiline=True,expand=True,proportion=1),
{ 'expand' : True, 'proportion' : 1 }
],
]
심플북 예제
심플북 화면
심플북 소스
import os
import sys
import time
import wx
import ezWxPython as ew
def onExit(event):
appWin.close()
def onAbout(event):
appWin.messageBox("About", "Panel Demo\nzdiv")
def onTab1(event):
appWin.setBookEffect('book','expand')
appWin.setBookPage('book',0)
def onTab2(event):
appWin.setBookEffect('book','slide_to_left')
appWin.setBookPage('book',1)
menu_def = {
"File" : {
"Exit" : [ onExit, wx.ART_QUIT ],
},
"Help" : {
"About" : onAbout
},
}
editor_layout = [
[ ew.Button('Clear'), ew.Button('Copy'), ew.Button('Paste'),],
[ ew.Text('Multiline\nText\nExample',multiline=True,expand=True,proportion=1),
{ 'expand' : True, 'proportion' : 1 }
],
]
browser_layout = [
[ ew.Button('Home'), ew.Button('Back'), ew.Button('Forward'),],
[ ew.Web('https://google.com',expand=True,proportion=1),
{ 'expand' : True, 'proportion' : 1 }
],
]
body_def = [
[ ew.Simplebook(
[ editor_layout, browser_layout,],
expand=True, proportion=1, key='book'
),
{ 'expand' : True, 'proportion' : 1 }
],
[
None,
ew.Button('Tab1', handler=onTab1),
ew.Button('Tab2', handler=onTab2),
]
]
status_def = [
["Ready", -1],
]
layout = {
"menu" : menu_def,
"body" : body_def,
"status" : status_def,
}
if __name__ == "__main__":
appWin = ew.WxApp(u"Panel Demo", 320, 320)
appWin.makeLayout(layout)
appWin.run()