如何创建一个qt项目

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 如何创建一个qt项目,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

创建项目

1.出现一个 projectname.pro文件

在projectname.pro中写入一句

greaterThan(QT_MAJOR_VERSION,4):QT=widgets

 代表qt版本>4 需要添加widgets

2.添加main.cpp文件

#include<QApplication>
#include<QDialog>
#include<Qlabel.h>

int main(int argc,char* argv[])
{
    QApplication a(argc,argv);
    QDialog w;
    QLabel label(&w);
    label.setText("hello world");
    w.show();
    return a.exec();
}

效果:

如何创建一个qt项目

首先想到窗口太小

修改程序

#include<QApplication>
#include<QDialog>
#include<Qlabel.h>

int main(int argc,char* argv[])
{
    QApplication a(argc,argv);
    QDialog w;
    w.resize(400,300);
    QLabel label(&w);
    label.move(120,120);
    label.setText("hello world");
    w.show();
    return a.exec();
}

如何创建一个qt项目

但是由于工程严密性以及iu重新规划

3.添加hellodialog文件

如何创建一个qt项目

 出现一个

如何创建一个qt项目

 但是我们需要一个是一个头文件

HelloDialog,h(构建生成 ctrl+shit+b)

/********************************************************************************
** Form generated from reading UI file 'hellodialog.ui'
**
** Created by: Qt User Interface Compiler version 5.6.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/

#ifndef UI_HELLODIALOG_H
#define UI_HELLODIALOG_H

#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>

QT_BEGIN_NAMESPACE

class Ui_HelloDialog
{
public:
    QLabel *label;

    void setupUi(QDialog *HelloDialog)
    {
        if (HelloDialog->objectName().isEmpty())
            HelloDialog->setObjectName(QStringLiteral("HelloDialog"));
        HelloDialog->resize(400, 300);
        label = new QLabel(HelloDialog);
        label->setObjectName(QStringLiteral("label"));
        label->setGeometry(QRect(120, 120, 66, 12));

        retranslateUi(HelloDialog);

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

    void retranslateUi(QDialog *HelloDialog)
    {
        HelloDialog->setWindowTitle(QApplication::translate("HelloDialog", "Dialog", 0));
        label->setText(QApplication::translate("HelloDialog", "hello world", 0));
    } // retranslateUi

};

namespace Ui {
    class HelloDialog: public Ui_HelloDialog {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_HELLODIALOG_H

 添加hellodialog.hpp

#ifndef HELLODIALOG_H
#define HELLODIALOG_H

#include<qdialog.h>
namespace  Ui {
class HelloDialog;

}
class HelloDialog:public QDialog
{
    Q_OBJECT
public:
   explicit HelloDialog(QWidget* parent=0);
   ~HelloDialog();
private:
    Ui::HelloDialog* ui;

};

#endif // HELLODIALOG_H

 第1、2和22行是预处理指令,避免该头文件多重包含。第6~8行定义了命名空间Ui,并在其中前置声明了HelloDialog类,这个类就是在ui_hellodialog. h文件中看到的那个类。因为它与新定义的类同名,所以使用了Ui命名空间。而前置声明是为了加快编译速度,也可以避免在一个头文件中随意包含其他头文件而产生错误。因为这里只使用了该类对象的指针,如第 19行定义了该类对象的指针,这并不需要该类的完整定义,所以可以使用前置声明。这样就不用在这里添加ui_hellodialog.h的头文件包含,而可以将其放到hellodialog. cpp 文件中进行。第10行是新定义的 HelloDialog类,继承自QDialog类。第12行定义了Q_OBJECT宏,扩展了普通C++类的功能,比如下一章要讲的信号和槽功能,必须在类定义的最开始处定义这个宏。第15行是显式构造函数,参数是用来指定父窗口的,默认是没有父窗口。第16行是析构函数。

编辑hellodialog.cpp

#include "hellodialog.h"
#include"ui_hellodialog.h"

HelloDialog::HelloDialog(QWidget* parent):QDialog(parent)
{
  ui=new Ui::HelloDialog;
  ui->setupUi(this);//创建界面;
}
HelloDialog::~HelloDialog()
{
    delete ui;
}

main函数:

#include<QApplication>
#include"hellodialog.h"
int main(int argc,char* argv[])
{
    QApplication a(argc,argv);
    HelloDialog w;

    w.show();
    return a.exec();
}

整体结构图:

如何创建一个qt项目

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/129664.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!