VS+QT入门学习,记录学习过程。

1、打开mainWindow.ui,添加CSFFilter菜单

CloudCompare学习-添加菜单

2、添加源码

2.1在ui_mainwindow.h中的class Ui_MainWindow类中添加public成员变量

QAction *actionCSFFilter;


2.2在mainwindow.h 中添加函数声明

void doActionCSFFileter();    //add


2.3在mainwindow.cpp中添加关联和函数体

connect(m_UI->actionCSFFilter,                  &QAction::triggered, this, &MainWindow::doActionCSFFileter);  

CloudCompare学习-添加菜单

void MainWindow::doActionCSFFileter()
{




2.4在 void MainWindow::enableUIItems(dbTreeSelectionInfo& selInfo) 函数中添加代码,选中点云时,enable菜单

m_UI->actionCSFFilter->setEnabled(atLeastOneCloud);    


3、添加对话框UI

3.1新建一个dialog,保存为CSFFilterDialog.ui

CloudCompare学习-添加菜单

运行Cmd,进入CSFFilterDialog.ui所在的文件夹,执行命令uic CSFFilterDialog.ui -o ui_CSFFilterDialog.h,生成 ui_CSFFilterDialog.h文件。

(参考:http://blog.csdn.net/sdau20104555/article/details/42360329和

http://blog.csdn.net/dongzhe8/article/details/51559924)


3.2 为对话框添加一个类 ,提示信息 “It is impossible to add a QtGuiClass to the current project, as it was not created using Qt5VSAddin”

CloudCompare学习-添加菜单CloudCompare学习-添加菜单


3.3手动添加一个类,project——class Wizard

CloudCompare学习-添加菜单CloudCompare学习-添加菜单

基类 QDialog,ccCSFFilterDlg.h, ccCSFFilterDlg.cpp  参照  ccNoiseFilterDlg.h 和 ccNoiseFilterDlg.cpp 修改 .h文件和.cpp文件

编译报错:

error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall Widget::metaObject

参考:http://blog.csdn.net/zhenyusoso/article/details/8450906

cmd 进入ccCSFFilterDlg.h的目录下,输入命令:

F:\CloudCompare-rebuild\qCC>moc ccCSFFilterDlg.h -o moc_ccCSFFilterDlg.cpp

将生成的moc文件添加到源文件里。

CloudCompare学习-添加菜单

4、为void MainWindow::doActionCSFFileter() 函数体添加代码

在 mainwindow.cpp里面 添加 

#include "ccCSFFilterDlg.h"   

函数体内添加

void MainWindow::doActionCSFFileter()
{
ccCSFFilterDlg CSFDlg(this);


if (!CSFDlg.exec())
return;



相关文章:

  • 2021-08-20
  • 2021-11-17
  • 2021-12-05
  • 2021-06-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-11-18
  • 2021-10-16
  • 2021-06-06
  • 2022-12-23
  • 2021-07-21
  • 2022-01-18
  • 2022-12-23
相关资源
相似解决方案