我对Qt完全不熟悉,但我设法让一些简单的窗口和框架工作。我在64位Kubuntu系统上运行Eclipse。在Eclipse中编辑我的代码后,我从命令行运行qmake和make。
昨天我尝试了Qt Designer,这对我来说很好,相比之下,eclipse中的小部件和按钮“硬编码”。 但是,我不会切换到QT Creator,因为我已经习惯了Eclipse。
我的目标是在Qt Designer中创建GUI并使用Eclipse中生成的代码。
运行qmake -project,qmake和make为我的Mainwindow生成一个包含类代码的头文件。
但是当我尝试在Eclipse代码中包含这个头文件时,因为g ++找不到头文件(似乎还没有创建头文件),因此停止并显示错误。
我不得不承认,我仍然对Qt构建过程感到困惑。 那么,我怎样才能通过Qt Designer设计我的GUI并仍然使用Eclipse作为我的编码IDE?
问候, lugge
编辑: 我的Eclipse项目是一个“空Makefile项目”。据我所知,这意味着我必须处理整个构建过程。 Eclipse不会为我做任何事情。
我没有尝试从Eclipse运行“make”,因为Makefile必须由qmake生成。因此,在Eclipse中编写并保存我的代码后,我从命令行运行qmake和make。
Qmake感觉到有.ui文件,并为此类生成头文件。 问题是,如果我尝试在Eclipse中包含此标头,则无法编译我的源代码文件。
对我来说,似乎当“make”用我的源代码文件调用g ++时,尚未创建GUI的标题。
那我为什么要这样做呢? 好吧,我不想沉迷于像Qt Creator这样的IDE或其他东西。因为这意味着,尝试编译我的项目的everony需要元信息,例如配置文件或特定IDE的项目特定设置。
在我的C项目中,我使用手写的Makefile,所以你只需要安装GCC(你通常有)并输入“make”。
我正试图通过Qt项目尽可能接近这一点。
答案 0 :(得分:1)
你需要4件事:
=> about.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>About</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>A Propos</string>
</property>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>
关于窗口(about.cpp)=&gt;
#include "about.h"
#include "ui_about.h"
About::About(QWidget *parent) : QDialog(parent), ui(new Ui::About)
{
ui->setupUi(this);
}
About::~About()
{
delete ui;
}
(about.h)=&gt;
#ifndef ABOUT_H
#define ABOUT_H
#include <QDialog>
namespace Ui {
class About;
}
class About : public QDialog
{
Q_OBJECT
public:
explicit About(QWidget *parent = 0);
~About();
private:
Ui::About *ui;
};
#endif // ABOUT_H
在.pro文件中
SOURCES += about.cpp
HEADERS += about.h
FORMS += about.ui