斗破QT编程入门系列之二:GUI应用程序设计基础:UI文件(四星斗师)

斗破Qt目录:

斗破Qt编程入门系列之前言:认识Qt:Qt的获取与安装(四星斗师)
斗破QT编程入门系列之一:认识Qt:初步使用(四星斗师)
斗破QT编程入门系列之二:认识Qt:编写一个HelloWorld程序(四星斗师)
斗破QT编程入门系列之三:GUI应用程序设计基础:UI文件(四星斗师)

参考书籍

《Qt5.9 C++开发指南》

斗破观看顺序:

https://v.haohuitao.cc/yhplay/336-1-2.html
第一季☞第二季前2集☞特别篇1☞第二季3~12集☞特别篇2沙之澜歌☞第三季☞第四季☞三年之约☞缘起☞年番
斗气大陆等级:
斗气有十一个阶别,斗之气,斗者,斗师,大斗师,斗灵,斗王,斗皇,斗宗,斗尊,斗圣,斗帝。
斗气大陆上很久没有出现过斗帝了。

一、祛除毒素

萧炎为了唤醒药老,前往帝都米特尔拍卖场总部,寻找恢复灵魂力量的奇物,在萧炎发现拍卖场并无此物失望无比时,突然得知纳兰嫣然为了救爷爷,悬赏的宝物正是恢复灵魂力量的奇物,三年前的羞辱历历在目,而萧炎为了唤醒保护自己耗尽灵魂力量的老师,甘愿放下厌恶与仇恨,前往纳兰家。
由于拥有异火的炼药师并不多见,同时纳兰桀此时生命垂危,纳兰家便同意萧炎进行医治,经过萧炎的努力,纳兰桀恢复了意识,但是还需要萧炎7次的治疗才能完全恢复。
回到客栈的萧炎意外的发现,自己虽然吸收了洛毒,但是洛毒体内也包含着纳兰桀雄浑的斗气,这也算是因祸得福吧。

二、UI文件

我们先来看一个项目由哪些文件组成:
在这里插入图片描述

  • 项目组织文件untitle4.pro,存储项目设置的文件。
  • 主程序入口文件main.cpp,实现main()函数的程序文件。
  • 窗体界面文件mainwindow.ui,一个XML格式存储的窗体上的元件及其布局的文件。
  • mainwindow.h 是所设计的窗体类的头文件,mainwindow.cpp是mainwindow.h里定义类的实现文件。在C++里,任何窗体或界面组件都是用类封装的,一个类一般有一个头文件(.h文件)和一个源程序文件(.cpp文件)。

我们先来分析一下项目组织文件untitle4.pro

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \mainwindow.cppHEADERS += \mainwindow.hFORMS += \mainwindow.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

项目管理文件用于记录项目的一些设置,以及项目包含文件的组织管理。
“Qt += core gui”表示项目中加入core gui模块。core gui是Qt用于GUI设计的类库模块,如果创建的是控制台(Console)应用程序,就不需要添加core gui。
Qt类库以模块的形式组织各种功能的类,根据项目涉及的功能需求,在项目中添加适当的类库模块支持。例如,如果项目中使用到了设计数据库操作的类就需要用到sql模块,在pro文件中需要增加如下一行:

Qt += sql

这一句:
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets,这是个条件执行语句,表示当Qt主版本大于4时,才加入widgets模块。
后面的SOURCES、HEADERS、FORMS记录了项目中包含的源程序文件、头文件和窗体文件(.ui文件)的名称。这些文件列表是Qt Creator自动添加到项目管理文件里面的,用户不需要手动修改。当添加一个文件到项目,或从项目里删除一个文件,项目管理文件里的条目会自动修改。

最后,我们谈谈界面文件“.ui”,如mainwindow.ui。双击项目文件目录树中的mainwindow.ui,会打开一个集成在Qt Creator中的Qt Designer对窗体进行可视化设计,如下图
在这里插入图片描述
UI设计器有以下一些功能区域。

  • 组件面板。窗口左侧是界面设计组件面板,分为多个组,如Layouts、Buttons、Display Widgets等,界面设计的常见组件都可以在组件面板里找到。
  • 中间主要区域是待设计的窗体。如果要将某个组件放置到窗体上时,从组件面板上拖放一个组件到窗体上即可。例如,先放一个Label和一个Push Button到窗体上。
  • Signals和Slots编辑器与Action编辑器是位于待设计窗体下方的两个编辑器。Signals和Slots编辑器用于可视化地进行信号与槽的关联,Action编辑器用于可视化设计Action。
  • 布局和界面设计工具栏。窗口上方的一个工具栏,工具栏上的按钮主要实现布局和界面设计。
  • 对象浏览器(Object Inspector)。窗口右上方是Object Inspector,用树状视图显示窗体上各组件之间的布局包含关系,视图有两列,显示每个组件的对象名称(ObjectName)和类名称。
  • 属性编辑器(Property Editor)。窗口右下方是属性编辑器,是界面设计时最常用到的编辑器。属性编辑器显示某个选中的组件或窗体的各种属性及其取值,可以在属性编辑器里修改这些属性的值。如下图
    在这里插入图片描述

