Qt5--设置QCustomPlot

在你程序中使用QCustomPlot非常简单:

  • 从下载部分获取QCustomPlot的最新版本。
  • 像任何其它常规的类文件一样使用qcustomplot.h和qcustomplot.cpp。

对于QtCreator用户

在左侧边栏中你项目的根项目上右击并且选择Add Existing Files...

在出现的文件对话框中,选择qcustomplot.h和qcustomplot.cpp文件,并且添加它们到你的项目。如果这完成了,你的项目结构和.pro文件应该看起来像这样:

如果你正在使用Qt 5.0以上,你需要添加printsupport到你.pro文件中QT变量。在以上展示的示例中,在greaterThan(QT_MAJOR_VERSION, 4)条件后做这件事。在使用较老Qt版本时,这确认不添加printsupport(和widgets)。

项目现在准备使用QCustomPlot。放置一个常规QWidget到你在所需位置的表单中。右击它并且电机Promto to ...

在显示的对话框中,在Promoted class name名称输入字段中输入QCusomPlot。Header file输入字段中应该自动填入正确的qcustomplot.h值。点击Add添加QCustomPlot到promoted类列表,并且最后点击Promote把表单中这个QWidget变成一个QCustomPlot。

你将在QtCreator(或QtDesigner)中见不到立即的视觉变化,但在运行这个程序时,你将看到一个带有轴和网格线的空图。

故障排除

由"GL/gl/h:No such file or directory"或"cannot find -lGL"造成的编译取消。

在一个GNU/Linux系统上,确认你安装了软件包mesa-common-dev, libgl1-mesa-dev和libglu1-mesa-dev,例如,通过像一个bash终端输入以下:

sudo apt-get install mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev

由"Undefined reference to QPrinter(...)"造成的链接取消

如上所述,确认你已经向你项目文件QT变量添加了模块printsupport。

以共享库.so/.dll使用QCustomPlot

使用共享库意味着在项目中不包括.h/.cpp,而是链接一个外部qcustomPlot.so(GNU/Linux)或者qcustomplot.dll(MSWindows)文件。通过设置编译器定义QCUSTOMPLOT_COMPILE_LIBRARY,QCustomPlot准备作为一个共享库被构建。要在你的程序中使用这个共享库,在包括这个QCusomPlot头前设置这个定义QCUSTOMPLOT_USE_LIBRARY。

在下载部分中的sharelib包提供演示这个的两个项目:一个项目编译这个共享的QCustomPlot库而另一个项目使用这个共享库。这应该快速地让你开始使用QCustomPlot作为一个共享库。

运行这些示例

在下载部分中QCustomPlot.tar.gz包包含了准备被编译地示例项目。只要提取整个包到一个新目录,导向到这个示例目录中并且运行qmake; make。另外,你可以在QtCreator中打开.pro文件并且从那里使用这些示例。

用Qt Designere使用自定义Widgets

通过Qt Designer的扩展插件机制,Qt Designer可以显示自定义Widgets,允许可设计的widgets的范围被用户和第三方扩展。另外,使用已有widgets作为提供类似APIs的widget类的占位符是可能的。

处理自定义Widgets

虽然Qt Designer支持所有标准的Qt Widgets,但由于很多原因,某些专用的widgets不可能作为标准获取到:

  • 在这个用户接口被设计时,自定义widgets可能获取不到。
  • 自定义组件可能是平台专用的,而设计者可能在一个不同平台上为终端用户开发这个用户接口。
  • 自定义widget的源代码获取不到,或者用户接口设计者出于非技术原因不能使用这个widget。

在以上情况中,在程序中设计有使用自定义widgets的表单仍然是可能的。要达到这个目标,我们可以使用Qt Designer的wdiget提升特性。

在自定义widgets源代码可用的所有其它情况中,我们可以为与Qt Designer一起使用适配自定义widget。

提升widget

如果某些表格必须被设计,但某些自定义widgets杜宇设计者获取不到,我们可以替换成类似widgets来代表缺失的widgets。例如,我们可能用QPushButton的实例表示一个自定义按钮类MyPushButton的实例并且提升这些为MyPushButton,因而uic为缺失的类产生合适的代码。

当选择一个widget用作一个占位符时,比较缺失widget的API和标准Qt widgets的API是有用的。对于子类化标准类的专用widget,占位符的明显选择是自定义widget的基类;例如,QSlider可能用于专用的QSlider子类。

