zoukankan      html  css  js  c++  java
  • 73 QT编程入门

    0 引言

    最近开始在QT下编程,记录一下遇到的问题以及解决方法。

    1 安装下载及学习资料

    (1)安装下载链接

    安装链接: https://blog.csdn.net/qq_23473839/article/details/80523318
    不同版本的安装包下载链接: http://download.qt.io/archive/qt/

    (2)学习资料链接

    QT编程指南: https://qtguide.ustclug.org/

    (3)信号槽机制

    IBM developer:  https://www.ibm.com/developerworks/cn/linux/guitoolkit/qt/signal-slot/index.html
    博客园老哥: https://www.cnblogs.com/QG-whz/p/4995938.html

     2 bug类

    (1)Error: Could not decode  "GLCanvas.cpp" with "UTF-8"-coding. Editing not possible.

    解决方法:

    (1.1)找到该文件所在目录,用notepad++ 打开该文件

    (1.2)notepad++:编码 -》 转为UTF-8编码 -》 保存退出

     

    (1.3)回到QT: Yes to ALL,转换成功; 如果Error还没消失的话,就点Select Encoding, 选择 system就行

     (2)编码问题错误

    (1.1)下载github上下载了注释语言为加泰罗尼亚语的代码,其编码格式未知,反正不是UTF-8,导致代码在QT里无法编辑。为了解决这个问题,采用notepad++进行转码,得到的文件发生了0中的问题,截图如下。

    转码前:
    //Creaci?del canal d'informaci?    
    mSceneInformationBuilder->CreateHistogram(mScene, mSphereOfViewpoints, pWidthResolution, pFaceCulling, true);

    转码后
    //Creaci?del canal d'informaci?    mSceneInformationBuilder->CreateHistogram(mScene, mSphereOfViewpoints, pWidthResolution, pFaceCulling, true);

    (1.2)结果导致传值传不进去,程序运行发生错误,回车就好啦。

    (3)qt designer无法打开

    发现是如下原因。本人同时编译了debug和release版本的QTVKWidge插件,希望qt能同时支持这两种,结果发现qtdesigner不识别debug版本的,无法打开就是-gd后缀的文件导致的,删除即可。

    3 qt调试

    (1)qtmaind.pdb

    调试文件,没有不影响运行,但是会报warning的错,导致无法正常调试。

    4 qt下的可视化

    PCL+Qt+VS可视化点云

    https://blog.csdn.net/wokaowokaowokao12345/article/details/51078495

    5 qt and vtk

    (1)需要自己编译vtk for qt,教程如下

    # 在windows上编译CloudViewer
    https://github.com/nightn/CloudViewer/blob/master/doc/compiling-cloudviewer-windows.md
    
    https://www.jianshu.com/p/0077466c3d34

    # 在编译时,需要选择qmake的目录,否则编译出来的文件会出错

    (2)QVTKWidget在qt中的使用

      2.1 在QT Creator中将widget组件提升为 QVTKWidget

      

       2.2 

    (3)

    6  qt类和组件学习

    (1)QMainWindow,QWidget 和 QDialog的区别

    https://blog.csdn.net/rl529014/article/details/51419126

    QWidget是所有用户界面元素的基类,窗口和控件都是直接或间接继承自QWidget, QMainWindow、QWidget、QDialog 三个类就是用来创建窗口的,可以直接使用也可以继承后再使用。

    1.1 QMainWindow菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式,可以作为GUI程序的主窗口。

                     QMainWindow的布局如图

     1.2 QDialog 是对话框窗口的基类。对话框主要用来执行短期任务,或与用户进行互动,它可以是模态的也可以是非模态的。QDialog 没有菜单栏、工具栏、状态栏等

     1.3 如果是主窗口,就使用 QMainWindow;如果是对话框,就是用 QDialog;如果不确定,或有可能作为顶级窗口,也有可能嵌入到其他窗口中,那么使用 QWidget

  • 相关阅读:
    用UILocalNotification实现一个闹钟(Swift)
    Swift
    iOS判断一些权限是否被禁止
    ofbiz学习笔记
    POJ1062 昂贵的聘礼 【DFS】
    echarts 应用数个样例
    java 中缀转后缀(逆波兰)
    开放是否能让苹果成为智能家居的标准制定者?
    2015阿里校招前端在线题目
    hql中不能写count(1)能够写count(a.id)
  • 原文地址:https://www.cnblogs.com/ghjnwk/p/11164406.html
Copyright © 2011-2022 走看看