• 5847阅读
  • 7回复

求大家帮忙,在线等急。。。。。。 [复制链接]

上一主题 下一主题
离线pl0528
 

只看楼主 倒序阅读 楼主  发表于: 2008-08-07
— 本帖被 XChinux 执行加亮操作(2008-08-07) —
我有一个头文件,在头文件之内本来想定义一个自己的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()
{

}






在线等 谢谢大家




















































离线water_wf

只看该作者 1楼 发表于: 2008-08-07
class {
};//???????????
离线浪漫天使
只看该作者 2楼 发表于: 2008-08-07
class MyButton: public QPushButtton
{
Q_OBJECT
public:
MyButton( QWidget *parent, const char* name );
~MyButton();
void sendsignal();
}//这里好像 少了个分号,先检查这个把。
离线浪漫天使
只看该作者 3楼 发表于: 2008-08-07
呵呵同时回复阿
离线uyoufaith

只看该作者 4楼 发表于: 2008-08-07
你的button类 少了分号 你加个试试
离线water_wf

只看该作者 5楼 发表于: 2008-08-07
呵呵,it is my honor!
离线uyoufaith

只看该作者 6楼 发表于: 2008-08-07
MyButton::MyButton( QWidget *parent, const char* name=0 ):
QPushButton( parent,name)
{
}


分号少了, 这个地方也会报错吧 。。

以后要是构造函数出错,但是又没出错,你就检查下类 是不是少了个分号
离线pl0528

只看该作者 7楼 发表于: 2008-08-31
谢谢大家,问题就是少了个分号,出了这种低级错误,挺不好意思的,嘿嘿 可以结贴了
快速回复
限100 字节
 
上一个 下一个