Qt学习——创建helloworld项目

创建helloworld项目

  • 步骤
    • 新建项目。点击文件->新建文件或项目,选择项目->Applocation->Qt Widgets Applocation,点击choose到下一步。
    • 输入项目名称以及路径。需要注意的是路径必须是全英文路径且不能含有空格,否则后面编译会出错,错误是Cannot find file。单击下一步。
    • 选择构建套件。构建套件包含Qt类,编译器,调试器等,选择默认的即可。
    • 类名和基类信息。这里会创建一个自定义类,并且自定义类需要选择一个基类,基类选择QDialog,这个类是一个对话框界面。
    • 最后一步是项目管理部分,选择版本控制系统等。
    • 上述步骤将helloworld项目创建好,此时运行(ctrl+r)将会出现一个空白窗口界面。Qt学习——创建helloworld项目_第1张图片
      Qt学习——创建helloworld项目_第2张图片
    • 在对话框中添加hello world字符串。点击Froms文件夹下的helloworld.ui文件,这个文件是程序的ui界面,修改该ui文件可以修改程序界面。在左侧的控件栏中将Label控件拖至对话框界面中,并双击它修改内容。
      Qt学习——创建helloworld项目_第3张图片
      Qt学习——创建helloworld项目_第4张图片
    • 保存修改,运行项目,可以在对话框中看到有hello world字符串。

代码分析

根据上面的步骤,可以创建一个对话框窗口并显示hello world字符串。只需要修改.ui文件就能够作出相应的改变,这是由于.ui文件可以构建一个头文件,该头文件在项目文件目录中debugrelease文件夹下

		/********************************************************************************
		** Form generated from reading UI file 'helloworld.ui'
		**
		** Created by: Qt User Interface Compiler version 5.11.2
		**
		** WARNING! All changes made in this file will be lost when recompiling UI file!
		********************************************************************************/
		
		#ifndef UI_HELLOWORLD_H
		#define UI_HELLOWORLD_H
		
		#include 
		#include 
		#include 
		#include 
		
		QT_BEGIN_NAMESPACE
		
		///Ui_HelloWorld负责设置窗口
		class Ui_HelloWorld
		{
		public:
		    QLabel *label;
		
		    void setupUi(QDialog *HelloWorld)
		    {
		        if (HelloWorld->objectName().isEmpty())
		            HelloWorld->setObjectName(QStringLiteral("HelloWorld"));
		        HelloWorld->resize(400, 300);
		        label = new QLabel(HelloWorld);///label需要一个父类窗口
		        ///下面两行设置label的属性
		        label->setObjectName(QStringLiteral("label"));
		        label->setGeometry(QRect(90, 50, 59, 16));
		        ///retranslateUi设置字符串编码格式
		        retranslateUi(HelloWorld);
		
		        QMetaObject::connectSlotsByName(HelloWorld);
		    } // setupUi
		
		    void retranslateUi(QDialog *HelloWorld)
		    {
		        HelloWorld->setWindowTitle(QApplication::translate("HelloWorld", "HelloWorld", nullptr));
		        label->setText(QApplication::translate("HelloWorld", "helloworld", nullptr));
		    } // retranslateUi
		
		};
		
		namespace Ui {
		    class HelloWorld: public Ui_HelloWorld {};
		} // namespace Ui
		
		QT_END_NAMESPACE
		
		#endif // UI_HELLOWORLD_H

整个项目下的代码文件和下面代码效果是一样的

#include 
#include 
#include 

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

上面的ui_helloworld.h中定义的Ui::helloworld类负责设置界面布局和控件属性,helloworld.h下的helloworld类负责show页面,这样做的好处是我们只需要使用.ui文件的可视化就能够设置界面布局以及控件的属性,不需要自己手动写代码实现。

你可能感兴趣的:(Qt学习)