QT中使用Motif的问题
QT中使用QFileDialog打开的目录文件很多的时候(如超过10,000)就会很慢,而且在UNIX上经常会Core dump.费了好多劲,也没有办法解决.于是我就想用Motif来编写一个对话框来解决这个问题.但我又遇到了新的问题,就是当把文件的名字得到后,我想关掉Motif做的对话框,却怎么都关不掉,如果不理这个关不掉的对话框的话,程序一切都正常.但总有个对话框在上面很别扭.我的程序如下,请高手指教: toplevel = XtVaOpenApplication(&app,"Motif dialog",NULL,0,&argc,argv,NULL,sessionShellWidgetClass,NULL); XtSetArg(args[0],XmNpathMode,XmPATH_MODE_RELATIVE); XtSetArg(args[1], XmNallowShellResize, TRUE); EndApp=0; dialog=XmCreateFileSelectionDialog(toplevel,"Files Open",args,2); XtAddCallback(dialog,XmNokCallback,echo_file,NULL); XtManageChild(dialog); XtAppMainLoop(app); void XtAppMainLoop(XtAppContext app_context){XEvent *event;while(EndApp==0) { XtAppNextEvent(app_context,event); XtDispatchEvent(event); if(XtIsManaged(dialog)==0) EndApp=1; }puts("End App!");}void echo_file(Widget widget,XtPointer client_data,XtPointer call_data){ char *fn; XmFileSelectionBoxCallbackStruct *cbs = (XmFileSelectionBoxCallbackStruct*)call_data; fn=(char*)XmStringUnparse(cbs->value, XmFONTLIST_DEFAULT_TAG, XmCHARSET_TEXT, XmCHARSET_TEXT, NULL,0,XmOUTPUT_ALL); if(!fn) { g_filename=QString(""); return; } if(!*fn) { g_filename=QString(""); puts("No file selected"); XtFree(fn); return; } g_filename=QString(fn); qWarning("Motif Select File name is %s",fn); XtFree(fn); XtUnmanageChild(dialog); XtDestroyWidget(dialog); XtDestroyWidget(toplevel);}
...全文
相关推荐
将某个Qt4项目升级到Qt5遇到的问题
问题 12:主题样式的变化在 Qt5 中, cleanlooks、plastique、cde、motif 等主题样式已经被去除,新加了 fusion 主题样式。
Unix_Linux环境下的窗口系统X Window(下).pdf
在X Window系统中,如果遇到应用程序编译问题或运行异常,可能是因为缺少必要的库,如Motif库。对于需要使用Motif但又不想付费的情况,LessTif提供了一个经济实惠的替代方案。
QT3.3中文白皮书
- **Motif支持**:对于使用Motif桌面环境的Unix系统,QT提供了一些Motif相关的支持。#### 16.
Qt 程序如何部署到开发板上
- 1998年,Trolltech的程序员在短时间内将Netscape5.0从Motif移植到Qt上。 - 1999年,Qt 2.0发布,标志着Qt进入了一个新的发展阶段。
qt培训简单入门培训
Trolltech为了解决KDE的授权问题,推出了Free Qt Foundation,从而确保KDE能够继续使用Qt而不违反GPL。


其他技术讨论专区
