技术标签: Qt
之前由于开发需要,对Qt的一些操作不是很熟悉,在网上查找如何在TabWidget内进行绘图操作的时候发现很多都说得不清不楚的,看起来实在是浪费我们这些新手的时间,希望通过这个博客帮助到其他人。
其实这个操作很简单,但是当初不清楚的我整整花了一天时间去查阅各种资料,后来才发现如此简单。
因为Qt的paintEven(QPaintEvent*)总是只在当前类下面的窗口绘图。那么要在子窗口下绘图的话,那么就要新建一个子类,在这个子类里面实现你想要的绘图,我下面说一下具体步骤。
首先,在ui里拉一个TabWidget控件,如图所示,然后在Tabwidget控件里选择某一个,就比如下图的三维图,在三维图里面再添加一个控件,拉什么控件都行,我这边拉了一个新的widget在里面,将这个widget的名称改成show_2D,这个widget我是在右边的(仔细看的话,有两条竖的虚线,虽然这不重要),不是左边的那个黑框,黑框是另外一个控件,虽然其实对这些控件而言都是一样的步骤
第二步,就是新建一个类,在这个新类里的paintEven函数实现你想要绘制的图。
你可以先在main.cpp里面调用这个类实例化一个对象d,然后d.show()一下,会跳出一个弹框,弹框里面就是你的绘图
但是在这一步有一点要注意的是,在写新的类的构造函数的时候,要注意和你在Tabwidget里的控件类型相互匹配
比如我拉的是一个新的widget控件,那么构造函数就是这样子的
Draw_Curve::Draw_Curve(QWidget *parent) :QWidget(parent)
也就是冒号后面的,如果你拉的控件是Lable,那么就应该是:QLable(parent)
第三步:然后在你的主界面,也就是一开始创建的拉了控件TabWidget的那个界面,新建一个你刚刚写的类的对象,可以放在一个点击触发的函数里试试,传的参数就是对应ui的名称,这样就能显示在TabWidget里面的widget里了
setGeometry是用来调整显示在TabWidget里面的坐标位置和大小的,注意Qt左上角的坐标是(0,0)
这是我控件的名称及类型,我是用show_2D这个控件演示的给你们做一下参考
对应的结果就是如下显示,就是那个小红块
有人想要代码的话,完整项目请参考:https://github.com/qAao/firstTest
但是比较乱,里面没有整理,是之前的课程设计的内容,结合单片机实现上位机功能的,结合这个博客看看,应该可以看懂
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------1.String类 字符串是一个特殊的对象。字符串一旦初始化就不可以被改变。 String str1 = "abc"; //str1是一个类类型变量,"abc"是一个对象。
使用oss分片上传时发生的报错Connection pool shut down报错详情如下:com.aliyun.oss.ClientException: 网络连接错误,详细信息:Connection pool shut down[ErrorCode]: Unknown[RequestId]: Unknownat com.aliyun.oss.common.comm.ServiceClien...
目录一、编写代码1.1 创建工程1.2 编写代码1.3 程序烧录1.4 串口通讯二、参考资料本文将使用STM32系统给上位机(win10)连续发送“hello windows!”。win10采用“串口助手”工具接收。一、编写代码1.1 创建工程新建一个工程,我是基于STM32F103RC芯片的由于是汇编,下方不用勾选任何选项1.2 编写代码创建一个.s文件并输入以下代码;RCC寄存器地址映像 ...
被设计师支配的恐惧很多的入门程序猿,对于android自定义View,可能都是比较恐惧的,但是这又是高手进阶的必经之路。回想还是一个入门菜鸟时,每当设计提出一个比较炫酷的动画设计,都会打开百度或者github先搜索一番。可是开源控件毕竟不是量身打造,与期望的效果总是有那么多的出入。这个时候就假装一本正经的说,这个没法实现。然后战战兢兢的等待设计那一句:“为什么ios的可以实现“?磨刀不误砍柴工an...
1 依赖包sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libope
我的项目中使用eureka作为服务注册中心,eureka-server提供restful接口上传文件,api项目中需要使用openfegin调用erurka-server上传文件。其中遇到了很多坑,做下记录,方便后面查看。首先在api中需要引入openfegin的jar网上在使用feginClient时候,有的引用openFegin,有的会引用Fegin。具体两个区别是:Fegin1.Fei...
简单说一下学习okhttp的理由google在Android 6.0中删除了HttpClient的Api,采用的是则是okhttp高效的使用HTTP,使应用运行更快更省流量响应缓存数据避免重复网络请求无缝的支持GZIP来减少数据流量使用非常简单,请求和响应的Api具有流畅的建造和不变性,同时支持同步异步调用回调函数如果网络出现问题,...
7.3 设某流水线计算机有一个指令和数据合一的cache,已知cache的读/写时间为10ns,主存的读/写时间为100ns,取指的命中率为98%,数据的命中率为95%,在执行程序时,约有1/5指令需要存/取一个操作数,为简化起见,假设指令流水线在任何时候都不阻塞。问设置cache后,与无cache比较,计算机的运算速度可提高多少倍? 答:1)有cache的情况:平均访存时间=平均取指时间+平均...
个人对Python3面向对象的一些理解,如有错误,敬请指出,大家互相学习。
Class Project占40%的成绩比重尽早规划好任务和数据集project类别:1. 用已存的神经网络应用在一个新的任务task上2.开发出一个新的神经网络结构Class Project: Apply Existing NNets to Tasks1.构建任务,如:生成摘要2.准备数据及:1).已经有基准线的学术上的数据集,如:Document Understanding Conference
当主流计算机应用软件开始迁移到客户/服务器体系结构时,程序员们开始寻找方法以简化使用类似技术并且在结构也类似的工程的开发。这就为现代软件开发框架打好了基础。 随着基于万维网的应用程序服务器的发展及其相关的应用软件的膨胀,支持这些技术的开发框架也随着蓬勃发展。当前,在企业开发领域中出现了许多特别适合于Java J2EE平台的软件开发框架。 在本文中,我将集中讨论现代的Java开发框架,分析它们
今天在面试中碰到这个问题,当时还迷糊了一番,毕竟平时没怎么用过,记得以前看过,现在有点记不清了!这是C语言很基础的东西,面试一般会遇到!对两个浮点数判断大小和是否相等不能直接用==来判断,会出错!明明相等的两个数比较反而是不相等!对于两个浮点数比较只能通过相减并与预先设定的精度比较,记得要取绝对值!if( fabs(f1-f2) < 预先指定的精度){ ...}