草庐IT

QML和QT

全部标签

c++ - 使用 Qt5 的 throw 语句即时崩溃

当我尝试在Qt中使用异常时,应用程序在任何throw语句上立即崩溃,忽略任何catch(...)-条款。这是导致崩溃的最少代码:#includeintmain(){try{throw1;}catch(...){QStringa;}}没有QString即使包含库,它也能正常工作。我得到的异常代码是40000015和偏移量:0000bb3f我将QtCreator2.7.2与Qt5.1.0和mingw4.8(QtCreator附带的版本)一起使用。我使用Windows8进行构建。在网络上进行一些研究后,我尝试添加CONFIG+=exceptions标记到*.pro文件,但仍然崩溃。当我读到Q

c++ - Qt中的实时像素绘制

我的应用程序显示一个长的科学垂直滚动图片(1024x99999999...px)作为QPixmap1024x128block的序列。这允许我通过从表中选择所需的block以最小的CPU成本滚动图片:block_id=y_coord/128。此外,QPixmap是用于快速屏幕输出的首选“像素容器”。但是现在我有新的数据流进入应用程序,需要将新数据添加并显示在长图的底部。最小部分:1024x1(一行)。另外,我想尽快显示每一行(接近实时)。128行的每个新部分都将“打包”到QPixmap,但在我收到足够的数据之前,我无法构建整个block。我应该考虑用什么方法来显示新数据?该视频给出了“添

c++ - 如何将 Crypto++ 库添加到 Qt 项目中

我下载了Crypto++源代码并在VisualStudio2013中编译了cryptlib项目,然后我将生成的.lib文件添加到我的Qt项目中,这使得我的.pro文件如下所示:QT+=coreguiQT+=sqlgreaterThan(QT_MAJOR_VERSION,4):QT+=widgetsTARGET=untitledTEMPLATE=appSOURCES+=main.cpp\mainwindow.cppHEADERS+=mainwindow.h\databasecontrol.h\test.hFORMS+=mainwindow.uiwin32:CONFIG(release,d

c++ - 将 QML 事件传播到 C++

我想将事件从QML信号处理程序传播到C++过程,但不知道如何传递“事件对象”。看看这种情况,特别注意SomeType。首先,我创建了一个自定义QML项,其中包含一个可以从QML调用的槽:classTool:publicQQuickItem{...publicslots:virtualvoidonMousePositionChanged(SomeType*event);}然后,在QML中,我创建了一个MouseArea和我想要将事件传播到的自定义对象的一个​​实例。MouseArea{hoverEnabled:trueonPositionChanged:{varevent=...tool

c++ - 在Qt中获取qrc文件的路径

我想知道如何访问qrc文件中的文件路径,以便将它们用作数组中的字符串。qrc文件的一个例子是:images/1.jpgimages/2.jpgimages/3.jpgimages/4.jpg我想按以下方式使用它:for(inti=0;i其中path是一个qlist,稍后可用于访问相应的图像。 最佳答案 似乎有一种使用QDirIterator的简单方法.如果您在当前工作目录中有一个名为“:”的目录并且您希望将来解析该目录,则它可能会中断。无论如何,现在这不应该是一个问题。QStringListimageFileList;QDirIte

c++ - 'implicit sharing' 是否可从 Qt 类继承?

如果我创建一个隐式共享的Qt类(例如QList)的子类,我的子类也会被隐式共享吗?我读了briefintroductiontoimplicitsharing位于QtCore5.3文档中,但我没有看到任何关于遗传性的提及。我提问的目的是在决定传递哪些参数以及如何传递它们时尝试编写更高效的代码。 最佳答案 如评论中所述,使用隐式共享的Qt类通常是数据容器或工具,不打算被子类化。您会注意到,因为没有虚析构函数,实际上根本就没有虚函数。由于风险和不良做法,您可能希望在没有继承的情况下进行不同的设计。回答你的问题:隐式共享如何运作?类实例共享

c++ - 在 C++ 中扩展 QML ApplicationWindow

如何正确扩展QMLApplicationWindow类型?根据文档,ApplicationWindow实例化了一个QQuickWindow。所以我尝试从QQuickWindow进行子类化并将类型作为MyWindow公开给QML。问题是MyWindow实际上并没有扩展QML类型的ApplicationWindow,因此您没有获得menuBar和toolBar等所有属性。如何在C++中扩展ApplicationWindow并将其公开给QML?这是我目前正在做的事情:classMyQuickWindow:publicQQuickWindow{//...irrelevantadditions}

c++ - 使用动态插件处理 Qt5 中的 QMetaType 注册

我的公司正在考虑从Qt4.8.4跳转到Qt5.4,但我遇到了一个对我们来说可能是个阻碍的变化:QMetaType::unregisterType()被删除了(http://doc.qt.io/qt-5/sourcebreaks.html).我们的GUI需要在运行时加载插件,同一个插件可能会在GUIsession期间加载和卸载不止一次。在Qt4中,我们遇到了一个问题,当第二次加载插件时,任何使用插件注册的自定义类型之一的信号/插槽都会导致访问冲突,因为元类型已被注册插件的第一个实例(现在已卸载,因此内存空间无效)。我们通过定义自己的宏来解决这个问题,以便在加载和卸载插件时安全地注册和取消

c++ - Qt 5.4 应用程序可以在 pre win7 中调试吗

当我发现选择Chromium而不是WebKit对QtWebEngine的影响时,我感到非常惊讶。Chromium需要VS2013,因此我无法在(例如)我的VistaProfessional上进行开发和测试。VS2013不支持XP或Vista。另外,安装QtCreator3.3.0,我没有得到可运行的工具包(是MinGW,直到Qt5.3)。Help\AboutQtCreator...框显示BasedonQt5.4.0(MSVC2010,32bit)我不明白...似乎我唯一的选择是坚持使用Qt5.3。或者在放弃Qt作为可行的可移植平台之前,我可以尝试一些技巧?

c++ - 如何在 QML 场景上绘制 3D 线?

我试图将BulletPhysics的调试绘图接口(interface)集成到QML中,所以我必须实现一个drawLine()方法。voiddrawLine(constbtVector3&from,constbtVector3&to,constbtVector3&color);我尝试的是从QQuickItem3D和btIDebugDraw继承了场景中使用的一个项目。在drawLine()中,我将线条添加到成员vector中。在Qt的drawItem()中,我遍历线条并使用OpenGL调用来渲染它们。但是,它们不会出现在屏幕上。如何在3D空间和正确的相机View中绘制线条?voidDebu