我有一个头文件,在头文件之内本来想定义一个自己的Button类,但是在头文件加上这个自己的类声明就是用红色的标出的,但是编译死活通不过。去掉这行声明就是跑的很好。pltest error PRJ0019: Ein Tool hat einen Fehlercode aus folgender Quelle zurückgegeben: "Moc'ing test.h..." 这是给出的错误提示,不知道为什么不能自己再定义自己的按钮类了
原头文件是
#ifndef FORM1_H
#define FORM1_H
#include <qvariant.h>
#include <qpixmap.h>
#include <qmainwindow.h>
#include <QPushButton.h>
#include <QWidget.h>
#include "QPushButton.h"
class QVBoxLayout;
class QHBoxLayout;
class QGridLayout;
class QAction;
class QActionGroup;
class QToolBar;
class QPopupMenu;
class QToolBox;
class QWidget;
class QToolButton;
class QPushButton;
class MyButton: public QPushButtton
{
Q_OBJECT
public:
MyButton( QWidget *parent, const char* name );
~MyButton();
void sendsignal();
}
class Form1 : public QMainWindow
{
Q_OBJECT
public:
Form1( QWidget* parent = 0, const char* name = 0, WFlags fl = WType_TopLevel );
~Form1();
QToolBox* toolBox1;
QWidget* page1;
QToolButton* toolButton1;
QToolButton* toolButton2;
QWidget* page2;
QPushButton* pushButton1;
protected:
protected slots:
virtual void languageChange();
private:
QPixmap image0;
QPixmap image1;
};
CPP 文件是
#include "test.h"
#include <qvariant.h>
#include <qtoolbox.h>
#include <qwidget.h>
#include <qtoolbutton.h>
#include <qpushbutton.h>
#include <qlayout.h>
#include <qtooltip.h>
#include <qwhatsthis.h>
#include <qaction.h>
#include <qmenubar.h>
#include <qpopupmenu.h>
#include <qtoolbar.h>
#include <qimage.h>
#include <qpixmap.h>
Form1::Form1( QWidget* parent, const char* name, WFlags fl )
: QMainWindow( parent, name, fl ),
image0( (const char **) image0_data ),
image1( (const char **) image1_data )
{
(void)statusBar();
if ( !name )
setName( "Form1" );
setCentralWidget( new QWidget( this, "qt_central_widget" ) );
toolBox1 = new QToolBox( centralWidget(), "toolBox1" );
toolBox1->setGeometry( QRect( 0, 10, 84, 290 ) );
toolBox1->setFrameShape( QToolBox::NoFrame );
toolBox1->setFrameShadow( QToolBox::Plain );
toolBox1->setCurrentIndex( 0 );
page1 = new QWidget( toolBox1, "page1" );
page1->setBackgroundMode( QWidget::PaletteBackground );
toolButton1 = new QToolButton( page1, "toolButton1" );
toolButton1->setGeometry( QRect( 0, 0, 50, 40 ) );
toolButton1->setIconSet( QIconSet( image0 ) );
toolButton1->setUsesTextLabel( FALSE );
toolButton1->setAutoRaise( TRUE );
toolButton1->setTextPosition( QToolButton::BesideIcon );
toolButton2 = new QToolButton( page1, "toolButton2" );
toolButton2->setGeometry( QRect( 0, 40, 50, 31 ) );
toolButton2->setIconSet( QIconSet( image1 ) );
toolButton2->setUsesTextLabel( FALSE );
toolButton2->setAutoRaise( TRUE );
toolButton2->setTextPosition( QToolButton::BesideIcon );
toolBox1->addItem( page1, "Bearbeiten" );
page2 = new QWidget( toolBox1, "page2" );
page2->setBackgroundMode( QWidget::PaletteBackground );
toolBox1->addItem( page2, "Page 2" );
pushButton1 = new QPushButton( centralWidget(), "pushButton1" );
pushButton1->setGeometry( QRect( 100, 10, 80, 24 ) );
// toolbars
languageChange();
resize( QSize(210, 465).expandedTo(minimumSizeHint()) );
clearWState( WState_Polished );
}
/*
* Destroys the object and frees any allocated resources
*/
Form1::~Form1()
{
// no need to delete child widgets, Qt does it all for us
}
/*
* Sets the strings of the subwidgets using the current
* language.
*/
void Form1::languageChange()
{
setCaption( tr( "Form1" ) );
toolButton1->setTextLabel( QString::null );
toolButton2->setTextLabel( QString::null );
pushButton1->setText( tr( "pushButton1" ) );
}
MyButton::MyButton( QWidget *parent, const char* name=0 ):
QPushButton( parent,name)
{
}
void MyButton::sendsignal()
{
}
在线等 谢谢大家