技术标签: osg Qt qt widget osgQt gui opengl
Qt加载Osg的老方式是使用osg3.4以及以前的某些版本中提供的osgQt项目加载osg,不过这种方式,在3.6等新版本中不再支持,更改起来比较麻烦,osg::GraphicsContext类不再提供osg::GraphicsContext::setWindowingSystemInterface接口函数,无法编译成功。不过目前有个替代方案,使用osgQOpenGL的osgQOpenGLWidget类进行三维模型的加载,下载地址为:
https://github.com/OpenSceneGraph/osgQt
下面是使用osgQOpenGLWidget加载osg的演示例子。
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
private slots:
void initOsg();
};
#endif // WIDGET_H
#include "widget.h"
#include <osgQOpenGL/osgQOpenGLWidget>
#include <QBoxLayout>
#include <osgDB/ReadFile>
#include <osgViewer/Viewer>
#include <osgUtil/Optimizer>
#include <osgGA/TrackballManipulator>
#include <QLabel>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
resize(400, 300);
QHBoxLayout *pLayout = new QHBoxLayout(this);
pLayout->setMargin(0);
osgQOpenGLWidget *pOsgW = new osgQOpenGLWidget;
pLayout->addWidget(pOsgW);
connect(pOsgW, SIGNAL(initialized()), this, SLOT(initOsg()));
}
Widget::~Widget()
{
}
void Widget::initOsg()
{
osgViewer::Viewer *pViewer = ((osgQOpenGLWidget *)sender())->getOsgViewer();
pViewer->setCameraManipulator(new osgGA::TrackballManipulator());
osg::Node *pNode = osgDB::readNodeFile("boxman.osg");
osgUtil::Optimizer optimizer;
optimizer.optimize(pNode);
pViewer->setSceneData(pNode);
}
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
QT += core gui widgets
TARGET = TestOsgQt
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
CONFIG += c++11
SOURCES += \
main.cpp \
widget.cpp
HEADERS += \
widget.h
OsgDir = C:\r
CONFIG(release, debug|release) {
LIBS += -L$${OsgDir}/lib/ -losgQOpenGL -losgDB -losgViewer -losg -losgUtil -losgGA
} else {
LIBS += -L$${OsgDir}/lib/ -losgQOpenGLd -losgDBd -losgViewerd -losgd -losgUtild -losgGAd
}
INCLUDEPATH += $${OsgDir}/include
DEPENDPATH += $${OsgDir}/include
文章浏览阅读3.2w次,点赞69次,收藏62次。@[TOC](【Python】处理 WARNING: Ignoring invalid distribution -ip (e:\python\python_dowmload\lib\site-packages)错误)最近在使用pip 安装插件的时候,出现下面的警告信息:WARNING: Ignoring invalid distribution -ip (e:\python\python_dowmload\lib\site-packages)解决方法:找到警告信息中报错的目录,然后删掉~开头_ignoring invalid distribution -ip (e:\python\lib\site-packages)
文章浏览阅读296次。被Python3搞得好崩溃,抓取网页的问题赶时髦,装了个python3.3,发现网上很多资料都是2.7的,没关系,自己慢慢研究吧,可是搞了个抓取网页的程序,一运行就报错,找了几个网上类似的Python3的代码,跑了一下一样的错误,真的被这些脚本语言的环境和版本匹配搞得快崩溃了,哪位有类似经验的帮我看看吧:代码:importurllib.parseimporturllib.requesturl=..._urllib线程不安全
文章浏览阅读4.6w次。在解析xml时,经常因为文件中含特殊字符而解析失败。原因有两个:一是内容中含有XML预定义好的实体,二是内容中含有低位非打印字符。 1.内容中含有xml预定好的实体,如“<”_xml解析错误
文章浏览阅读188次。这篇博文记录了我用 CentOS 7 搭建 地震学科研环境 的过程,供我个人在未来重装系统时参考。对于其他地震学科研人员,也许有借鉴意义。阅读须知:本文适用于个人电脑,不适用于服务器;不推荐刚接触 Linux 的人使用 CentOS 发行版;本文尽量写的浅显易懂,但要求读者掌握 Linux 基础知识;本文所有操作均在 CentOS 7 下完成,其他发行版或多或少与 Cent..._centos 集成电路
文章浏览阅读921次。YOLOv5是一种快速、高效的目标检测算法,可以广泛应用于各种物体检测任务。本文将介绍如何使用YOLOv5进行水果识别任务的实现,识别水果并且计价。_二、 基于yolov5的水果识别csdn
文章浏览阅读907次,点赞19次,收藏23次。信息安全是一门涉及计算机科学、通信技术、网络技术、信息安全技术、密码技术、应用数学、数论、信息论等多个学科的综合性学科。信息安全是指保护信息网络的硬件、软件及系统中的数据不受偶然的或恶意的原因而遭到破坏、更改、泄露,并维持系统连续、可靠、正常地运行。广义上讲,凡是涉及信息的保密性、完整性、可用性等方面的相关技术和理论,都是信息安全的研究领域。大到国家军事、政治等机密安全,小到防止商业机密、个人信息的泄露等,都属于信息安全的范畴。考点概述。_计算机信息安全技术
文章浏览阅读4.9k次,点赞2次,收藏9次。通过sizeof()函数得到C语言数组长度_c语言数组大小
文章浏览阅读122次。个人篇本人一个农村娃,接触电脑晚,从小蛮羡慕那些计算机高手,尤其是那些黑客,可以出入他人电脑就像在自家院子闲逛一样,由于见识少,以为这些高深的技术都是天才才能玩的,对这些也只是想想,从来不认为自己也可以学这些。想想那时候还是蛮傻的啊,那些人即使是天才那也还只是一个人,人和人刚出生时候的差距能有多大啊(也就是一个人比另一个人体重重那么点的差距)。后来慢慢接触电脑了,也是看看电影,...
文章浏览阅读9.6k次,点赞16次,收藏161次。系统支持输入图片、视频、摄像头和RTSP视频流的目标检测,其中,可以对图片进行处理,包括灰度化、平滑处理、均衡化、形态学、图像梯度、阈值处理、边缘检测、轮廓检测、直线检测、亮度调节和伽玛校正。_yolo界面
文章浏览阅读1.8k次,点赞4次,收藏9次。微信红包测试用例_微信红包测试用例设计
文章浏览阅读446次。 大家好,今天我为大家带来的文章是开屏页设计。用户只需要50毫秒(0.05秒)就能对网站/App做出评价,从而决定是留下还是离开。开屏页设计的合理性很大程度上影响了用户的初体验。 第一印象很重要!很多用户会根据App/网站的初始形象来判断是否可以信任这家公司或这个产品。 那么如何解决快速感知的问题呢?首先将关注点放在App带给我们的第一印象上。合理的启动页能激发用户的潜意识,有助于吸引和留存合适的用户。 在深入研究设计策略之前,先来了解一下启动画面的基本知识。 什么是启动画面?_ui设计开屏页的种类
文章浏览阅读2.2k次。1:封装成一个类,直接调用即可。已经在多个商业项目中使用。2:所有功能全平台 win linux armlinux 亲测无误,网络上的基本上是烂的或者不可用的,不知道走过多少弯路。3:linux下CPU占用率的计算非常准确,支持多核。4:硬盘容量计算极速。进度条显示占用比例。5:多彩数码管实时显示当前时间。6:自定义颜色下拉框,选择即可看到效果。完整源码下载:demo1.zip(10 K) 下载..._qt获取cpu使用率linux