mfc程序转化为qt_小峰的QT学习笔记

985270bc648501eb0a9fa7c58d5d983d.png

我的专业是输电线路,上个学期,我们开了一门架空线路设计基础的课,当时有一个大作业是计算线路的比载,临界档距,弧垂最低点和安装曲线。恰逢一门结课考试结束,大作业ddl快到,我和另外两个同专业的室友除了有课得出门,其他时间全部在寝室里熬这个大作业。熬了三天之后终于在ddl之前交上大作业。

因此,当时就萌生了一个想法,这么多复杂的重复计算,如果能用程序来解决,岂不是省心又省事。

fd7148383ba6be02696bb8511a7c0a1d.png
当时的朋友圈(里面的计算的数据还是错的)

于是,这个寒假开始,我便开始准备着这件事,利用大二的时候学过的c++知识(当时学的不深,过了一年没怎么用还忘了很多),用c语言编了一个win32控制台程序,通过输入天气情况数据和导线参数,按下回车之后立马将所有需要的数据算出来。

47019824bbfd0b11a5f84e4ae48f3a1c.png
当这个计算代码能运行起来的时候真的高兴的不要不要的

但是,只有这样一个后台程序怎么能给别人使用呢。最起码也需要有一个界面显示的样子,于是凭借着大二遗留着没忘记的c++知识,我想到用MFC来完成界面的设计。MFC虽然功能很齐全,使用的方法也算操作简便,但是当我进编程界面的时候,很多编码看不懂,瞬间有了一种劝退的感觉,这个头文件里的内容看不懂,那个原文件里的内容也不是很通俗易懂。

后来,刷了几天b站和知乎,我发现了QT这个软件。看了传智播客的几个入门视频,不由的被QT强大的插件库,简洁的ui设计还有优雅的代码行吸引。(对新手来说真的挺容易入门的)

照着视频完整做了一个翻金币小游戏的例子,掌握了一些基本的用法,但是当自己开始做自己的软件时,还是遇到了好多问题,于是想静下心来,好好的学习一下QT这个软件,买了一本参考书《QT5.9C++开发指南》,为了让自己更好的学习这本书的内容,在知乎上面更新自己的每次学习笔记。

——————————————————————————————————————

简要介绍一下QT,QT是一个非常优秀的跨平台应用开发软件。它有许多程序开发类库,可以通过调用各种类库来搭建GUI界面,就想搭乐高积木一样,这点便是我觉得他很有趣的地方。QT支持C++来进行应用开发,因此需要有一定的C++基础,因为之前学的快忘了,边学习QT的过程中还在学习C++,(这里强推清华大学C++基础课程 基础篇和进阶篇,在b站上可以搜到)。QT有商业版和社区版,商业版不用多说,就是要收费的版本,一般大家用的都是社区版,社区版的功能对于平时开发已经足够了。使用QT的过程中强烈推荐搭配着下载时自带的Assistant用,它是一本记录QT函数功能的手册(是英语的,不过没有什么难得句式,遇到看不懂的英语用有道翻译就可以了)

我下的是QT5.9MinGW 32-bit版本,听传智播客的老师说,这个版本出错少(- -其实我不是很懂他说的意思,看他是用这个的,便也下了这个)。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MS SQL的存储过程