最上方显示的文字“label:QLabel”表示这个组件是一个QLabel类的组件,objectName是label。属性编辑器的内容分为两列,Property列是属性的名称,Value列是属性的值。属性又分为多个组,实际上表示了类的继承关系,如上图,可以看出QLabel的继承关系是QObject->QWidget->QFrame->QLabel。

objectName表示组件的对象名称,界面上的每个组件都需要一个唯一的对象名称,以便被引用。界面上的组件的命名应该遵循一定的法则,具体使用什么样的命名法则根据个人习惯而定,主要目的是便于区分和记忆,也要便于与普通变量相区分。设置其他属性的值只需要在属性编辑器里操作即可。

最后,我们简单讨论一下Qt的信号槽。使用Signals和Slots编辑器完成这个功能。我们在界面上添加一个QPushButton按钮。
在信号与槽编辑器的工具栏上单击“Add”按钮,在出现的条目中,Sender选择pushButton。Signal选择clicked(),Receiver选择窗体Mainwindow,Slot选择close()。这样设置表示当按钮pushbutton被单击时,就执行Mainwindow的close()函数,实现关闭窗口的功能。
在这里插入图片描述
OK,我们尝试编译,并点击pushbutton按钮进行尝试吧。看看是什么结果。

三、英语

先来看几个单词:

  • GUI 界面
  • push 按下
  • button 纽扣
  • pushbutton 按钮
  • core 核心

再来看几个句子:

  • And Xiao Yan(萧炎) was willing to(愿意) let go of(放走) his disgust(厌恶) and hatred(仇恨) in order to(为了) awaken the teacher who had exhausted(耗尽) his soul power to protect him.
  • 而萧炎为了唤醒保护自己耗尽灵魂力量的老师,甘愿放下厌恶与仇恨

be willing to sth 愿意做某事
in order to 为了…
“唤醒”是awaken

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/7306.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习4_支持向量机_核函数——MOOC

核函数的定义 引入了映射 后 最小化: 或 限制条件: (1) (2) 具体研究 引入 核函数(Kernel Function) Vladimir Naumovich Vapnik 指出,可以不用知道 的具体…

论文《基于卷积神经网络的手术机器人控制系统设计》文献阅读分析报告

论文报告:基于卷积神经网络的手术机器人控制系统设计 摘要 本研究针对传统手术机器人控制系统精准度不足的问题,提出了一种基于卷积神经网络的手术机器人控制系统设计。研究设计了控制系统的总体结构,并选用PCI插槽上直接内插CAN适配卡作为上…

房地产行业知识库管理系统的应用与未来展望

在日新月异的房地房地产行业知识库管理系统的应用与未来展望产房地产行业知识库管理系统的应用与未来展望市场中,企业正面临着前所未有的竞争压力,而客户需求的变化更是日新月异。为了在这场激烈的竞争中脱颖而出,房地产企业必须高效地管理、…

MySQL核心业务大表归档过程

记录一下2年前的MySQL大表的归档,当时刚到公司,发现MySQL的业务核心库,超过亿条的有7张表,最大的表有9亿多条,有37张表超过5百万条,部分表行数如下: 在测试的MySQL环境 : pt-archiv…

每日OJ题_牛客_春游_贪心+数学_C++_Java

目录 牛客_春游_贪心数学 题目解析 C代码 Java代码 牛客_春游_贪心数学 春游 描述: 盼望着,盼望着,东风来了,春天脚步近了。 值此大好春光,老师组织了同学们出去划船,划船项目收费如下:…

黔院长:传承中医智慧,开启慢病快调新时代

在当今社会,慢性病如影随形地困扰着许多人,成为影响人们生活质量的重要因素。然而,有着悠久历史传承的黔院长,作为中医世家,源于 1760 年,正以其独特的魅力和非遗项目,为慢病快调带来新的希望。…

Redux的简介及其在React中的应用

