Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Classes principales  ·  Annotées  ·  Classes groupées  ·  Fonctions  · 

Editors in a Qt main window

This example shows two simple text editors, with most of the program written in Qt. One editor is a Qt QMultiLineEdit, the other is an Athena Widgets text widget. They are bound together in a Qt main window.


Implementation:

#include <qmainwindow.h>
#include <qmultilineedit.h>
#include <qpainter.h>
#include <qmessagebox.h>
#include <qpopupmenu.h>
#include <qmenubar.h>
#include <qsplitter.h>
#include "qxt.h"
#include <X11/IntrinsicP.h>
#include <X11/Shell.h>
#include <X11/StringDefs.h>
#include <X11/Xaw/AsciiText.h>

static const char* QTEDMSG =
    "This is a Qt widget.\nIt is a QMultiLineEdit.";

static const char* XTEDMSG =
    "This is an Xt widget.\nIt is an asciiTextWidgetClass.";


class EncapsulatedXtWidget : public QXtWidget {
    Widget editor;
public:
    EncapsulatedXtWidget(QWidget* parent) :
        QXtWidget( "shell", topLevelShellWidgetClass, parent )
    {
        Arg args[20];
        Cardinal nargs=0;
        XtSetArg(args[nargs], XtNeditType, XawtextEdit); nargs++;
        XtSetArg(args[nargs], XtNstring, XTEDMSG);       nargs++;
        editor = XtCreateWidget( "editor", asciiTextWidgetClass, xtWidget(), args, nargs);
        XtRealizeWidget( editor );
        XtMapWidget( editor );
    }
    void resizeEvent( QResizeEvent* e )
    {
        QXtWidget::resizeEvent( e );
        XtResizeWidget( editor, width(), height(), 2 );
    }
};


class TwoEditors : public QMainWindow {
    QMultiLineEdit* qtchild;
    EncapsulatedXtWidget* xtchild;

public:
    TwoEditors() :
        QMainWindow( 0, "mainWindow")
    {
        QPopupMenu* file = new QPopupMenu( this );
        file->insertItem("E&xit", qApp, SLOT( quit() ) );
        menuBar()->insertItem( "&File", file );
        statusBar();
        QSplitter* splitter = new QSplitter( this );
        splitter->setOpaqueResize( TRUE );
        setCentralWidget( splitter );
        xtchild = new EncapsulatedXtWidget( splitter );
        qtchild = new QMultiLineEdit( splitter );
        qtchild->setText(QTEDMSG);
    }

};

int main(int argc, char** argv)
{
    QXtApplication app(argc, argv, "TwoEditors");
    TwoEditors m;
    app.setMainWidget(&m);
    m.show();
    return app.exec();
}

See also Qt Xt/Motif Support Extension.

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 3.0
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web