• 14422阅读
  • 9回复

为什么经常出现这个错误 error: ‘Ui’ has not been declared ? [复制链接]

上一主题 下一主题
离线jrdeng
 
只看楼主 正序阅读 楼主  发表于: 2007-07-15
— 本帖被 XChinux 执行加亮操作(2008-07-18) —
我完全按照“Qt 4 程序设计指南”编写代码,但编译是经常出现
error: ‘Ui’ has not been declared

这个错误,那位知道为什么阿?
离线jrdeng
只看该作者 9楼 发表于: 2007-07-16
我把sortdialog.h中的class SortDialog : public QDialog, public Ui::SortDialog
改为 class SortDialog : public QDialog, public Ui::Dialog

终于成功运行了,谢谢 XChinux !!
离线jrdeng
只看该作者 8楼 发表于: 2007-07-15
还有一点错:

[jrdeng@localhost QT]$ make
/usr/lib/qt4/bin/uic sortdialog.ui -o ui_sortdialog.h
g++ -c -pipe -O2 -g -march=i386 -mcpu=i686 -Wall -W -D_REENTRANT  -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I. -I. -I. -o main.o main.cpp
`-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.
In file included from main.cpp:8:
sortdialog.h:9: error: expected class-name before ‘{’ token
make: *** [main.o] 错误 1
离线XChinux

只看该作者 7楼 发表于: 2007-07-15
你的sortdialog.h的宏定义错了,
和ui_sortdialog.h里的宏定义一样,所以实际上ui_sortdialog.h并没有被包含进去。
把sortdialog.h开头的宏改一下,改成和文件名一致的。
#ifndef SORTDIALOG_H
#define SORTDIALOG_H
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线jrdeng
只看该作者 6楼 发表于: 2007-07-15
它总是说Ui没定义,Ui不是在头文件里已经定义了么??
离线jrdeng
只看该作者 5楼 发表于: 2007-07-15
还是有错

[jrdeng@localhost QT]$ make
/usr/lib/qt4/bin/uic sortdialog.ui -o ui_sortdialog.h
g++ -c -pipe -O2 -g -march=i386 -mcpu=i686 -Wall -W -D_REENTRANT  -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I. -I. -I. -o main.o main.cpp
`-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.
In file included from main.cpp:8:
sortdialog.h:21:7: warning: no newline at end of file
main.cpp:17:2: warning: no newline at end of file
In file included from main.cpp:8:
sortdialog.h:8: error: ‘Ui’ has not been declared
sortdialog.h:8: error: expected `{' before ‘SortDialog’
sortdialog.h:8: error: function definition does not declare parameters
main.cpp: In function ‘int main(int, char**)’:
main.cpp:13: error: aggregate ‘SortDialog dialog’ has incomplete type and cannot be defined
make: *** [main.o] 错误 1
[jrdeng@localhost QT]$   
离线XChinux

只看该作者 4楼 发表于: 2007-07-15
QApplication.h
不存在这样的文件。
应该是qapplication.h
或者
QApplication
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线jrdeng
只看该作者 3楼 发表于: 2007-07-15
[jrdeng@localhost QT]$ ls
main.cpp  QT.pro          sortdialog.h  ui_sortdialog.h
Makefile  sortdialog.cpp  sortdialog.ui
[jrdeng@localhost QT]$ cat sortdialog.ui
<ui version="4.0" >
<class>Dialog</class>
<widget class="QDialog" name="Dialog" >
  <property name="geometry" >
  <rect>
    <x>0</x>
    <y>0</y>
    <width>310</width>
    <height>345</height>
  </rect>
  </property>
  <property name="windowTitle" >
  <string>Sort</string>
  </property>
  <widget class="QGroupBox" name="primaryGroupBox" >
  <property name="geometry" >
    <rect>
    <x>20</x>
    <y>20</y>
    <width>179</width>
    <height>88</height>
    </rect>
  </property>
  <property name="title" >
    <string>&Primary Key</string>
  </property>
  <layout class="QGridLayout" >
    <property name="margin" >
    <number>9</number>
    </property>
    <property name="spacing" >
    <number>6</number>
    </property>
    <item row="0" column="0" >
    <widget class="QLabel" name="label" >
      <property name="text" >
      <string>Column:</string>
      </property>
      <property name="buddy" >
      <cstring>primaryColumnComboBox</cstring>
      </property>
    </widget>
    </item>
    <item row="1" column="0" >
    <widget class="QLabel" name="label_2" >
      <property name="text" >
      <string>Order:</string>
      </property>
      <property name="buddy" >
      <cstring>primaryOrderComboBox</cstring>
      </property>
    </widget>
    </item>
    <item row="0" column="2" >
    <spacer>
      <property name="orientation" >
      <enum>Qt::Horizontal</enum>
      </property>
      <property name="sizeHint" >
      <size>
        <width>40</width>
        <height>20</height>
      </size>
      </property>
    </spacer>
    </item>
    <item row="0" column="1" >
    <widget class="QComboBox" name="primaryColumnComboBox" >
      <item>
      <property name="text" >
        <string>None</string>
      </property>
      </item>
    </widget>
    </item>
    <item row="1" column="1" colspan="2" >
    <widget class="QComboBox" name="primaryOrderComboBox" >
      <item>
      <property name="text" >
        <string>Ascending</string>
      </property>
      </item>
      <item>
      <property name="text" >
        <string>Descenging</string>
      </property>
      </item>
    </widget>
    </item>
  </layout>
  </widget>
  <widget class="QGroupBox" name="secondaryGroupBox" >
  <property name="geometry" >
    <rect>
    <x>20</x>
    <y>120</y>
    <width>179</width>
    <height>88</height>
    </rect>
  </property>
  <property name="title" >
    <string>&Secondary Key</string>
  </property>
  <layout class="QGridLayout" >
    <property name="margin" >
    <number>9</number>
    </property>
    <property name="spacing" >
    <number>6</number>
    </property>
    <item row="0" column="0" >
    <widget class="QLabel" name="label_3" >
      <property name="text" >
      <string>Column:</string>
      </property>
      <property name="buddy" >
      <cstring>secondaryColumnComboBox</cstring>
      </property>
    </widget>
    </item>
    <item row="1" column="0" >
    <widget class="QLabel" name="label_4" >
      <property name="text" >
      <string>Order:</string>
      </property>
      <property name="buddy" >
      <cstring>secondaryOrderComboBox</cstring>
      </property>
    </widget>
    </item>
    <item row="0" column="2" >
    <spacer>
      <property name="orientation" >
      <enum>Qt::Horizontal</enum>
      </property>
      <property name="sizeHint" >
      <size>
        <width>40</width>
        <height>20</height>
      </size>
      </property>
    </spacer>
    </item>
    <item row="0" column="1" >
    <widget class="QComboBox" name="secondaryColumnComboBox" >
      <item>
      <property name="text" >
        <string>None</string>
      </property>
      </item>
    </widget>
    </item>
    <item row="1" column="1" colspan="2" >
    <widget class="QComboBox" name="secondaryOrderComboBox" >
      <item>
      <property name="text" >
        <string>Ascending</string>
      </property>
      </item>
      <item>
      <property name="text" >
        <string>Descenging</string>
      </property>
      </item>
    </widget>
    </item>
  </layout>
  </widget>
  <widget class="QGroupBox" name="tertiaryGroupBox" >
  <property name="geometry" >
    <rect>
    <x>20</x>
    <y>220</y>
    <width>179</width>
    <height>88</height>
    </rect>
  </property>
  <property name="title" >
    <string>&Tertiary Key</string>
  </property>
  <layout class="QGridLayout" >
    <property name="margin" >
    <number>9</number>
    </property>
    <property name="spacing" >
    <number>6</number>
    </property>
    <item row="0" column="0" >
    <widget class="QLabel" name="label_5" >
      <property name="text" >
      <string>Column:</string>
      </property>
      <property name="buddy" >
      <cstring>tertiaryColumnComboBox</cstring>
      </property>
    </widget>
    </item>
    <item row="1" column="0" >
    <widget class="QLabel" name="label_6" >
      <property name="text" >
      <string>Order:</string>
      </property>
      <property name="buddy" >
      <cstring>tertiaryOrderComboBox</cstring>
      </property>
    </widget>
    </item>
    <item row="0" column="2" >
    <spacer>
      <property name="orientation" >
      <enum>Qt::Horizontal</enum>
      </property>
      <property name="sizeHint" >
      <size>
        <width>40</width>
        <height>20</height>
      </size>
      </property>
    </spacer>
    </item>
    <item row="0" column="1" >
    <widget class="QComboBox" name="tertiaryColumnComboBox" >
      <item>
      <property name="text" >
        <string>None</string>
      </property>
      </item>
    </widget>
    </item>
    <item row="1" column="1" colspan="2" >
    <widget class="QComboBox" name="tertiaryOrderComboBox" >
      <item>
      <property name="text" >
        <string>Ascending</string>
      </property>
      </item>
      <item>
      <property name="text" >
        <string>Descenging</string>
      </property>
      </item>
    </widget>
    </item>
  </layout>
  </widget>
  <widget class="QPushButton" name="okButton" >
  <property name="geometry" >
    <rect>
    <x>220</x>
    <y>40</y>
    <width>75</width>
    <height>26</height>
    </rect>
  </property>
  <property name="text" >
    <string>OK</string>
  </property>
  <property name="default" >
    <bool>true</bool>
  </property>
  </widget>
  <widget class="QPushButton" name="cancelButton" >
  <property name="geometry" >
    <rect>
    <x>220</x>
    <y>80</y>
    <width>75</width>
    <height>26</height>
    </rect>
  </property>
  <property name="text" >
    <string>Cancel</string>
  </property>
  </widget>
  <widget class="QPushButton" name="moreButton" >
  <property name="geometry" >
    <rect>
    <x>220</x>
    <y>120</y>
    <width>75</width>
    <height>26</height>
    </rect>
  </property>
  <property name="text" >
    <string>More</string>
  </property>
  <property name="default" >
    <bool>true</bool>
  </property>
  </widget>
</widget>
<resources/>
<connections>
  <connection>
  <sender>okButton</sender>
  <signal>clicked()</signal>
  <receiver>Dialog</receiver>
  <slot>accept()</slot>
  <hints>
    <hint type="sourcelabel" >
    <x>255</x>
    <y>57</y>
    </hint>
    <hint type="destinationlabel" >
    <x>285</x>
    <y>6</y>
    </hint>
  </hints>
  </connection>
  <connection>
  <sender>cancelButton</sender>
  <signal>clicked()</signal>
  <receiver>Dialog</receiver>
  <slot>reject()</slot>
  <hints>
    <hint type="sourcelabel" >
    <x>234</x>
    <y>104</y>
    </hint>
    <hint type="destinationlabel" >
    <x>274</x>
    <y>181</y>
    </hint>
  </hints>
  </connection>
  <connection>
  <sender>moreButton</sender>
  <signal>toggled(bool)</signal>
  <receiver>secondaryGroupBox</receiver>
  <slot>setShown(bool)</slot>
  <hints>
    <hint type="sourcelabel" >
    <x>268</x>
    <y>131</y>
    </hint>
    <hint type="destinationlabel" >
    <x>172</x>
    <y>161</y>
    </hint>
  </hints>
  </connection>
  <connection>
  <sender>moreButton</sender>
  <signal>toggled(bool)</signal>
  <receiver>tertiaryGroupBox</receiver>
  <slot>setShown(bool)</slot>
  <hints>
    <hint type="sourcelabel" >
    <x>246</x>
    <y>133</y>
    </hint>
    <hint type="destinationlabel" >
    <x>190</x>
    <y>272</y>
    </hint>
  </hints>
  </connection>
</connections>
</ui>
[jrdeng@localhost QT]$ uic-qt4 sortdialog.ui
/********************************************************************************
** Form generated from reading ui file 'sortdialog.ui'
**
** Created: Sun Jul 15 20:35:32 2007
**      by: Qt User Interface Compiler version 4.2.3
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/

#ifndef UI_SORTDIALOG_H
#define UI_SORTDIALOG_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QComboBox>
#include <QtGui/QDialog>
#include <QtGui/QGridLayout>
#include <QtGui/QGroupBox>
#include <QtGui/QLabel>
#include <QtGui/QPushButton>
#include <QtGui/QSpacerItem>

class Ui_Dialog
{
public:
    QGroupBox *primaryGroupBox;
    QGridLayout *gridLayout;
    QLabel *label;
    QLabel *label_2;
    QSpacerItem *spacerItem;
    QComboBox *primaryColumnComboBox;
    QComboBox *primaryOrderComboBox;
    QGroupBox *secondaryGroupBox;
    QGridLayout *gridLayout1;
    QLabel *label_3;
    QLabel *label_4;
    QSpacerItem *spacerItem1;
    QComboBox *secondaryColumnComboBox;
    QComboBox *secondaryOrderComboBox;
    QGroupBox *tertiaryGroupBox;
    QGridLayout *gridLayout2;
    QLabel *label_5;
    QLabel *label_6;
    QSpacerItem *spacerItem2;
    QComboBox *tertiaryColumnComboBox;
    QComboBox *tertiaryOrderComboBox;
    QPushButton *okButton;
    QPushButton *cancelButton;
    QPushButton *moreButton;

    void setupUi(QDialog *Dialog)
    {
    Dialog->setObjectName(QString::fromUtf8("Dialog"));
    primaryGroupBox = new QGroupBox(Dialog);
    primaryGroupBox->setObjectName(QString::fromUtf8("primaryGroupBox"));
    primaryGroupBox->setGeometry(QRect(20, 20, 179, 88));
    gridLayout = new QGridLayout(primaryGroupBox);
    gridLayout->setSpacing(6);
    gridLayout->setMargin(9);
    gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
    label = new QLabel(primaryGroupBox);
    label->setObjectName(QString::fromUtf8("label"));

    gridLayout->addWidget(label, 0, 0, 1, 1);

    label_2 = new QLabel(primaryGroupBox);
    label_2->setObjectName(QString::fromUtf8("label_2"));

    gridLayout->addWidget(label_2, 1, 0, 1, 1);

    spacerItem = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Min
imum);

    gridLayout->addItem(spacerItem, 0, 2, 1, 1);

    primaryColumnComboBox = new QComboBox(primaryGroupBox);
    primaryColumnComboBox->setObjectName(QString::fromUtf8("primaryColumnComboBox
"));

    gridLayout->addWidget(primaryColumnComboBox, 0, 1, 1, 1);

    primaryOrderComboBox = new QComboBox(primaryGroupBox);
    primaryOrderComboBox->setObjectName(QString::fromUtf8("primaryOrderComboBox")
);

    gridLayout->addWidget(primaryOrderComboBox, 1, 1, 1, 2);

    secondaryGroupBox = new QGroupBox(Dialog);
    secondaryGroupBox->setObjectName(QString::fromUtf8("secondaryGroupBox"));
    secondaryGroupBox->setGeometry(QRect(20, 120, 179, 88));
    gridLayout1 = new QGridLayout(secondaryGroupBox);
    gridLayout1->setSpacing(6);
    gridLayout1->setMargin(9);
    gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
    label_3 = new QLabel(secondaryGroupBox);
    label_3->setObjectName(QString::fromUtf8("label_3"));

    gridLayout1->addWidget(label_3, 0, 0, 1, 1);

    label_4 = new QLabel(secondaryGroupBox);
    label_4->setObjectName(QString::fromUtf8("label_4"));

    gridLayout1->addWidget(label_4, 1, 0, 1, 1);

    spacerItem1 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Mi
nimum);

    gridLayout1->addItem(spacerItem1, 0, 2, 1, 1);

    secondaryColumnComboBox = new QComboBox(secondaryGroupBox);
    secondaryColumnComboBox->setObjectName(QString::fromUtf8("secondaryColumnComb
oBox"));

    gridLayout1->addWidget(secondaryColumnComboBox, 0, 1, 1, 1);

    secondaryOrderComboBox = new QComboBox(secondaryGroupBox);
    secondaryOrderComboBox->setObjectName(QString::fromUtf8("secondaryOrderComboB
ox"));

    gridLayout1->addWidget(secondaryOrderComboBox, 1, 1, 1, 2);

    tertiaryGroupBox = new QGroupBox(Dialog);
    tertiaryGroupBox->setObjectName(QString::fromUtf8("tertiaryGroupBox"));
    tertiaryGroupBox->setGeometry(QRect(20, 220, 179, 88));
    gridLayout2 = new QGridLayout(tertiaryGroupBox);
    gridLayout2->setSpacing(6);
    gridLayout2->setMargin(9);
    gridLayout2->setObjectName(QString::fromUtf8("gridLayout2"));
    label_5 = new QLabel(tertiaryGroupBox);
    label_5->setObjectName(QString::fromUtf8("label_5"));

    gridLayout2->addWidget(label_5, 0, 0, 1, 1);

    label_6 = new QLabel(tertiaryGroupBox);
    label_6->setObjectName(QString::fromUtf8("label_6"));

    gridLayout2->addWidget(label_6, 1, 0, 1, 1);

    spacerItem2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Mi
nimum);

    gridLayout2->addItem(spacerItem2, 0, 2, 1, 1);

    tertiaryColumnComboBox = new QComboBox(tertiaryGroupBox);
    tertiaryColumnComboBox->setObjectName(QString::fromUtf8("tertiaryColumnComboB
ox"));

    gridLayout2->addWidget(tertiaryColumnComboBox, 0, 1, 1, 1);

    tertiaryOrderComboBox = new QComboBox(tertiaryGroupBox);
    tertiaryOrderComboBox->setObjectName(QString::fromUtf8("tertiaryOrderComboBox
"));

    gridLayout2->addWidget(tertiaryOrderComboBox, 1, 1, 1, 2);

    okButton = new QPushButton(Dialog);
    okButton->setObjectName(QString::fromUtf8("okButton"));
    okButton->setGeometry(QRect(220, 40, 75, 26));
    okButton->setDefault(true);
    cancelButton = new QPushButton(Dialog);
    cancelButton->setObjectName(QString::fromUtf8("cancelButton"));
    cancelButton->setGeometry(QRect(220, 80, 75, 26));
    moreButton = new QPushButton(Dialog);
    moreButton->setObjectName(QString::fromUtf8("moreButton"));
    moreButton->setGeometry(QRect(220, 120, 75, 26));
    moreButton->setDefault(true);
    label->setBuddy(primaryColumnComboBox);
    label_2->setBuddy(primaryOrderComboBox);
    label_3->setBuddy(secondaryColumnComboBox);
    label_4->setBuddy(secondaryOrderComboBox);
    label_5->setBuddy(tertiaryColumnComboBox);
    label_6->setBuddy(tertiaryOrderComboBox);

    retranslateUi(Dialog);

    QSize size(310, 345);
    size = size.expandedTo(Dialog->minimumSizeHint());
    Dialog->resize(size);

    QObject::connect(okButton, SIGNAL(clicked()), Dialog, SLOT(accept()));
    QObject::connect(cancelButton, SIGNAL(clicked()), Dialog, SLOT(reject()));
    QObject::connect(moreButton, SIGNAL(toggled(bool)), secondaryGroupBox, SLOT(s
etShown(bool)));
    QObject::connect(moreButton, SIGNAL(toggled(bool)), tertiaryGroupBox, SLOT(se
tShown(bool)));

    QMetaObject::connectSlotsByName(Dialog);
    } // setupUi

    void retranslateUi(QDialog *Dialog)
    {
    Dialog->setWindowTitle(QApplication::translate("Dialog", "Sort", 0, QApplicat
ion::UnicodeUTF8));
    primaryGroupBox->setTitle(QApplication::translate("Dialog", "&Primary Key", 0
, QApplication::UnicodeUTF8));
    label->setText(QApplication::translate("Dialog", "Column:", 0, QApplication::
UnicodeUTF8));
    label_2->setText(QApplication::translate("Dialog", "Order:", 0, QApplication:
:UnicodeUTF8));
    primaryColumnComboBox->clear();
    primaryColumnComboBox->addItem(QApplication::translate("Dialog", "None", 0, Q
Application::UnicodeUTF8));
    primaryOrderComboBox->clear();
    primaryOrderComboBox->addItem(QApplication::translate("Dialog", "Ascending",
0, QApplication::UnicodeUTF8));
    primaryOrderComboBox->addItem(QApplication::translate("Dialog", "Descenging",
0, QApplication::UnicodeUTF8));
    secondaryGroupBox->setTitle(QApplication::translate("Dialog", "&Secondary Key
", 0, QApplication::UnicodeUTF8));
    label_3->setText(QApplication::translate("Dialog", "Column:", 0, QApplication
::UnicodeUTF8));
    label_4->setText(QApplication::translate("Dialog", "Order:", 0, QApplication:
:UnicodeUTF8));
    secondaryColumnComboBox->clear();
    secondaryColumnComboBox->addItem(QApplication::translate("Dialog", "None", 0,
QApplication::UnicodeUTF8));
    secondaryOrderComboBox->clear();
    secondaryOrderComboBox->addItem(QApplication::translate("Dialog", "Ascending"
, 0, QApplication::UnicodeUTF8));
    secondaryOrderComboBox->addItem(QApplication::translate("Dialog", "Descenging
", 0, QApplication::UnicodeUTF8));
    tertiaryGroupBox->setTitle(QApplication::translate("Dialog", "&Tertiary Key",
0, QApplication::UnicodeUTF8));
    label_5->setText(QApplication::translate("Dialog", "Column:", 0, QApplication
::UnicodeUTF8));
    label_6->setText(QApplication::translate("Dialog", "Order:", 0, QApplication:
:UnicodeUTF8));
    tertiaryColumnComboBox->clear();
    tertiaryColumnComboBox->addItem(QApplication::translate("Dialog", "None", 0,
QApplication::UnicodeUTF8));
    tertiaryOrderComboBox->clear();
    tertiaryOrderComboBox->addItem(QApplication::translate("Dialog", "Ascending",                                            0, QApplication::UnicodeUTF8));
    tertiaryOrderComboBox->addItem(QApplication::translate("Dialog", "Descenging"                                          , 0, QApplication::UnicodeUTF8));
    okButton->setText(QApplication::translate("Dialog", "OK", 0, QApplication::Un                                          icodeUTF8));
    cancelButton->setText(QApplication::translate("Dialog", "Cancel", 0, QApplica                                          tion::UnicodeUTF8));
    moreButton->setText(QApplication::translate("Dialog", "More", 0, QApplication                                          ::UnicodeUTF8));
    Q_UNUSED(Dialog);
    } // retranslateUi

};

namespace Ui {
    class Dialog: public Ui_Dialog {};
} // namespace Ui

#endif // UI_SORTDIALOG_H
[jrdeng@localhost QT]$
离线jrdeng
只看该作者 2楼 发表于: 2007-07-15
系统是Everest 0.5pre(红旗的社区发行版本)


[jrdeng@localhost QT]$ qmake-qt4 -version
QMake version 2.01a
Using Qt version 4.2.3 in /usr/lib
[jrdeng@localhost QT]$ uname -a
Linux localhost.localdomain 2.6.21.5-34 #1 SMP Wed Jun 13 16:35:34 EDT 2007 i686 i686 i386 GNU/Linux
[jrdeng@localhost QT]$ qmake-qt4 -version
QMake version 2.01a
Using Qt version 4.2.3 in /usr/lib
[jrdeng@localhost QT]$ ls
main.cpp  sortdialog.cpp  sortdialog.h  sortdialog.ui
[jrdeng@localhost QT]$ qmake-qt4 -project
[jrdeng@localhost QT]$ qmake-qt4
[jrdeng@localhost QT]$ make
/usr/lib/qt4/bin/uic sortdialog.ui -o ui_sortdialog.h
g++ -c -pipe -O2 -g -march=i386 -mcpu=i686 -Wall -W -D_REENTRANT  -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I. -I. -I. -o main.o main.cpp
`-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.
main.cpp:6:26: error: QApplication.h: 没有那个文件或目录
In file included from main.cpp:8:
sortdialog.h:21:7: warning: no newline at end of file
main.cpp:17:2: warning: no newline at end of file
In file included from main.cpp:8:
sortdialog.h:8: error: ‘Ui’ has not been declared
sortdialog.h:8: error: expected `{' before ‘SortDialog’
sortdialog.h:8: error: function definition does not declare parameters
main.cpp: In function ‘int main(int, char**)’:
main.cpp:12: error: variable ‘QApplication app’ has initializer but incomplete type
main.cpp:13: error: aggregate ‘SortDialog dialog’ has incomplete type and cannot be defined
make: *** [main.o] 错误 1
[jrdeng@localhost QT]$   

我是编译 Sort那个程序的:

main.cpp  如下:


#include <QApplication.h>

#include "sortdialog.h"

int main(int argc,char *argv[])
{
    QApplication  app(argc,argv);
    SortDialog  dialog;
    dialog.setColumnRange('C','F');
    dialog.show();
    return app.exec();
}

sortdialog.h  如下:

#ifndef UI_SORTDIALOG_H
#define UI_SORTDIALOG_H

#include <QtGui/QDialog>

#include "ui_sortdialog.h"

class SortDialog : public QDialog, public Ui::SortDialog
{
  Q_OBJECT

  public:
    SortDialog(QWidget* parent=0);
    ~SortDialog();

  public slots:
    void setColumnRange(QChar first,QChar last);

};

#endif


sortdialog.cpp如下:

#include "sortdialog.h"

SortDialog::SortDialog(QWidget* parent):QDialog(parent)
{
  setupUi(this);
  secondaryGroupBox->hide();
  tertiaryGroupBox->hide();
  setColumnRange('A','z');
}

SortDialog::~SortDialog()
{
}

void SortDialog::setColumnRange(QChar first,QChar last)
{
    primaryColumnComboBox->clear();
    secondaryColumnComboBox->clear();
    tertiaryColumnComboBox->clear();

    secondaryColumnComboBox->insertItem(0,tr("None"));
    tertiaryColumnComboBox->insertItem(0,tr("None"));

    primaryColumnComboBox->setMinimumSize(secondaryColumnComboBox->sizeHint());
    QChar ch=first;
    while(ch<=last)
  {
    primaryColumnComboBox->insertItem(0,ch);
    secondaryColumnComboBox->insertItem(0,ch);
    tertiaryColumnComboBox->insertItem(0,ch);
    ch=ch.unicode()+1;
  } 
}                                     
离线XChinux

只看该作者 1楼 发表于: 2007-07-15
把代码和出错信息全帖 上来
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个