motif程序创建单选按钮代码
时间: 2023-12-14 18:03:15 浏览: 126
实现单选按钮效果源码下载
在Motif程序中,可以使用XmCreateRadioBox和XmCreateToggleButton函数来创建单选按钮。其中,XmCreateRadioBox创建的是一个容器控件,用于包含多个单选按钮,并保证这些单选按钮只有一个被选中;XmCreateToggleButton创建的是一个单选按钮控件,用于表示一个选项。
以下是一个简单的示例代码,可以创建一个单选按钮组,其中包含两个单选按钮:
```c
#include <Xm/Xm.h>
#include <Xm/ToggleB.h>
#include <Xm/RowColumn.h>
int main(int argc, char **argv)
{
Widget toplevel, radio_box, button1, button2;
XmString label1, label2;
XtAppContext app;
toplevel = XtVaAppInitialize(
&app, "MyApp", NULL, 0, &argc, argv, NULL, NULL);
/* 创建一个Radio Box容器控件 */
radio_box = XmCreateRadioBox(toplevel, "radio_box", NULL, 0);
/* 创建两个ToggleButton控件 */
label1 = XmStringCreateLocalized("Option 1");
button1 = XmCreateToggleButton(radio_box, "button1", NULL, 0);
XtVaSetValues(button1, XmNlabelString, label1, NULL);
XmStringFree(label1);
label2 = XmStringCreateLocalized("Option 2");
button2 = XmCreateToggleButton(radio_box, "button2", NULL, 0);
XtVaSetValues(button2, XmNlabelString, label2, NULL);
XmStringFree(label2);
/* 将ToggleButton控件添加到Radio Box容器控件中 */
XtManageChild(button1);
XtManageChild(button2);
/* 设置ToggleButton控件之间的互斥关系 */
XmToggleButtonSetState(button1, True, False);
XmToggleButtonSetState(button2, False, False);
XmToggleButtonSetState(button1, False, False);
/* 显示Radio Box容器控件 */
XtManageChild(radio_box);
XtRealizeWidget(toplevel);
XtAppMainLoop(app);
return 0;
}
```
在上述代码中,我们首先使用XmCreateRadioBox函数创建一个Radio Box容器控件,然后使用XmCreateToggleButton函数创建两个ToggleButton控件,并将它们添加到Radio Box容器控件中。最后,我们使用XmToggleButtonSetState函数设置了两个ToggleButton控件之间的互斥关系,并将Radio Box容器控件显示出来。
阅读全文