QT编程入门之QT designer

article/2025/10/21 14:37:38

1.qt 编程的工作流程简介 

         使用QT作为GUI开发工具的项目流程,可用下图表示:

 

      

                                                                                             QT项目开发流程

         开发流程的解析:假设用QDesigner设计了一个X.UI窗口,之后就需要使用uic来进行编译,生成对应的.h文件.另外一个自定义的类型ClsA使用了Q_Object宏,进而可以使用QT的信号、槽机制,或者不使用QTDesigner派生出新的QT UI类,全用编码实现。Desinger生成的ui类可能产生一些自定义的信号和槽,这些函数的实现通常是放在另外一个cpp文件中的,可以在另外的IDE或者文本编辑器中编辑。

      moc.exe和cl.exe由于是针对2个cpp进行编译,即2个编译单元的2次调用,因此为了更清楚的表达在上图中各出现了2次。

       这篇文章着眼于QT编程的一个入门级介绍,主要关注如何尽快创建一个基于qt的应用程序和界面开发。如果你想快速的了解qt,那么本篇文章适合你。它将引导你一步步创建一个基本的qt程序和界面,并运行。

       本文假设你使用的是Suse Linux 平台,并且假设你已经安装了qt.如果你想了解如何安装qt,请百度之。

2.创建用户使用界面GUI

      我们的目标是创建一个最简单的demo.当用户点击按钮时,界面退出。其创建步骤如下:

                                                          1.从Suse Linux界面找到qt designder

                                                                             2.打开linux 的QT designer

 

                                                                            3.开始我们的UI设计,创建一个form

                                                                     4.使用pushButton控件来作为我们的按钮

                                                                                              5.对button的UI属性作一些编辑

                                                                     6.对按钮的行为进行设置,添加一个信号和插槽

                                                                                        7.保存我们设计的UI到指定目录,并命名为form1.ui

            至此,UI方的基本设计完成。

 

 3.使用uic生成头文件

如下图所示:

生成的form1.h头文件如下所示:

/********************************************************************************
** Form generated from reading UI file 'form1.ui'
**
** Created
**      by: Qt User Interface Compiler version 4.6.3
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/#ifndef FORM1_H
#define FORM1_H#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QDialog>
#include <QtGui/QHeaderView>
#include <QtGui/QPushButton>QT_BEGIN_NAMESPACEclass Ui_Form
{
public:QPushButton *pushButton;void setupUi(QDialog *Form){if (Form->objectName().isEmpty())Form->setObjectName(QString::fromUtf8("Form"));Form->resize(400, 300);pushButton = new QPushButton(Form);pushButton->setObjectName(QString::fromUtf8("pushButton"));pushButton->setGeometry(QRect(140, 110, 86, 27));retranslateUi(Form);QObject::connect(pushButton, SIGNAL(clicked()), Form, SLOT(close()));QMetaObject::connectSlotsByName(Form);} // setupUivoid retranslateUi(QDialog *Form){Form->setWindowTitle(QApplication::translate("Form", "Dialog", 0, QApplication::UnicodeUTF8));pushButton->setText(QApplication::translate("Form", "Exit", 0, QApplication::UnicodeUTF8));} // retranslateUi};namespace Ui {class Form: public Ui_Form {};
} // namespace UiQT_END_NAMESPACE#endif // FORM1_H


 4.添加自定义代码

4.1 新建一个头文件MyDlg.h

       它包含自动生成的form1.h,然后声明一个自定义类,并添加一个私有成员对象Ui::Form ui;  这样就可以通过该对象控制界面上所有的部件了。代码如下所示:

#ifndef MYDLG_H
#define MYDLG_H#include <QDialog.h>
#include <Form1.h>class MyDlg: public QDialog
{Q_OBJECT
  public:MyDlg();private:Ui::Form ui;   
};#endif // MYDLG_H

4.2 新建一个C++文件MyDlg.cpp

    在类的构造函数里首先调用ui的setupUi方法,对界面上的ui进行初始化,然后将pushbutton的click信号与对话框的close信号关联起来。

代码如下:


#include <MyDlg.h>MyDlg:: MyDlg()
{ui.setupUi(this);Q_Object::connect(ui.pushButton, SIGNAL( clicked() ),this, SLOT( close() ));
};


 4.3 编写应用程序入口函数main.cpp

代码示例:

#include <QApplication>
#include <MyDlg.h>int main(int argc, char **argv)
{QApplication app(argc, argv);MyDlg *mydlg = new MyDlg;return mydlg->exec();
};

 

5. qt工程编译


5.1 使用qmake生成工程文件

生成Qt-PROJECT.pro 工程文件,该文件归类了程序中的所有文件。其内容如下:

######################################################################
# Automatically generated by qmake (2.01a) Wed Jul 17 19:40:01 2013
######################################################################

TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .

# Input
HEADERS += form1.h MyDlg.h
FORMS += form1.ui
SOURCES += Main.cpp MyDlg.cpp

 

 

5.2 生成makefile和可执行文件

在终端命令行上键入qmake 生成Makefile:

 

最后make,并生成可执行文件

点击exit键后,对话框消失!


http://chatgpt.dhexx.cn/article/oHWA6Tcm.shtml

相关文章

Qt入门学习——Qt Creator 中 ui 文件和 Qt 代码关系

通过《Qt Creator的使用》的学习&#xff0c;我们可以借助 Designer&#xff08;界面设计器&#xff09;快速设计界面。 此例子 ui 内容如下&#xff08;只是简单添加了一个按钮&#xff09;&#xff1a; 工程的代码目录结构如下&#xff1a; 最终在工程所在目录会生成一个 ui …

Qt 设计师 - Qt Designer 调整 控件 居中

目录 问题方案 问题 在上面这张图中&#xff0c;有三个垂直布局&#xff0c;但是垂直布局中上层的控件没办法拖到居中的位置。 方案 点击这个控件&#xff0c;右键 这里2是水平居中&#xff0c;下面的是垂直居中&#xff0c;操作三次&#xff0c;好了

使用Qt Designer和Qss设计Qt界面

开发界面其实一点都不比写后台逻辑简单&#xff0c;后台逻辑对需求方来说只有能用和不能用&#xff0c;但是界面没有一个确切的标准说好看还是不好看&#xff0c;所以设计出一个大家都说好的界面真的很难。 我们的业务是服务于内部用户的&#xff0c;其实大家对我们的评价就是…

Qt Designer和Qt Creator区别

不管是Qt新手还是开发过qt的群体来说&#xff0c;对Qt Designer、Qt Quick Designer、Qt Creator这几个应用程序肯定是熟悉的&#xff0c;但是你要是说具体的区别&#xff0c;干啥用的或者是它们实际上是单独的事物还是同一事物的名称&#xff0c;或者还是名称随时间变化了还是…

Qt Designer的简单使用

在前面两节的例子中&#xff0c;主界面窗口的尺寸和标签控件显示的矩形区域等&#xff0c;都是用 C 代码编写的。窗口和控件的尺寸都是预估的&#xff0c;控件如果多起来&#xff0c;那就不好估计每个控件合适的位置和大小了。 用 C 代码编写图形界面的问题就是不直观&#xf…

Qt Design Studio

1 介绍 1.1 概述 1.2 Qt Design Studio的详细特性 QtPhotoshop Bridge 在Photoshop中创建您的UI设计和UI组件&#xff0c;然后把它们导入到Qt Design Studio中。这包含一个先进的Photoshop插件&#xff0c;它能把您的设计翻译成QML语言&#xff0c;并导入到Qt Design Studio…

PyQt5利用Qt designer(QT设计师)使用tab widget和stacked widget实现多页面切换

PyQt5 Qt designer QT设计师 使用tab widget和stacked widget实现多页面切换 一、使用Qt designer(QT设计师)进行多页面切换ui设计二、实现tab widget多页面切换三、实现stacked widget多页面切换四、生成代码五、运行效果 一、使用Qt designer(QT设计师)进行多页面切换ui设计 …

Qt漂亮界面

Qt漂亮界面 功能规划&#xff1a;一、去掉菜单栏和工具栏二、顶部导航栏的设计appinit.h头文件appinit.cpp的文件使用方式&#xff1a; 三、阵列按钮的点击事件写法四、重写缩写界面、放大界面和关闭程序事件五、鼠标事件的处理Qt大量同类控件的操作正则表达式的设计Qt 手把手教…

PyQt5 Qt Designer 新手教程(一)—— 软件界面介绍

PyQt5 Qt Designer 新手教程&#xff08;一&#xff09;—— 软件界面介绍 教程博文 一、前言 终于学到了 PyQt5 Qt 设计师&#xff08;Qt Designer&#xff09;这个软件&#xff0c;博主感觉心情还是很激动的。因为&#xff0c;当初学 PyQt5 &#xff0c;想要设计一个窗体时…

qt界面设计

设计界面时大概可以分三步&#xff1a; 构造出需要的所有控件通过布局管理器确定控件位置通过样式表优化控件样式 1.布局管理器 1. QBoxLayoutQHBoxLayout 水平布局QVBoxLayout 垂直布局1&#xff09;setStretch 设置部件的拉伸系数2&#xff09;setSpacing 设置部…

QTDesigner简介

1、QTDesigner简介&#xff1a; 手写代码工作量大、代码结构容易搞得混乱。 设计工具&#xff1a;直观、高效&#xff0c;工作量小&#xff0c;方便调试。界面和逻辑分离后期好维护。 介绍&#xff1a;&#xff08;实现了视图和逻辑的分离&#xff0c;开发代码更容易分离&…

PyQt5:使用QT设计师设计界面

一. 界面设计 登录预览&#xff1a; 图1.1 设计界面 界面文件 可以在这里下载login.ui文件 资源文件 除了ui文件&#xff0c;有时候需要使用到资源&#xff1a; 图片资源 窗体图标(login.png): .qrc文件 可以在这里下载.qrc文件&#xff0c;文件内容如下&#xff1…

Python PyQt5 Qt Designer (Qt设计师)

PyQt5 Qt Designer (Qt设计师) 本文由 Luzhuo 编写,转发请保留该信息. 原文: https://blog.csdn.net/Rozol/article/details/87705426 PyQt5是对Qt所有类进行封装, Qt能开发的东西, PyQt都能开发. Qt是强大的GUI库之一, 用C开发, 并且跨平台. PyQt双许可证, 要么选择GPL(自由软…

Qt Designer简介

来源 http://www.python3.vip/tut/py/gui/qt_03/ 回顾 在前面的程序中&#xff0c;我们学习了怎么样用程序来把QT程序界面的 一个个窗口、控件创建出来 问题分析 QT程序界面的 一个个窗口、控件&#xff0c;就是像上面那样用相应的代码创建出来的。 但是&#xff0c;把你…

Unity资源打包(AssetBundle)

一、AssetBundle的定义和作用 定义&#xff1a; - 它是一个存在于硬盘上的文件。可以称之为压缩包。这个压缩包可以认为是一个文件夹&#xff0c;里面包含了多个文件。这些文件可以分为两类&#xff1a;serialized file 和 resource files。&#xff08;序列化文件和源文件&a…

游戏开发unity资源管理系列:unity不支持长路径;DirectoryNotFoundException: Could not find a part of the path ““

说明&#xff1a; 使用Addressables打包出现如下报错 DirectoryNotFoundException: Could not find a part of the path "" 打断点发现资源路径与目标路径字符串非空&#xff0c;但是仍然提示报错。Library\com.unity.addressables下ab资源打出&#xff0c;但是仍然报…

Unity资源包共享

unity最全材质球的资源包 unity家具包装设计资源包 unity游戏模型资源包 unity人物模型资源包 unity枪模型资源包 … … … 其中一部分 有需要的朋友下方评论留下邮箱号,我发给你们,文件太大无法上传

Unity资源替换工具,旧模型替换新模型,替换GUID,替换meta文件,文件丢失等问题

Unity资源替换工具,旧模型替换新模型,替换GUID,替换meta文件,文件丢失等问题 使用说明如何使用 使用说明 第一次写,不是很规范,好东西分享给大家,学点编辑器扩展好处多啊! 如何使用 这个小工具确实帮到我了,替我省了不少时间 直接上代码: using UnityEngine; using System.…

unity网络资源导入

1、找到需要导入的文件&#xff0c;这里导入fbx格式 2、打开unity界面&#xff0c;在Asset目录下创建文件夹FBX&#xff0c;将需要导入的fbx预制体或整个文件夹拖入创建的FBX文件夹下 3、选中需要的fbx预制体并拖至场景中 4、双击定位到当前物体 5、找到需要导入的贴图文件text…