-- -- Author: -- Create date: 2016-07-01 -- Description: 注册信息 -- ALTER PROCEDURE [dbo].[sp_MebUser_Register]( UserType INT, MobileNumber VARCHAR(11), MobileCode VARCHAR(50), LoginPwd VARCHAR(50), PayPwd VARCHAR(50), PlateNumber VARCHAR(20), UserTr…

mysql 中 all any some 用法

-- 建表语句 CREATE TABLE score(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20),SUBJECT VARCHAR(20),score INT);-- 添加数据 INSERT INTO score VALUES (NULL,张三,语文,81), (NULL,张三,数学,75), (NULL,李四,语文,76), (NULL,李四,数学,90), (NULL,王五,语文,81), (…

REST framework 用户认证源码

REST 用户认证源码 在Django中,从URL调度器中过来的HTTPRequest会传递给disatch(),使用REST后也一样 # REST的dispatch def dispatch(self, request, *args, **kwargs):""".dispatch() is pretty much the same as Djangos regular dispatch,but w…

scrapyd部署_如何通过 Scrapyd + ScrapydWeb 简单高效地部署和监控分布式爬虫项目

来自 Scrapy 官方账号的推荐需求分析初级用户:只有一台开发主机能够通过 Scrapyd-client 打包和部署 Scrapy 爬虫项目,以及通过 Scrapyd JSON API 来控制爬虫,感觉 命令行操作太麻烦 ,希望能够通过浏览器直接部署和运行项目专业用…

最长上升子序列 (LIS算法(nlong(n)))

设 A[t]表示序列中的第t个数&#xff0c;F[t]表示从1到t这一段中以t结尾的最长上升子序列的长度&#xff0c;初始时设F [t] 0(t 1, 2, ..., len(A))。则有动态规划方程&#xff1a;F[t] max{1, F[j] 1} (j 1, 2, ..., t - 1, 且A[j] < A[t])。 现在&#xff0c;我们仔细…

牛顿插值--python实现

from tabulate import tabulate import sympy""" 牛顿插值法 """class NewtonInterpolation:def __init__(self, x: list, y: list):self.Xi = xself

css摇曳的_HTML5+CSS3实现树被风吹动摇晃

1新建html文档。2书写hmtl代码。3书写css代码。.trunk, .trunk div { background: #136086; width: 100px; height: 10px; position: absolute; left: 50%; top: 70%; margin-left: -10px; -webkit-animation-name: rot; animation-name: rot; -webkit-animation-duration: 2.0…

素数路(prime)

素数路(prime) 题目描述 已知一个四位的素数&#xff0c;要求每次修改其中的一位&#xff0c;并且要保证修改的结果还是一个素数&#xff0c;还不能出现前导零。你要找到一个修改数最少的方案&#xff0c;得到我们所需要的素数。 例如把1033变到8179&#xff0c;这里是一个最短…

python多线程单核_002_Python多线程相当于单核多线程的论证

很多人都说python多线程是假的多线程!下面进行论证解释:一、我们先明确一个概念&#xff0c;全局解释器锁(GIL)Python代码的执行由Python虚拟机(解释器)来控制。Python在设计之初就考虑要在主循环中&#xff0c;同时只有一个线程在执行&#xff0c;就像单CPU的系统中运行多个进…

detail:JSON parse error - Expecting value: line 1 column 1 (char 0)

detail":"JSON parse error - Expecting value: line 1 column 1 (char 0) 在调用接口时返回400错误&#xff0c;详情是 {detail":"JSON parse error - Expecting value: line 1 column 1 (char 0)"}原因是传送数据的格式有问题&#xff0c;不要使用…

【IDEA 2016】intellij idea tomcat jsp 热部署

刚开始用IDEA&#xff0c;落伍的我&#xff0c;只是觉得IDEA好看。可以换界面。想法如此的low。 真是不太会用啊&#xff0c;弄好了tomcat。程序启动竟然改动一下就要重启&#xff0c;JSP页面也一样。 IDEA可以配置热部署&#xff0c;打开tomcat配置页面&#xff0c;将红框处&a…

C# where用法解析

where 子句用于指定类型约束&#xff0c;这些约束可以作为泛型声明中定义的类型参数的变量。1.接口约束。例如&#xff0c;可以声明一个泛型类 MyGenericClass&#xff0c;这样&#xff0c;类型参数 T 就可以实现 IComparable<T> 接口&#xff1a;public class MyGeneric…

ubuntu进入桌面自动启动脚本_在 Ubuntu 下开机自启动自己的 QT 程序而不启动 Ubuntu 的桌面...

1. /etc/profile 方式实现这个功能&#xff0c;要完成两步&#xff1a;1、系统设置-> 用户账户-> 点击我的账户-> 点击右上角的解锁-> 打开自动登录-> 点击右上角的锁定-> 退出系统设置2、在 /etc/profile 文件的开头添加执行 qt 程序的命令。如&#xff1a;…

Java obj与JSON互转(jackson)

JSON 解析 常见的json解析器&#xff1a; jsonlibGson(谷歌)fastjson(阿里)jackson(Spring内置) jackson 依赖jar包 jackson-annotations/jackson-core/jackson-databind/ 官网下载地址 1. Java对象转JSON 1.1 核心对象 ObjectMapper 1.2常用转换方法 writeValue(参…

如何制作一个简单的APP应用软件?

如今随着移动智能手机的普及&#xff0c;让APP的市场一片繁荣&#xff0c;现在市场上的APP数量数不胜数&#xff0c;对于APP开发的我们很多外行人也许认为&#xff0c;开发APP是不是特别难&#xff0c;是不是只有资历很高的程序员才能够完成这个任务&#xff0c;或者说要想开发…

I/O重定向

每个进程都至少有3个信息&#xff1a;“标准输入”stdin、“标准输出”stdout、和“标准出错”stderr。标准输入通常来自键盘&#xff0c;标准输出和标准错误输出通常被发往屏幕&#xff08;并不会保存在磁盘文件中&#xff09;。有些时候&#xff0c;需要从文件读取输入&#…

java 自动装拆箱

title: “java 自动装拆箱” tags: Java 将基本数据类型封装成对象的过程叫做装箱&#xff08;boxing&#xff09;&#xff0c;反之基本数据类型对应的包装类转换为基本数据类型的过程叫做拆箱&#xff08;unboxing&#xff09;; 基本数据类型与其他对象的区别 基本数据类型 …

设计模式11---组合模式(Composite Pattern)

一、组合模式定义 将对象组合成树形结构以表示“部分-整体”的层次结构&#xff0c;使得用户对单个对象和组合对象的使用具有一致性。Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compos…

Linux 多核下绑定硬件中断到不同 CPU(IRQ Affinity)

转载 - Linux 多核下绑定硬件中断到不同 CPU&#xff08;IRQ Affinity&#xff09; 作者 digoal 日期 2016-11-20 标签 Linux , IRQ , 中断 , CPU亲和 , 绑定中断处理CPU 背景 原文 http://www.vpsee.com/2010/07/load-balancing-with-irq-smp-affinity/ 原文 硬件中断发生频繁…

请列举你了解的分布式锁_这几种常见的“分布式锁”写法,搞懂再也不怕面试官,安排!...

什么是分布式锁&#xff1f;大家好&#xff0c;我是jack xu&#xff0c;今天跟大家聊一聊分布式锁。首先说下什么是分布式锁&#xff0c;当我们在进行下订单减库存&#xff0c;抢票&#xff0c;选课&#xff0c;抢红包这些业务场景时&#xff0c;如果在此处没有锁的控制&#x…