Redux Redux 是React最常用的集中状态管理工具,类似于Vue中的Pinia(Vuex),可以独立于框架运行。 作用:通过集中管理的方式管理应用的状态。 使用步骤: 定义一个 reducer 函数 (根据当前想要做…

Maven的安装配置

文章目录 一、MVN 的下载二、配置maven2.1、更改maven/conf/settings.xml配置2.2、配置环境变量一、MVN 的下载 还是那句话,要去就去官网或者github,别的地方不要去下载。我们下载binaries/ 目录下的 cd /opt/server wget https://downloads.apache.org/maven/maven-3/3.9.6/…

如何找到捏蛋糕和修牛蹄类型的解压视频素材?

今天,我们来聊一个让人放松的话题——如何找到捏蛋糕和修牛蹄类型的解压视频素材。你是否也曾在抖音、快手上被这些视频吸引?它们确实让人倍感舒适。如果你也想制作这种类型的解压视频,下面我将推荐几个优秀的网站,帮助你快速找到…

锂电池储能电站火灾危险及对策分析

引言 随着风能和太阳能等可再生能源在能源结构中所占比例的持续增长,以及对间歇性和波动性能源接入需求的增加,加之锂电池成本的降低,锂电池储能电站正在新能源并网和电力系统辅助服务等多个领域得到广泛应用。然而,随着锂电池储…

【ddnsgo+ipv6】

ddnsgoipv6 DNS解析添加记录ddnsgo配置 DNS解析添加记录 ddnsgo配置

Go的环境搭建以及GoLand安装教程

目录 一、开发环境Golang安装 二、配置环境变量 三、GoLand安装 四、Go 语言的 Hello World 一、开发环境Golang安装 官方网址: The Go Programming Language 1. 首先进入官网,点击Download,选择版本并进行下载: ​ ​ 2. …

论文概览 |《IJGIS》2024.09 Vol.38 issue9

本次给大家整理的是《International Journal of Geographical Information Science》杂志2024年第38卷第9期的论文的题目和摘要,一共包括9篇SCI论文! 论文1 A movement-aware measure for trajectory similarity and its application for ride-sharing …

伦敦金行情分析及策略:突破交易及其止损

突破一直是伦敦金市场中重要的策略,但由于智能交易越来越成为很多主流机构所使用的交易工具,参与突破交易的朋友经常成为输家,因为他们的行动被捕捉到了。那这个突破的伦敦金行情分析及策略是不是不能用呢?也不是,下面…

MFC中Excel的导入以及使用步骤

参考地址 在需要对EXCEL表进行操作的类中添加以下头文件:若出现大量错误将其放入stdafx.h中 #include "resource.h" // 主符号 #include "CWorkbook.h" //单个工作簿 #include "CRange.h" //区域类,对Excel大…

实验(未完成)

一、拓扑图 二、需求及分析 1、需求 按照图示的VLAN及IP地址需求,完成相关配置。 要求SW1为VLAN 2/3的主根及主网关,SW2为VLAN 20/30的主根及主网关。 SW1和SW2互为备份。 可以使用super vlan。 上层通过静态路由协议完成数据通信过程。 AR1为企…

导航栏及下拉菜单的实现

这次作业我们将来实现下图&#xff1a; 主要有导航栏及下拉菜单组成 编写代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>* {margin: 0;padding: 0;/* border: 1px solid red; */}.menu…

Vue2 doc、excel、pdf、ppt、txt、图片以及视频等在线预览

Vue2 doc、excel、pdf、ppt、txt、图片等在线预览 安装使用目录结构直接上代码src\components\FileView\doc\index.vuesrc\components\FileView\excel\index.vuesrc\components\FileView\img\index.vuesrc\components\FileView\pdf\index.vuesrc\components\FileView\ppt\index…

js,ts控制流程

摘要&#xff1a; 在 JavaScript 和 TypeScript 中&#xff0c;控制流程是指程序执行的顺序和条件判断。以下是一些常见的控制流程结构&#xff0c;包括条件语句、循环语句和函数调用等。 1. 条件语句&#xff1a; if 语句 let condition true;if (condition) {console.log(C…

如何利用谷歌浏览器提升上网体验

在当今数字化时代&#xff0c;拥有一款高效、便捷且个性化的浏览器对于提升上网体验至关重要。谷歌浏览器作为全球最受欢迎的浏览器之一&#xff0c;凭借其强大的功能和简洁的界面设计&#xff0c;赢得了广大用户的青睐。本文将为您介绍三个实用技巧&#xff0c;帮助您更好地利…