QT制作一个简单登录界面

1、编程思路

• 手动创建 Qt 工程; ​ • 创建一个 Dialog 的界面类; ​ • 使用 Qt Designer 添加控件和布局; ​ • 关联信号的槽。

2、手动创建工程

新建文件夹Designer ,在文件夹下创建文件Designer.pro 和main.cpp

打开Qt Creator,将Designer.pro 文件拖动到Qt Creator 中,再选择构建套件点击configure project。

会看到一个完全的空工程,复制工程管理(五)中的Qt 项目管理文件示例代码到Designer.pro 文件中并保存。保存之后,就会看到在左边的工程目录就会出现SOURCES 目录,以及main.cpp。

实现main.cpp代码

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    return a.exec();
}

编译通过,并在我们前面创建的Designer 目录的同级目录还会生成app_bin 目录、build目录、以及build-Designer-xxx-Debug,app_bin 就是存放编译的可执行文件的目录,当然也可以按照自己需求修改pro 文件。

接下来,向工程中添加一个对话框。鼠标右击目录树中任意一个文件,选择弹出菜单栏中的Add New,接着选择Qt,Qt设计师界面类,点击Choose。接着选择Dialog,添加Dialog对话框,会在工程下创建 dialog.h dialog.cpp 和 dialog.ui 等三个文件。Qt Creator会在pro文件中自动添加上面的三个文件。

再次修改main.cpp如下:

#include "dialog.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Dialog w;
    w.resize(800, 480);
    w.show();

    return a.exec();
}

编译程序,程序启动就会显示创建的空白对话框。

3、简单UI布局

点击ui文件,使用集成在Qt Creator中的Qt Designer中打开ui文件,从控件窗口中拖动QLabel,QLineEdit,QPushButton添加到主窗口。

选中控件的同时,对象窗口也会被选中,属性窗口切换到该控件的属性,比如点击一个QLabel,修改控件属性 ObjectName 为 label_title; 修改Font属性 字号20,加粗; 修改text属性 登录对话框; 修改alignment属性 垂直水平都居中。

编译程序,看到的效果就是我们主窗口中的效果。但当对窗口进行缩放的时候,就会发现问题——控件并不随窗体的改变而改变。因此需要对控件、窗口进行布局。

4、添加资源文件

首先点击QtCreator菜单栏文件,新建文件或项目,会弹出如下对话框:

选择Qt以及Qt资源文件,并给资源文件命名。工程目录结构会创建一个新目录Resources,目录下有我们的img.qrc,这在工程管理文件pro文件由写明 RESOURCES += img.qrc ,创建资源文件时,由QtCreator自动完成。 实际上工程所在目录下也会多出一个img.qrc文件。

鼠标右键点击工程目录结构下的img.qrc,会弹出一个菜单,菜单上有添加现有文件的选项,点击,弹出文件对话框,选择我们要添加的资源文件,确认即可。ima.qrc下面就会多出我们添加的资源文件,点击资源文件,左边便会预览资源文件。在我们UI中使用我们添加的资源文件:

5、信号与槽使用

本例程在这里简单进行信号与槽的连接,实现点击取消的时候,关闭登录对话框,更多关于信号和槽的介绍,在后面的课程会讲解。

选中取消按钮,并拖动到dialog窗口,这时会弹出一个对话框,供我们选择要关联的信号和槽。 选中PushButton的clicked()信号和Dialog的reject()槽函数,点击OK进行关联。

该操作的含义是,当点击 取消 这个按钮时,会产生一个clicked()的信号,经过的绑定之后, Dialog的reject()槽函数会来响应这个信号,reject()会关闭当前的对话框。编译运行,点击 取消按钮 便会对话框就会被关闭。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 21:40:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 21:40:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 21:40:01       58 阅读
  4. Python语言-面向对象

    2024-07-15 21:40:01       69 阅读

热门阅读

  1. Linux-线程同步(条件变量、POSIX信号量)

    2024-07-15 21:40:01       22 阅读
  2. HarmonyOS赋能套件参考地址

    2024-07-15 21:40:01       17 阅读
  3. C++ 入门第12:模板(Template)

    2024-07-15 21:40:01       23 阅读
  4. 渗透环境安装篇之安装XSS漏洞靶场xss-labs

    2024-07-15 21:40:01       18 阅读
  5. Codeforces Round 957 (Div. 3)

    2024-07-15 21:40:01       22 阅读
  6. Qt中QTimer类使用简介

    2024-07-15 21:40:01       18 阅读