TD button Group的实现

1,用bool_button控件

layout.ini

main_win = {
    type = "window"
    x = 0
    y = 0
    w = 1024
    h = 600
    style = "main_win"
  flags={
    window_splash
  }


  audioBtn = {
    type = "bool_button"
    x = 10
    y = 10
    w = 172
    h = 70
    style = "audiobtn_style"
  }

  videoBtn = {
    type = "bool_button"
    x = 10
    y = 90
    w = 172
    h = 70
    style = "videobtn_style"
  }

  picBtn = {
    type = "bool_button"
    x = 10
    y = 170
    w = 172
    h = 70
    style = "picturebtn_style"
  }
}
 

2,style.rc

bool_button.audiobtn_style {
[nad]
bg="./images/list_btn_music_n.png",stretch_normal
[s]
bg="./images/list_btn_music_p.png",stretch_normal
}
bool_button.videobtn_style {
[nad]
bg="./images/list_btn_video_n.png",stretch_normal
[s]
bg="./images/list_btn_video_p.png",stretch_normal
}
bool_button.picturebtn_style {
[nad]
bg="./images/list_btn_image_n.png",stretch_normal
[s]
bg="./images/list_btn_image_p.png",stretch_normal
}

 

2,用twRadioGroupAdd将控件加到一个组里面

int main(int argc, const char *argv[])
{ TWidget *root;
    root = TwAppInit();
    signal(SIGTERM, &signal_handler);
     
    /*读取配置文件config.ini*/
    TwConfigParseFile(TGetExecutePath("../etc/config.ini"));
    TWidget *audioBtn = (TWidget*)TObjectGetFromName("audioBtn");
    TWidget *videoBtn = (TWidget*)TObjectGetFromName("videoBtn");
    TWidget *picBtn = (TWidget*)TObjectGetFromName("picBtn");
    TWidget *meidiaTypeGroup[3];
    meidiaTypeGroup[0] = audioBtn;
    meidiaTypeGroup[1] = videoBtn;
    meidiaTypeGroup[2] = picBtn;
    twRadioGroupAdd(meidiaTypeGroup, meidiaTypeGroup[0], "meidiatypegroup");
    twRadioGroupAdd(meidiaTypeGroup, meidiaTypeGroup[1], "meidiatypegroup");
    twRadioGroupAdd(meidiaTypeGroup, meidiaTypeGroup[2], "meidiatypegroup");

    TObjectAddEventHandler(audioBtn, CLICKED, click3func, (void *)"audioBtn");
    TObjectAddEventHandler(videoBtn, CLICKED, click3func, (void *)"videoBtn");
    TObjectAddEventHandler(picBtn, CLICKED, click3func, (void *)"picBtn");
    TwSetValue(picBtn, 1);
TwMainLoop(); return 0; }

3,通过TwSetValue设置控件的选中和非选中状态。

static void click3func(void *obj, T_ID event, TTable *in, void *arg, TExist *exist)
{
    const char *pbtn = (const char*)arg;
    TWidget *audioBtn = (TWidget*)TObjectGetFromName("audioBtn");
    TWidget *videoBtn = (TWidget*)TObjectGetFromName("videoBtn");
    TWidget *picBtn = (TWidget*)TObjectGetFromName("picBtn");
    printf("click3func---pbtn:%s\n", pbtn);
    if(!strcmp(pbtn, "audioBtn"))
    {
        TwSetValue(audioBtn, 1);
        TwSetValue(videoBtn, 0);
        TwSetValue(picBtn, 0);
    }
    else if(!strcmp(pbtn, "videoBtn"))
    {
        TwSetValue(audioBtn, 0);
        TwSetValue(videoBtn, 1);
        TwSetValue(picBtn, 0);
    }
    else if(!strcmp(pbtn, "picBtn"))
    {
        TwSetValue(audioBtn, 0);
        TwSetValue(videoBtn, 0);
        TwSetValue(picBtn, 1);
    }
}

 

posted @ 2020-12-07 19:50  maxiongying  阅读(167)  评论(0编辑  收藏  举报