• 15281阅读
  • 15回复

【提问】QT designer manual 中例子的问题 [复制链接]

上一主题 下一主题
离线tomcruiz
 

只看楼主 倒序阅读 楼主  发表于: 2005-09-21
在QT assistant中QT designer manual 中的Using a Component in Your Application里面有个例子。我选择The Direct Approach方法。按照要求用designer画好了imagedialog.ui 图形。然后copy了main 程序,放到同一文件夹中。分别用qmake –project,qmake和 make命令进行编译。显示出错,无法获得.exe文件。错误信息如下:
D:\Qt\4.0.0\lib/libqtmain.a(qtmain_win.o)(.text+0x26):qtmain_win.cpp: undefined reference to `__gxx_personality_sj0'
D:\Qt\4.0.0\lib/libqtmain.a(qtmain_win.o)(.text+0x1f7):qtmain_win.cpp: undefined reference to `qMain(int, char**)'

能告诉我是哪出了问题吗?
[ 此贴被XChinux在2005-09-22 08:37重新编辑 ]
离线tomcruiz

只看该作者 1楼 发表于: 2005-09-21
斑竹帮忙啊~~~~~
离线tomcruiz

只看该作者 2楼 发表于: 2005-09-21
后来发现可能是因为没有把.ui文件生成一个.h文件的原因。我用uic命令生成了.h文件。将总共imagedialog.h,imagedialog.ui和main.cpp文件一起按上面的命令编译,结果还是不行。
离线XChinux

只看该作者 3楼 发表于: 2005-09-22
把你的.pro文件帖上来看看,还有main.cpp文件
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线tomcruiz

只看该作者 4楼 发表于: 2005-09-22
#include "ui_imagedialog.h"
  #include <QApplication>
    int main(int argc, char *argv[])
  {
    QApplication app(argc, argv);
    QDialog *window = new QDialog;
    Ui::ImageDialog ui;
    ui.setupUi(window);

    window->show();
    return app.exec();
  }

下面是.pro文件
  TEMPLATE   = app
  FORMS     = imagedialog.ui
  SOURCES   = main.cpp
离线tomcruiz

只看该作者 5楼 发表于: 2005-09-22
这个pro文件是copy QT assistant上面的
离线XChinux

只看该作者 6楼 发表于: 2005-09-22
在main.cpp文件里加上
#include <QDialog>
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线tomcruiz

只看该作者 7楼 发表于: 2005-09-22
main.cpp: In function `int qMain(int, char**)':
main.cpp:8: error: `ImageDialog' is not a member of `Ui'
main.cpp:8: error: expected `;' before "ui"
main.cpp:9: error: `ui' undeclared (first use this function)
main.cpp:9: error: (Each undeclared identifier is reported only once for each function it appears in.)
离线XChinux

只看该作者 8楼 发表于: 2005-09-22
.ui文件你看看里面到底是什么名字
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线tomcruiz

只看该作者 9楼 发表于: 2005-09-22
<ui version="4.0" >
<author></author>
<comment></comment>
<exportmacro></exportmacro>
<class>Dialog</class>
<widget class="QDialog" name="Dialog" >
<property name="geometry" >
  <rect>
  <x>0</x>
  <y>0</y>
  <width>400</width>
  <height>300</height>
  </rect>
</property>
<property name="windowTitle" >
  <string>Dialog</string>
</property>
<widget class="QWidget" name="" >
  <property name="geometry" >
  <rect>
  <x>30</x>
  <y>20</y>
  <width>221</width>
  <height>131</height>
  </rect>
  </property>
  <layout class="QGridLayout" >
  <property name="margin" >
  <number>0</number>
  </property>
  <property name="spacing" >
  <number>6</number>
  </property>
  <item row="1" column="1" >
  <widget class="QSpinBox" name="spinBox" />
  </item>
  <item row="0" column="1" >
  <widget class="QLineEdit" name="lineEdit" />
  </item>
  <item row="3" column="0" >
  <widget class="QLabel" name="label_2_2_2" >
    <property name="text" >
    <string>Color Depth</string>
    </property>
  </widget>
  </item>
  <item row="1" column="0" >
  <widget class="QLabel" name="label_2" >
    <property name="text" >
    <string>Width</string>
    </property>
  </widget>
  </item>
  <item row="2" column="1" >
  <widget class="QSpinBox" name="spinBox_2" />
  </item>
  <item row="2" column="0" >
  <widget class="QLabel" name="label_2_2" >
    <property name="text" >
    <string>Height</string>
    </property>
  </widget>
  </item>
  <item row="3" column="1" >
  <widget class="QComboBox" name="comboBox" />
  </item>
  <item row="0" column="0" >
  <widget class="QLabel" name="label" >
    <property name="text" >
    <string>Name</string>
    </property>
  </widget>
  </item>
  </layout>
