我有一个同学写的代码(我们正在做一个项目):
//inside cqtopencvviewergl.cpp
void CQtOpenCVViewerGl::resizeGL(int width, int height)
{
makeCurrent();
glViewport(0, 0, (GLint)(width), (GLint)(height));
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, width, -height, 0, 0, 1);
glMatrixMode(GL_MODELVIEW);
recalculatePosition();
emit imageSizeChanged(mRenderWidth, mRenderHeight);
updateScene();
}
glLoadIdentity() 的调用导致 Exception at 0x0, code: 0x0000005 根据调试器 C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\cdb.exe 在我的例子中。
我知道该函数已被弃用。但是我对所有关于我应该怎么做的信息来源感到非常困惑。所以我会帮助你克服迷失方向,希望你能帮助我......
根据 this回答 Exception occurs because the functions used are deprecated.但问题不同,因为我(或我们)以完全不同的方式包含 openGL:
在 cqtopencvviewergl.cpp 的顶部,我们包含以下内容:
#include "include/Gui/cqtopencvviewergl.h"
#include <QOpenGLFunctions>
#include <opencv2/opencv.hpp>
#include <QPalette>
在 cqtopencvviewergl.h 的顶部,我们包括:
#include <QOpenGLWidget>
#include <QOpenGLFunctions_2_0>
#include <opencv2/core/core.hpp>
所以我们使用 Qt 类来调用 openGL 函数。我查看了代码,似乎 Qt 自行处理弃用。
同样根据this回答 Qt 支持所有当前的桌面 OpenGL 版本。
根据 this提问者对问题的回答How to replace following (deprecated) OpenGL functions? Windows 离线安装程序默认基于 ANGLE。我使用了离线安装程序...
根据 this qt wiki 中的条目 要使用 ANGLE 编译 Qt 我必须安装 Direct X SDK。但是我怀疑如果我使用 QOpenGLFunctions 和 QOpenGLFunctions_2_0...
根据 wiki 条目,Direct X SDK 是 Windows SDK 的一部分,所以我也怀疑我是否已经拥有 ANGLE事实上,我已经有一些 Windows SDK:
同样根据this文章 我应该使用 configure -opengl dynamicly 并且因为我使用 Windows 我试图找出调用 configure 的位置并找到 configure.bat -opengl desktop在this文章。所以想运行 configure.bat -opengl dynamic 但我在 C:\Qt\Qt5.9.1 的任何地方都找不到 configure.bat > 目录...
我使用以下 Qt 工具包:
我是唯一一个(项目中的 6 个人)遇到这个问题的人。通常我的问题更准确,但我在这里迷路了。我该怎么办?
最佳答案
嗯,解决方案很简单......
根据 this article 可以通过QT_OPENGL 环境变量和以下应用程序属性配置加载机制...
所以我添加了 QT_OPENGL 设置为 desktop 作为系统环境变量:
Control Panel > System > Advanced system settings > Environment Variables
我确定我的电脑讨厌我...干杯!
关于c++ - Qt 5.9 - 由于不赞成调用 glLoadIdentity 而在 0x0 出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45655352/
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
我正在学习Rails,并阅读了关于乐观锁的内容。我已将类型为integer的lock_version列添加到我的articles表中。但现在每当我第一次尝试更新记录时,我都会收到StaleObjectError异常。这是我的迁移:classAddLockVersionToArticle当我尝试通过Rails控制台更新文章时:article=Article.first=>#我这样做:article.title="newtitle"article.save我明白了:(0.3ms)begintransaction(0.3ms)UPDATE"articles"SET"title"='dwdwd
在Cooper的书BeginningRuby中,第166页有一个我无法重现的示例。classSongincludeComparableattr_accessor:lengthdef(other)@lengthother.lengthenddefinitialize(song_name,length)@song_name=song_name@length=lengthendenda=Song.new('Rockaroundtheclock',143)b=Song.new('BohemianRhapsody',544)c=Song.new('MinuteWaltz',60)a.betwee
我早就知道Ruby中的“常量”(即大写的变量名)不是真正常量。与其他编程语言一样,对对象的引用是唯一存储在变量/常量中的东西。(侧边栏:Ruby确实具有“卡住”引用对象不被修改的功能,据我所知,许多其他语言都没有提供这种功能。)所以这是我的问题:当您将一个值重新分配给常量时,您会收到如下警告:>>FOO='bar'=>"bar">>FOO='baz'(irb):2:warning:alreadyinitializedconstantFOO=>"baz"有没有办法强制Ruby抛出异常而不是打印警告?很难弄清楚为什么有时会发生重新分配。 最佳答案
电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。 准备工作: 1、U盘一个(尽量使用8G以上的U盘)。 2、一台正常联网可使用的电脑。 3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。 4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。 U盘启动盘制作步骤: 注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注
如何将send与+=一起使用?a=20;a.send"+=",10undefinedmethod`+='for20:Fixnuma=20;a+=10=>30 最佳答案 恐怕你不能。+=不是方法,而是语法糖。参见http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_expressions.html它说Incommonwithmanyotherlanguages,Rubyhasasyntacticshortcut:a=a+2maybewrittenasa+=2.你能做的最好的事情是:
在前面两节的例子中,主界面窗口的尺寸和标签控件显示的矩形区域等,都是用C++代码编写的。窗口和控件的尺寸都是预估的,控件如果多起来,那就不好估计每个控件合适的位置和大小了。用C++代码编写图形界面的问题就是不直观,因此Qt项目开发了专门的可视化图形界面编辑器——QtDesigner(Qt设计师)。通过QtDesigner就可以很方便地创建图形界面文件*.ui,然后将ui文件应用到源代码里面,做到“所见即所得”,大大方便了图形界面的设计。本节就演示一下QtDesigner的简单使用,学习拖拽控件和设置控件属性,并将ui文件应用到Qt程序代码里。使用QtDesigner设计界面在开始菜单中找到「Q
SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我