⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainwindow.cpp

📁 Linux下的基于X11的图形开发环境。
💻 CPP
字号:
#include "mainwindow.h"#include <Xm/MainW.h>#include <Xm/RowColumn.h>#include <Xm/CascadeB.h>#include <Xm/PushB.h>#include <Xm/PushBG.h>#include <Xm/SeparatoG.h>#include <Xm/Text.h>#include <Xm/MessageB.h>#include <Xm/Form.h>#include <Xm/LabelG.h>#include <qapplication.h>#include <qmessagebox.h>#include <qmotifdialog.h>static void dialogCallback( Widget, XtPointer client_data, XtPointer ){    MainWindow *mw = (MainWindow *) client_data;    mw->showDialog();}static void customDialogCallback( Widget, XtPointer client_data, XtPointer ){    MainWindow *mw = (MainWindow *) client_data;    mw->showCustomDialog();}static void qtDialogCallback( Widget, XtPointer client_data, XtPointer ){    MainWindow *mw = (MainWindow *) client_data;    mw->showQtDialog();}static void quitCallback( Widget, XtPointer client_data, XtPointer ){    MainWindow *mw = (MainWindow *) client_data;    mw->close();}MainWindow::MainWindow()    : QMotifWidget( 0, xmMainWindowWidgetClass, NULL, 0, "mainwindow" ){    Widget menubar = XmCreateMenuBar( motifWidget(), "menubar", NULL, 0 );    Widget filemenu = XmCreatePulldownMenu( menubar, "filemenu", NULL, 0 );    Widget item;    XmString tmp = XmStringCreateLocalized("Ctrl+D");    item = XtVaCreateManagedWidget( "Dialog...",				    xmPushButtonGadgetClass, filemenu,				    XmNmnemonic, 'D',				    XmNaccelerator, "Ctrl<Key>D",				    XmNacceleratorText, tmp,				    NULL );    XtAddCallback( item, XmNactivateCallback, dialogCallback, this );    XmStringFree( tmp );    tmp = XmStringCreateLocalized("Ctrl+C");    item = XtVaCreateManagedWidget( "Custom Dialog...",				    xmPushButtonGadgetClass, filemenu,				    XmNmnemonic, 'C',				    XmNaccelerator, "Ctrl<Key>C",				    XmNacceleratorText, tmp,				    NULL );    XtAddCallback( item, XmNactivateCallback, customDialogCallback, this );    XmStringFree( tmp );    item = XtVaCreateManagedWidget( "Qt Dialog...",				    xmPushButtonGadgetClass, filemenu,				    XmNmnemonic, 'Q',				    NULL );    XtAddCallback( item, XmNactivateCallback, qtDialogCallback, this );    item = XtVaCreateManagedWidget( "sep",				    xmSeparatorGadgetClass, filemenu,				    NULL );    item = XtVaCreateManagedWidget( "Exit",				    xmPushButtonGadgetClass, filemenu,				    XmNmnemonic, 'x',				    NULL );    XtAddCallback( item, XmNactivateCallback, quitCallback, this );    XmString str = XmStringCreateLocalized( "File" );    item = XtVaCreateManagedWidget( "File",				    xmCascadeButtonWidgetClass, menubar,				    XmNlabelString, str,				    XmNmnemonic, 'F',				    XmNsubMenuId, filemenu,				    NULL );    XmStringFree( str );    Arg args[2];    XtSetArg( args[0], XmNeditMode, XmMULTI_LINE_EDIT );    Widget texteditor =	XmCreateScrolledText( motifWidget(), "texteditor",			      args, 1 );    XtManageChild( menubar );    XtManageChild( texteditor );    // pick a nice default size    XtVaSetValues( motifWidget(), 		   XmNwidth, 400, 		   XmNheight, 600, 		   NULL );    setCaption( tr("QMotif Dialog Example") );}void MainWindow::showDialog(){    Arg args[1];    XmString message =	XmStringCreateLocalized( "This is an Information dialog.\n\n"				 "It is one of many predefined Motif dialog types." );    XtSetArg( args[0], XmNmessageString, message );    QMotifDialog dialog( QMotifDialog::Information, XtParent( motifWidget() ),			 args, 1, "predefined motif dialog", TRUE );    dialog.setCaption( tr("Prefined Motif Dialog") );    XtAddCallback( dialog.dialog(), XmNokCallback,                   (XtCallbackProc) QMotifDialog::acceptCallback, &dialog );    XtAddCallback( dialog.dialog(), XmNcancelCallback,                   (XtCallbackProc) QMotifDialog::rejectCallback, &dialog );    XtUnmanageChild( XmMessageBoxGetChild( dialog.dialog(),					   XmDIALOG_CANCEL_BUTTON ) );    XtUnmanageChild( XmMessageBoxGetChild( dialog.dialog(),					   XmDIALOG_HELP_BUTTON ) );    dialog.exec();    XmStringFree( message );}void MainWindow::showCustomDialog(){    QMotifDialog dialog( XtParent( motifWidget() ),			 NULL, 0, "custom dialog", TRUE );    dialog.setCaption( tr("Custom Motif Dialog") );    Widget form = XmCreateForm( dialog.shell(), "custom motif dialog", NULL, 0 );    XmString str;    Arg args[9];    str = XmStringCreateLocalized( "Close" );    XtSetArg( args[0], XmNlabelString, str );    XtSetArg( args[1], XmNshowAsDefault, True );    XtSetArg( args[2], XmNleftAttachment, XmATTACH_POSITION );    XtSetArg( args[3], XmNleftPosition, 40 );    XtSetArg( args[4], XmNrightAttachment, XmATTACH_POSITION );    XtSetArg( args[5], XmNrightPosition, 60 );    XtSetArg( args[7], XmNbottomAttachment, XmATTACH_FORM );    XtSetArg( args[6], XmNtopOffset, 10 );    XtSetArg( args[8], XmNbottomOffset, 10 );    Widget button = XmCreatePushButton( form, "Close", args, 9 );    XmStringFree( str );    str = XmStringCreateLocalized( "This is a Custom dialog." );    XtSetArg( args[0], XmNlabelString, str );    XtSetArg( args[1], XmNleftAttachment, XmATTACH_FORM );    XtSetArg( args[2], XmNrightAttachment, XmATTACH_FORM );    XtSetArg( args[3], XmNtopAttachment, XmATTACH_FORM );    XtSetArg( args[4], XmNbottomAttachment, XmATTACH_WIDGET );    XtSetArg( args[5], XmNbottomWidget, button );    XtSetArg( args[6], XmNtopOffset, 10 );    XtSetArg( args[7], XmNbottomOffset, 10 );    Widget label = XmCreateLabelGadget( form, "label", args, 8 );    XmStringFree( str );    XtManageChild( button );    XtManageChild( label );    XtManageChild( form );    XtAddCallback( button, XmNactivateCallback,		   (XtCallbackProc) QMotifDialog::acceptCallback, &dialog );    dialog.exec();}void MainWindow::showQtDialog(){    QMessageBox::aboutQt( this, tr("QMotif Dialog Example") );}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -