首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置Motif窗口的标题

设置Motif窗口的标题
EN

Stack Overflow用户
提问于 2021-07-10 15:26:47
回答 2查看 65关注 0票数 0

我正在尝试设置toplevel Motif 2.1窗口的标题。

从O‘’Reilly第六卷A中,我看到在Motif 2.1中,建议使用XtVaOpenApplication来创建顶层小部件。

this appendix中,可以看到optionsXtNumber(options)是如何通过参数列表作用于资源的。

我曾尝试在调用程序时使用它来生成一个可选的标志-title WINDOW_TITLE,但没有成功。

这是我尝试过的:

代码语言:javascript
复制
#include <stdlib.h>
#include <stdio.h>
 
#include <Xm/Xm.h>
#include <Xm/PushB.h>
 
static XrmOptionDescRec options[] = {
    { "-title", "XmNtitle", XrmoptionIsArg, NULL },
};
 
int main(int argc, char *argv[]) {

    Widget          toplevel;             /* Top Level Button */
    XtAppContext    app;                  /* Application Context */
    char            *window_title = NULL; /* Top Level Window Title */
    
    /* INITIALIZE TOP LEVEL WINDOW */
    XtSetLanguageProc(NULL, NULL, NULL);
    toplevel = XtVaOpenApplication( &app, argv[0], options, XtNumber(options), &argc, argv, NULL, sessionShellWidgetClass, NULL);
    
    /* REALIZE TOPLEVEL WINDOW AND LAUNCH APPLICATION LOOP */
    XtRealizeWidget(toplevel);
    XtAppMainLoop(app);
    
    return 0;

}

程序将进行编译,但不会对-title MYTITLE命令行参数做出反应。

这是makefile (适用于FreeBSD 12):

代码语言:javascript
复制
test:           test.o
                cc -L/usr/local/lib -O -o test test.o -lXm -lXt -lX11

test.o:         test.c
                cc -I/usr/local/include -c test.c

如何根据名为-title的可选参数更改窗口标题

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-10 18:23:47

正确的xrm选项行是

代码语言:javascript
复制
{"-title", ".title", XrmoptionSepArg, NULL}

您实际上不需要指定它,因为它在默认的Xt选项表中。

通常,在指定xrm资源名称时会省略XmN

票数 3
EN

Stack Overflow用户

发布于 2021-07-10 17:41:22

请进一步调查自己(我不是X/Motif专家),但有些东西似乎与参数解析无关。在call XtVaOpenApplication调用中用NULL和它的大小替换options似乎做到了这一点:toplevel = XtVaOpenApplication( &app, argv[0], NULL, 0, &argc, argv, NULL, sessionShellWidgetClass, NULL);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68325648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档