自学内容网 自学内容网

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启动时将被自动装载。、


原文地址:https://blog.csdn.net/yuyuyuliang00/article/details/140584768

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!