对于与标准Qt widgets不共享公共API的专用widgets,值得考虑为在Qt Desinger中使用修改一个自定义的widget。如果这不可能,则由于QWidget是所有widgets的最小公因子,它是占位符widget的明显选择。

要添加一个占位符,选择一个合适的基类的对象,并且从表格环境菜单中选择"Promoto to ..."。在对话框下部分输入类名和头文件后,选择Add。占位符类现在在上部分列表中与基类一起出现。点击Promoto按钮接收这个选择。

现在,当在基类对象上,打开表格环境菜单时,占位符类将在Promote to子菜单中出现,允许便捷地提升对象为那个类。

通过从表格环境菜单选择Demote to,一个被提升的widget可以被复原为其基类。

使用定义好的自定义widgets

 自定义widgets可以被适配于与Qt Designer一起使用,给予设计者在一个程序中将使用实际widgets而不是占位符widget的配置用户接口的机会。创建一个自定义widget插件的过程在本手册Create Custom Widgers for Qt Designer中描述。

要使用用此方式创建的一个插件,必须确保插件位于一个Qt Desinger搜索插件的路径上。一般,存储在$QTDIR/plugins/desinger中的插件在Qt Designer启动时将被自动装载。、

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

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

相关文章

成都云飞浩容文化传媒有限公司是真的吗?

在当今这个数字化浪潮汹涌的时代,电商行业无疑是众多行业中的一颗璀璨明星。作为这个行业的佼佼者,成都云飞浩容文化传媒有限公司凭借其专业的电商服务,已经帮助无数企业和个人在电商领域取得了令人瞩目的成绩。 成都云飞浩容文化传媒有限公…

Android 性能之刷新率设置和管理

目录 1. 刷新率和帧率 2. 多种刷新率 3. 基本原理 3.1 屏幕 & 显示控制器 3.2 Composer Service 4. Framework 策略 4.1基本架构 4.2 刷新率设置项的定义 4.2.1 最低刷新率 4.2.2 默认刷新率 & 默认的用户设置刷新率 4.2.2.1 设置入口 4.2.2.2 设置场景 4…

SmartX 超融合 vs vSAN 8:数据库场景下的性能对比

此前,我们以 vSAN 7 为例,对比了 SmartX 与 VMware 超融合在快照、缓存、I/O 路径上的技术差异,及其带来的性能影响。不同于 vSAN 7,vSAN 8 引入了快速存储架构 ESA(Express Storage Architecture)&#xf…

企业私有云的部署都有哪些方式?

如今常见的企业私有云的部署方式有自建私有云、托管私有云、虚拟私有云、混合云、容器化私有云、本地数据中心部署等。如今,企业私有云的部署呈多样化趋势,以用来满足各个企业的具体需求。以下是RAK部落小编为大家汇总的企业私有云常见的部署方式&#x…

Visual Studio调试Web项目

一、编译运行调试(VS快捷键:CtrlF5) 缺点:编译运行项目太慢,整体程序有些编译报错运行不了 二、附加到进程调试(VS快捷键:CtrlAltP,选择w3wp.exe) 无需编译,速…

如何在WeMapEngine中加载显示地图

我们在《全新跨平台GIS引擎将问世》一文中,为你分享了我们自主研发了一款全新跨平台的国产化GIS引擎——WeMapEngine。 现在再为你分享一下,如何在WeMapEngine中加载地图服务的方法,不过该产品暂未发布,因此暂时还无法立即体验。…

HormonyOs之 路由简单跳转

Navigation路由相关的操作都是基于页面栈NavPathStack提供的方法进行,每个Navigation都需要创建并传入一个NavPathStack对象,用于管理页面。主要涉及页面跳转、页面返回、页面替换、页面删除、参数获取、路由拦截等功能。 Entry Component struct Index …

Spring -- 三层架构

T04BF 👋专栏: 算法|JAVA|MySQL|C语言 🫵 今天你敲代码了吗 应用分层 介绍 在阿里的开发手册里,关于工程结构部分,定义的常见工程的应用分层结构 那么什么是应用分层呢? 应用分层是一种软件开发设计思想,他将应用程序分层N个层次.这N个层次分别负责各…

vue3【详解】内置组件 Transition

用于给元素或组件进入和离开页面添加过渡动画 使用场景 v-if 切换 <button click"show !show">Toggle</button> <Transition><p v-if"show">hello</p> </Transition>v-show 切换 动态组件切换 <Transition name&…

Adobe国际认证详解-ae视频剪辑

