在安装好qt之后,我们去创建一个简单的qt项目,步骤如下
1.点击文件->新建文件或项目,或者点击 +New
2.选择应用程序Application ->选择桌面应用程序Qt Widgets Application ->Choose.3.编辑项目名称.往后跳不做改动
4.在这里自定义类名,在下面有3个基类,主窗口类QMainWindow,部件基类QWidget,对话框类QDialog.构建一个基础的项目,我们选择对话框类QDialog.我们勾选Generate form选项就会创建一个ui界面文件,这个看自己的需要,一般桌面开发都需要勾选.我们继续往后操作.
5.我们只需要勾选编译组件 MinGW 32即可,其他的编译组件不需要.最后在界面中显示我们将创建的所有文件 .cpp .h .ui .pro. 其中.pro文件就是我们的工程文件,下次从文件点击该文件时就能打开这个项目.
下面是一些基础代码以及实现登录简单界面的部分代码.
1.头文件:
这里我印象最深的是UI::LoginDialog *ui. LoginDialog其实就是我们自己定义的限定在命名空间UI内的类,这个类继承自qt内部对话框类QDialog.这是我基础不过关了(啊啊啊~基础不牢,地动山摇).
#ifndef LOGINDIALOG_H
#define LOGINDIALOG_H
#include <QDialog>
//namespace使用的是命名空间,在C++基础最开始的时候有讲过
QT_BEGIN_NAMESPACE
namespace Ui { class LoginDialog; }//LoginDialog是 Ui_LoginDialog子类,用于描述登录窗口界面信息,自动生成的
QT_END_NAMESPACE
//这个LoginDialog类是自己定义的类,与上面UI命名空间内的不是同一个类,自己定义的类一定不要和qt内部的类相似!!!
class LoginDialog : public QDialog
{
//声明私有的宏,表示当前的类支持信号与槽的机制.继承自QObject的类才支持信号与槽机制.用于不同对象之间的通信
Q_OBJECT
public:
LoginDialog(QWidget *parent = nullptr);
~LoginDialog();
private slots://私有的槽方法
void on_loginButton_clicked();
private:
Ui::LoginDialog *ui;//命名空间里面的类对象指针...UI::表示限定命名空间内. ui是类对象LoginDialog的指针.
};
#endif // LOGINDIALOG_H
2.源文件:
#include "logindialog.h"
#include "ui_logindialog.h"
#include<QMessageBox>
#include<QString>
#include<QFile>
#include<QTextStream>//文本操作文件流
LoginDialog::LoginDialog(QWidget *parent)
: QDialog(parent)
//在构造函数里进行了初始化ui对象...登录界面信息类LoginDialog的对象
//ui是登录界面窗口类对象.登录界面的所有控件,信息都可以通过ui指针进行访问
, ui(new Ui::LoginDialog)
{
//初始化界面
ui->setupUi(this);
//把图片像素缩放充分的填充到imgLabel标签
ui->imgLabel->setScaledContents(true);
this->resize(ui->imgLabel->width(),ui->imgLabel->height());//重新定义窗口大小宽和高.可以省略 this->
//固定登录窗口大小
this->setFixedSize(width(),height());//使用width(),height()返回它本身的宽和高
this->setWindowTitle("驾校科目一考试登录");//重新设置窗口标题
this->setWindowFlags(Qt::Dialog|Qt::WindowCloseButtonHint);//设置窗口风格,简单对话框风格|关闭窗口风格
}
LoginDialog::~LoginDialog()
{
delete ui;
}
3.主函数文件mian
#include "logindialog.h"
#include <QApplication>
int main(int argc, char *argv[])
{
//a是应用程序类对象,a是程序运行时候的对象...不需要输入参数
QApplication a(argc, argv);
//w是登录窗口类对象,自定义类LoginDialog继承自对话框类QDialog.
LoginDialog w;
//把窗口显示出来,可视化
w.show();
//使对象进行消息事件循环
return a.exec();
}
在这里说一下,如果大家是刚接触到qt,对这里面的很多类,函数,接口不熟悉,可以多多的参考官方文档,但是小伙伴们会说官方文档都是英文啊.我一看英文就犯困.没关系!我们可以使用有道词典翻译,其实文档看的多了,你就会慢慢的觉得它们都很亲切,很多的单词在计算机领域都是固定使用的,并不会有太多的解释.还有一点就是,虽然qt给我们提供了很多的接口,函数高度封装了,但是很多底层的东西,我们能了解还是要多了解一下才行,很多底层原理不知道,那都是虚的. 记得,多多看帮助文档!!!