function for creating buttons

function for creating buttons

爱贝贝
Contributor Contributor
412 Views
0 Replies
Message 1 of 1

function for creating buttons

爱贝贝
Contributor
Contributor

Now I have written a tap panel like this, but it needs a lot of code.

爱贝贝_0-1617696889386.png

So I write a function to do that,

from pyfbsdk import *
from pyfbsdk_additions import *
Name = 'Characters'

def BtnCallBack(control,event):
    FBMessageBox(('Look here!'),('Current character is:' + control.Caption),('OK!'),None,None)
# a function for creating layouts 
def CreateLayout(Round):
    layout = FBLayout()
    Round = layout.Caption 
                     
    x = FBAddRegionParam(8,FBAttachType.kFBAttachLeft,"TabControl")
    y = FBAddRegionParam(8,FBAttachType.kFBAttachTop,"TabControl")
    w = FBAddRegionParam(-1,FBAttachType.kFBAttachRight,"TabControl")
    h = FBAddRegionParam(-1,FBAttachType.kFBAttachBottom,"TabControl")
    layout.AddRegion(Round,Name, x, y, w, h)

    layout.SetBorder(Round,FBBorderStyle.kFBStandardBorder,True, True,1,0,30,0)
    return layout  
# a function for creating buttons 
def CreateButton(caption,hint,X,Y,W,H,picture,Lyt,callback):
    button = FBButton() 
    button.Caption = caption
    button.Hint = hint
    x = FBAddRegionParam(X,FBAttachType.kFBAttachLeft,Lyt)
    y = FBAddRegionParam(Y,FBAttachType.kFBAttachTop,Lyt)
    w = FBAddRegionParam(W,FBAttachType.kFBAttachNone,"")
    h = FBAddRegionParam(H,FBAttachType.kFBAttachNone,"")
    button.Look = FBButtonLook.kFBLookNormal
    button.Style = FBButtonStyle.kFBPushButton
    button.SetImageFileNames(picture) 
    button.OnClick.Add(callback)
    return button

                    
def PopulateLayout(mainLyt):
    TabControl = FBTabControl()
        
    x = FBAddRegionParam(0,FBAttachType.kFBAttachLeft,"")
    y = FBAddRegionParam(0,FBAttachType.kFBAttachTop,"")
    w = FBAddRegionParam(-10,FBAttachType.kFBAttachRight,"")
    h = FBAddRegionParam(-10,FBAttachType.kFBAttachBottom,"")
   
    mainLyt.AddRegion("TabControl", "TabControl",x,y,w,h)
    mainLyt.SetControl("TabControl", TabControl)
         

    # craate first layout
    layout1 = CreateLayout('First Tap')
    
    # create a button
    btn = CreateButton("picture","On Click!",14,20,30,80,"pictures/picture_01.png","layout1",BtnCallBack)
    
    # show button on layout1
    
    layout1.AddRegion('btn', 'btn',x,y,w,h)
    layout1.SetControl('btn', btn)

    # craate second layout
    layout2 = CreateLayout('Second Tap')
    
    # show layouts on tap panel 
    TabControl.Add("First Tap",layout1)
    TabControl.Add("Second Tap",layout2)
 
def CreateTool():

    t = FBCreateUniqueTool("Tap test")
    t.StartSizeX = 400
    t.StartSizeY = 400  
    t.StartPosX = 760
    t.StartPosY = 400  
    PopulateLayout(t)
    ShowTool(t)

CreateTool()

however, it seems something wrong, when I run this script,I got a button with wrong size and coordinate.

爱贝贝_1-1617697267550.png

Will anyone give me some advice, please?

0 Likes
413 Views
0 Replies
Replies (0)