AE视频剪辑&#xff0c;即After Effects视频剪辑&#xff0c;是数字媒体时代的一项重要技能。AE不仅提供了丰富的特效和动画功能&#xff0c;还让视频剪辑变得更加高效和有趣。对于想要在职场上脱颖而出、拓宽就业机遇的人来说&#xff0c;掌握AE视频剪辑技能无疑是一个明智的选…

小程序基础总结

组件标签 html wxml div span img a view text image navigator css wxss rpx 小程序响应式单位,在不同设备上自动进行换算 js app.js 项目入口文件 ,通过App()函数启动整个小程序 页面的 .js ,页面入口文件,通过Page()函数创建运行页面 通信模型 渲染层 逻辑层 第三方…

Q*s‘ AGI

最近这段时间&#xff0c;不论是产业界还是学术界&#xff0c;均发表了不少围绕「Q*」的探索和实验&#xff0c;同时随着OpenAI的「草莓QQ糖(皮一下)」计划的曝光与训练的进行&#xff0c;似乎又为当前围绕Q*、AGI、AI4S等领域带来了不少业界争鸣和讨论&#xff0c;而且周围更多…

Electron案例解析——切换主题颜色的案例

效果图 核心 Electron的 nativeTheme.themeSource属性&#xff0c;值是string。有三个参数&#xff1a;system, light 和 dark&#xff0c;用来覆盖、重写Chromium内部的相应的值 Election的api描述值nativeTheme.themeSource被用来覆盖、重写Chromium内部的相应的值system, …

谷粒商城实战笔记-45-商品服务-API-三级分类-查询-递归树形结构数据获取

文章目录 一&#xff0c;准备工作1&#xff0c;启动虚拟机2&#xff0c;启动mysql3&#xff0c;执行MySQL脚本插入分类数据4&#xff0c;关于三级分类 二&#xff0c;Controller层新增接口三&#xff0c;Service层新增接口1&#xff0c;代码实现2&#xff0c;测试 从这一节开始…

实验二 FPGA使用Verilog HDL设计分频器

实验目的 掌握使用Vivado软件进行设计、综合、仿真、布线的方法。掌握FPGA程序的下载方法。掌握使用Verilog HDL设计分频器的方法。 实验要求 采用Verilog HDL语言设计分频器&#xff0c;实现以下功能&#xff1a; 输出时钟周期为1s的分频时钟信号&#xff1b;通过LED灯或数码…

15个在线地图瓦片URL分享

数据是GIS的血液&#xff0c;我们在《10个在线地图瓦片URL分享》一文中为你分享了10个地图瓦片URL链接&#xff0c;现在再为你分享5个在线的瓦片地图URL图源&#xff01; 该在线地图瓦片URL支持在GIS软件或开发平台进行调用&#xff0c;比如ArcGIS、QGIS、Global Mapper、Open…

PowerBI宝藏级资料分享推荐

有同学留言想学习PowerBI&#xff0c;求推荐可以免费学习的网站&#xff0c;最好是比较系统的&#xff0c;不要那种广告或诱导付费才能学习的网站。 这样的学习网站确实有&#xff0c;主打大家要求的免费。 推荐大家几个我一直私藏的宝藏级&#xff0c;学习和使用资料网站. …

《经典图论算法》贝尔曼-福特算法(Bellman-Ford)

摘要&#xff1a; 1&#xff0c;Bellman-Ford 算法的介绍 2&#xff0c;Bellman-Ford 算法为什么可以解决有负权边的图 3&#xff0c;Bellman-Ford 算法为什么不能解决有负权回路的图 4&#xff0c;Bellman-Ford 算法的代码实现和负权回路的判断 5&#xff0c;Bellman-Ford 算法…

测试——Selenium

内容大纲: 什么是自动化测试 什么是Selenium Selenium工作原理 Selenium环境搭建 Selenium API 目录 1. 什么是自动化测试 2. 什么是Selenium 3. Selenium工作原理 4. Selenium环境搭建(java) 5. Selenium API 5.1 定位元素 5.1.1 CSS选择器定位元素 5.1.2 XPath定位元…

# Redis 入门到精通(十一)-- 集群

Redis 入门到精通&#xff08;十一&#xff09;-- 集群 一、redis 集群 – 集群简介 1、现状问题&#xff1a;业务发展过程中遇到的峰值瓶颈 redis提供的服务OPS可以达到10万/秒&#xff0c;当前业务OPS已经达到10万/秒。内存单机容量达到256G&#xff0c;当前业务需求内存容…