| Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |
This example program shows how to use an exclusive action group.
Detailed explanations of the code can be found in the walkthrough.
Main:
/*
$Id$
*/
#include <qapplication.h>
#include "editor.h"
int main( int argc, char ** argv)
{
QApplication app( argc, argv );
Editor editor;
editor.setCaption( "Qt Example - Actiongroup" );
app.setMainWidget( &editor );
editor.show();
return app.exec();
}
Header file:
/*
$Id$
*/
#ifndef EDITOR_H
#define EDITOR_H
#include <qmainwindow.h>
class QTextEdit;
class QAction;
class Editor : public QMainWindow
{
Q_OBJECT
public:
Editor();
private slots:
void setFontColor( QAction * );
private:
QTextEdit * editor;
QAction * setRedFont;
};
#endif
Implementation:
/*
$Id$
*/
/* XPM */
static const char * black_xpm[] = {
"32 32 2 1",
" c None",
". c #020202",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................",
"................................"};
/* XPM */
static const char * red_xpm[] = {
"32 32 6 1",
" c None",
". c #EE0928",
"+ c #EF0928",
"@ c #EE0A29",
"# c #EE0B2A",
"$ c #ED0C2B",
"........................+.......",
".+.++++++++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
".++++++++.+++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
"+++++++++++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
".++++++.+++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
".++++++++++++++++.+++++++++++++.",
".++++++++++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++@",
".+++++++++++++++++++++++++++++.#",
".+++++++++++++++++++++++++.+++.$",
".+++++++++++++++++++++++++++++#$",
".+++++++++++++++++++++++++++++.#",
".+++++++++++++++++++++++++++++.#",
".++++++++.+++++++++++++++++++++@",
".++++++.+++++++++++++++++++++++.",
".++++++++++++++++++++++++++++++.",
"..........+.............+......."};
#include "editor.h"
#include <qtextedit.h>
#include <qmenubar.h>
#include <qpopupmenu.h>
#include <qtoolbar.h>
#include <qaction.h>
Editor::Editor()
: QMainWindow( 0, "main window")
{
QActionGroup * colors = new QActionGroup( this, "colors", TRUE );
QAction * setBlackFont = new QAction( "black", QPixmap( (const char**)black_xpm ),
"Font color: black", CTRL+Key_B,
colors, "blackfontcolor", TRUE );
setRedFont = new QAction( "red", QPixmap( (const char**)red_xpm ), "Font color: red",
CTRL+Key_R, colors, "redfontcolor", TRUE );
QObject::connect( colors, SIGNAL( selected( QAction * ) ),
this, SLOT( setFontColor( QAction * ) ) );
QToolBar * toolbar = new QToolBar( this, "toolbar" );
colors->addTo( toolbar );
QPopupMenu * font = new QPopupMenu( this );
menuBar()->insertItem( "&Font", font );
colors->setUsesDropDown( TRUE );
colors->setMenuText( "Font Color" );
colors->addTo( font );
editor = new QTextEdit( this, "editor" );
setCentralWidget( editor );
}
void Editor::setFontColor( QAction * coloraction )
{
if ( coloraction == setRedFont )
editor->setColor( red );
else
editor->setColor( black );
}
See also QAction Examples.
| Copyright © 2002 Trolltech | Trademarks | Qt version 3.0.4
|