这是全部代码:
mainwidget.h
#ifndef _MAINWIDGET_H_
#define _MAINWIDGET_H_
#include <qapplication.h>
#include <qmainwindow.h>
#include <qmenubar.h>
#include <qpopupmenu.h>
#include <qlabel.h>
#include <qmessagebox.h>
class MainWidget: public QMainWindow
{
Q_OBJECT
public:
MainWidget( QWidget *parent=0, const char *name=0, uint f1 = 0 );
public slots:
void openFile();
void saveFile();
void exitMain();
void aboutDialog();
void mousePressEvent( QMouseEvent* );
void mouseMoveEvent( QMouseEvent* );
private:
QLabel *label;
};
#endif
mainwidget.cpp
#include "mainwidget.h"
MainWidget::MainWidget( QWidget *parent, const char *name , uint )
:QMainWindow( parent, name )
{
setCaption( "NcuPad" );
setBackgroundColor( white );
QFont f( "Helvetica", 18, QFont::Bold );
setFont( f );
label = new QLabel( "", this );
label->setGeometry( 50, 50, 250, 50 );
label->setBackgroundColor( white );
QPopupMenu *file = new QPopupMenu;
QFont f1( "Helvetica", 14, QFont::Bold );
setFont( f1 );
file->setFont( f1 );
file->insertItem( "&Open", this, SLOT( openFile() ),
CTRL+Key_O );
file->insertItem( "&Save", this, SLOT( saveFile() ), CTRL+Key_S );
file->insertSeparator();
file->insertItem( "E&xit", this, SLOT( exitMain() ),
CTRL+Key_X );
QPopupMenu *help = new QPopupMenu;
help->setFont( f1 );
help->insertItem( "&About", this, SLOT( aboutDialog() ),
CTRL+Key_A );
QMenuBar *menu;
menu = new QMenuBar( this );
menu->insertItem( "&File", file );
menu->insertItem( "&Help", help );
}
void MainWidget::openFile()
{
label->setText( "File has been opened!" );
}
void MainWidget::saveFile()
{
label->setText( "File has been saved!" );
}
void MainWidget::aboutDialog()
{
QMessageBox::about(this, "About NcuPad",
"<h2>Ncupad 1.0</h2>"
"<p>Programmed by curay, Nanchang University."
"<p>NcuPad is a small application that "
"allows you to draw anythinng you want and "
"show it on the PC.It is helpful when you are "
"teaching something.");
}
void MainWidget::mousePressEvent( QMouseEvent *e )
{
switch( e->button() )
{
case LeftButton:
label->clear();
label->setText( "Mouse:LeftButton Pressed!" );
break;
case RightButton:
label->clear();
label->setText( "Mouse:RightButton Pressed!" );
break;
case MidButton:
label->clear();
label->setText( "Mouse:MidButton Pressed!" );
break;
default:
label->clear();
label->setText( "Mouse:Undefined Pressed!" );
break;
}
}
void MainWidget::mouseMoveEvent( QMouseEvent *e )
{
QString str = QString( "X:" );
QString ps = "";
ps = ps.setNum( e->x() );
str += ps;
str += " Y:";
ps = "";
ps = ps.setNum( e->y() );
str += ps;
label->clear();
label->setText( str );
}
void MainWidget::exitMain()
{
QApplication::exit();
}
main.cpp
#include "mainwidget.h"
#include <qtopia/qpeapplication.h>
QTOPIA_ADD_APPLICATION("myapp",MainWidget)
QTOPIA_MAIN