关于QVTKWidget2的使用,运行窗口背景是透明的,求解答

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于QVTKWidget2的使用,运行窗口背景是透明的,求解答相关的知识,希望对你有一定的参考价值。

关于QVTKWidget2的使用,运行窗口背景是透明的,求解答
下面是三种可以设置的线程池的类型:
cache
cache线程池是一个无限大小的线程池,如果有很多请求的话都会创建很多线程,下面是个例子:
threadpool:
index:
type: cached

fixed
fixed线程池保持固定个数的线程来处理请求队列。
size参数设置线程的个数,默认设置是cpu核心数的5倍
queue_size可以控制待处理请求队列的大小。默认是设置为-1,意味着无限制。当一个请求到来但队列满了的时候,reject_policy参数可以控制它的行为。默认是abort,会使那个请求失败。设置成caller会使该请求在io线程中执行。
threadpool:
index:
type: fixed
size: 30
queue: 1000
reject_policy: caller
参考技术A 那是QQ皮肤。用新版2010的QQ就可以本地上传一张自己的图标作为QQ皮肤,设置后,在QQ聊天窗口里和QQ主面板就是上传的图标为背景了。设置步骤:登录新版2010及以上QQ版本,点击QQ主面板右上方搜索框上面最右边的更改外观(彩色)的图标→点击右边的“+”按钮→在电脑里选择图片→打开即可。这样QQ皮肤就是这个图片了,不过只有自己可以看到,好友无法看到。另外,还可以设置“QQ聊天装扮”,这个好友可以看到。但是无法自定义上传自己的图片。设置步骤:登录QQ号码→点击QQ主面板下方的“系统设置”(齿轮状)图标→右边基本设置下“装扮”→选择喜欢的装扮内容,在上面点一下→“确定”即可。

pcl-qt使用QVTKWidget 与PCLVisualizer 显示雷达点云

#ifndef PCLVIEWER_H
#define PCLVIEWER_H
#include "defines.h"
#include <iostream>
#include "radarserviceprovider.h"
#include "radarserviceprovider32.h"
#include "radarserviceproviderbase.h"
// Qt
#include <QWidget>
#include <QObject>
#include <QTimer>

// Point Cloud Library
//#include "pcl/visualization/pcl_visualizer.h"
#include "pcl/pcl_visualizer.h"
#include <vtkRenderWindow.h>
#include<QMutex>
#include<QDialog>
#include "QVTKWidget.h"
class vtkRenderer;
class vtkRenderWindowInteractor;
class vtkImageViewer2;
#define MAX_READ_LENGTH  5000
namespace Ui
{
  class PCLViewer;
};

class PCLViewer : public QVTKWidget
{
  Q_OBJECT

public:
    EIGEN_MAKE_ALIGNED_OPERATOR_NEW

  explicit PCLViewer (QWidget *parent = 0,int width =200,int height =200);
  ~PCLViewer ();


protected:
  boost::shared_ptr<pcl::visualization::PCLVisualizer> 
m_viewerOrg;
  PointCloudT::Ptr m_cloudOrg;
private slots:

   void combineRadarData();


private:

   int  m_height;
   int  m_width;


  PointCloudT m_pOrgData;
  PointCloudT m_ptestData;
  bool m_frontArrivedFlag;   //??????????????
  bool m_backArrivedFlag;     // ???????????????




  int m_cubeSize;
  QStringList m_idList;
  QStringList m_idSituationList;
  pcl::visualization::Camera m_cam;

  bool m_viewFollow = true;
  QTimer *m_timer;
  QMutex m_lidarBackMutex;
  QMutex m_lidarfrontMutex;
  QMutex m_situationTargetsMutex;
  QMutex m_lidarTargetsMutex;

};

#endif // PCLVIEWER_H

项目是两个雷达数据一起显示的。

#include "pclviewer.h"
#include <vtkOutputWindow.h>
#include <vtkPolyDataAlgorithm.h>
#include "service.h"
#include <QFile>
#include<QFileDevice>
#include<QXmlStreamReader>
#include"config.h"
#include "src/datacache.h"
#include<QMessageBox>
#include "service.h"
#include<QMutexLocker>
#include"math.h"
#include "vtkRenderer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkConeSource.h"

#include <vtkImageViewer2.h>
#include <vtkPNGReader.h>

#define MAX_POINT_NUM 1
PCLViewer::PCLViewer (QWidget *parent, int width, int height) :
    QVTKWidget(parent),m_frontArrivedFlag(false),m_backArrivedFlag(false),
    m_width(width),m_height(height)
{
  qDebug()<<"width:height"<<width<<":"<<height;
  this->setFixedSize(width,height);
  m_cubeSize =0;


  vtkOutputWindow::SetGlobalWarningDisplay(0);
  m_cloudOrg.reset(new PointCloudT);
  m_cloudOrg->points.resize(MAX_POINT_NUM);
  m_viewerOrg.reset (new pcl::visualization::PCLVisualizer ("viewer", false));
  this->SetRenderWindow (m_viewerOrg->getRenderWindow ());
  m_viewerOrg->setupInteractor (this->GetInteractor (), this->GetRenderWindow ());

  m_viewerOrg->resetCamera();

  m_viewerOrg->addPointCloud (m_cloudOrg, "cloud");

  m_viewerOrg->setCameraPosition(0, 0, 72, 0, 1, 0, 0);

  std::vector<pcl::visualization::Camera> cam;
  m_viewerOrg->getCameras(cam);
  m_cam =cam[0];

}




void PCLViewer::combineRadarData()
{
      if(m_viewFollow)
      {
         float offsetx  = 视觉x坐标 ;
         float offsety = 视觉y坐标;

         m_cam.pos[0] = offsetx;
         m_cam.pos[1]= offsety;
         m_cam.pos[2]=72;
         m_cam.focal[0] = offsetx;
         m_cam.focal[1]= offsety;
         m_cam.focal[2]=0;
         m_cam.view[0]=0;
         m_cam.view[1]=1;
         m_cam.view[2]=0;
         m_viewerOrg->setCameraParameters(m_cam);
     }

     if(m_threadList.count()>0) // m_threadList接收线程列表
     {
         PointCloudT::Ptr data =m_threadList.at(0)->readData();
         PointCloudT combine = *data;
         for(int i =1;i<m_threadList.count();i++ )
         {
             PointCloudT::Ptr backData = m_threadList.at(i)->readData() ;
             combine += *backData;
         }
         PointCloudT::Ptr pCombine = combine.makeShared();
         m_viewerOrg->updatePointCloud(pCombine, "cloud");
         this->update();
     }

     for(auto p: m_threadList)
     {
         p->setDataUsed();
     }

}

  

以上是关于关于QVTKWidget2的使用,运行窗口背景是透明的,求解答的主要内容,如果未能解决你的问题,请参考以下文章

关于screen的使用

求助,关于Qt的窗口半透明,窗口上的空间不透明

qt窗口设置背景图片文件路径

mfc中让编辑框透明为啥总显示黑色背景的编辑框啊?

如何在 Tkinter Python 中删除窗口背景

在 JFrame 窗口的背景中播放音乐