PDA

View Full Version : vizdlg dialog components on a single panel


Chapre
11-16-2010, 12:36 AM
Hello, I'm working on GUI (graphic user interface), I'm using vizdlg.

Is it possible to add and show more than one vizdlg dialog component on a single panel (not one by one as in tabbed panel)?

Jeff
11-16-2010, 10:51 AM
Yes, this is possible:
import viz
import vizdlg

viz.go()

myPanel = vizdlg.Panel(layout=vizdlg.LAYOUT_HORZ_BOTTOM,padd ing=10)

ticker1 = vizdlg.TickerDialog(label='Ticker 1',range=(1,5,1))
ticker2 = vizdlg.TickerDialog(label='Ticker 2',range=(1,5,1))

ticker1.visible(1)
ticker2.visible(1)

myPanel.addItem(ticker1)
myPanel.addItem(ticker2)

viz.link(viz.CenterCenter,myPanel,offset=(-150,50,0))

#handle accept button events
def onTicker1Accept():
viz.logNotice('ticker 1 value is: ',ticker1.value)

vizact.onbuttondown(ticker1.accept,onTicker1Accept )

def onTicker2Accept():
viz.logNotice('ticker 2 value is: ',ticker2.value)

vizact.onbuttondown(ticker2.accept,onTicker2Accept )

Chapre
11-17-2010, 02:54 PM
Thank you Jeff, that exactly what I wanted; one last thing, can make a single "accept button" and "cancel button" for all dialog components in the panel?

Jeff
11-20-2010, 02:47 PM
You could remove all the existing buttons and add your own:
import viz
import vizdlg

viz.go()

myPanel = vizdlg.Panel(layout=vizdlg.LAYOUT_VERT_CENTER)

tickerPanel = vizdlg.Panel(layout=vizdlg.LAYOUT_HORZ_BOTTOM,padd ing=10,border=False)
ticker1 = vizdlg.TickerDialog(label='Ticker 1',range=(1,5,1))
ticker2 = vizdlg.TickerDialog(label='Ticker 2',range=(1,5,1))
tickerPanel.addItem(ticker1)
tickerPanel.addItem(ticker2)

ticker1.visible(1)
ticker2.visible(1)

#remove separators and buttons
ticker1_Items = ticker1.getItems()
ticker1.removeItem(ticker1_Items[1])
ticker1.removeItem(ticker1_Items[2])
ticker2_Items = ticker2.getItems()
ticker2.removeItem(ticker2_Items[1])
ticker2.removeItem(ticker2_Items[2])

buttonPanel = vizdlg.Panel(layout=vizdlg.LAYOUT_HORZ_CENTER,spac ing=15,border=False)
accept = viz.addButtonLabel('Accept')
cancel = viz.addButtonLabel('Cancel')
buttonPanel.addItem(accept)
buttonPanel.addItem(cancel)

myPanel.addItem(tickerPanel)
myPanel.addItem(buttonPanel)

viz.link(viz.CenterCenter,myPanel,offset=(-150,50,0))

#handle accept button event
def onTickerAccept():
viz.logNotice('ticker 1 value is: ',ticker1.value)
viz.logNotice('ticker 2 value is: ',ticker2.value)

vizact.onbuttondown(accept,onTickerAccept)