</widget>
<widget class="QWidget" name="" >
  <property name="geometry" >
  <rect>
  <x>70</x>
  <y>170</y>
  <width>297</width>
  <height>112</height>
  </rect>
  </property>
  <layout class="QGridLayout" >
  <property name="margin" >
  <number>0</number>
  </property>
  <property name="spacing" >
  <number>6</number>
  </property>
  <item row="1" column="0" >
  <layout class="QHBoxLayout" >
    <property name="margin" >
    <number>0</number>
    </property>
    <property name="spacing" >
    <number>6</number>
    </property>
    <item>
    <spacer>
    <property name="orientation" >
      <enum>Qt::Horizontal</enum>
    </property>
    <property name="sizeHint" >
      <size>
      <width>131</width>
      <height>31</height>
      </size>
    </property>
    </spacer>
    </item>
    <item>
    <widget class="QPushButton" name="okButton" >
    <property name="text" >
      <string>OK</string>
    </property>
    </widget>
    </item>
    <item>
    <widget class="QPushButton" name="cancelButton" >
    <property name="text" >
      <string>Cancel</string>
    </property>
    </widget>
    </item>
  </layout>
  </item>
  <item row="0" column="0" >
  <spacer>
    <property name="orientation" >
    <enum>Qt::Vertical</enum>
    </property>
    <property name="sizeHint" >
    <size>
    <width>20</width>
    <height>71</height>
    </size>
    </property>
  </spacer>
  </item>
  </layout>
</widget>
</widget>
<pixmapfunction></pixmapfunction>
<resources/>
<connections>
<connection>
  <sender>okButton</sender>
  <signal>clicked()</signal>
  <receiver>Dialog</receiver>
  <slot>accept()</slot>
  <hints>
  <hint type="sourcelabel" >
  <x>278</x>
  <y>253</y>
  </hint>
  <hint type="destinationlabel" >
  <x>96</x>
  <y>254</y>
  </hint>
  </hints>
</connection>
<connection>
  <sender>cancelButton</sender>
  <signal>clicked()</signal>
  <receiver>Dialog</receiver>
  <slot>reject()</slot>
  <hints>
  <hint type="sourcelabel" >
  <x>369</x>
  <y>253</y>
  </hint>
  <hint type="destinationlabel" >
  <x>179</x>
  <y>282</y>
  </hint>
  </hints>
</connection>
</connections>
</ui>
离线tomcruiz

只看该作者 10楼 发表于: 2005-09-22
文件名分别是ui_imagedialog.ui, ui_imagedialog.h, main.cpp.
离线XChinux

只看该作者 11楼 发表于: 2005-09-22
Ui::Dialog,应该是这个类,你怎么使用的是Ui::ImageDialog?
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线tomcruiz

只看该作者 12楼 发表于: 2005-09-22
Ui 不是一个名字空间吗?
离线XChinux

只看该作者 13楼 发表于: 2005-09-22
类名字叫Dialog,可是你在main.cpp文件中用的却是ImageDialog,那当然找不到了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线tomcruiz

只看该作者 14楼 发表于: 2005-09-22
真的哎,我改过来之后就编译成功了。
离线tomcruiz

只看该作者 15楼 发表于: 2005-09-22
也是阿,可是QT Assistant里面不知道为什么用的是Ui:: ImageDialog ui
快速回复
限100 字节
 
上一个 下一个