草庐IT

Qt5Webkit

全部标签

c++ - Qt读写二进制文件

我将在Qt项目中使用二进制文件,作为Qt的新手,我不确定是否应该使用QVector或QByteArray来存储数据。这些文件可能非常小(4GiB)。在运行时之前大小是未知的。我需要能够进行随机搜索并能够处理文件中每个字节的操作。内存映射文件在这里有用吗?感谢您的任何建议。 最佳答案 将整个大文件加载到内存中,无论是QVector还是QByteArray都可能不是一个好的解决方案。假设文件具有某种结构,您应该使用QFile::seek将自己定位在“记录”的开头并使用qint64QIODevice::read(char*data,qin

c++ - 使用 Qt 更新/渲染游戏对象

我想知道如何在使用Qt时更新和渲染游戏对象。例如。对于典型的游戏,您会有一个事件循环,但Qt只有exec()。使用Qt更新和渲染游戏对象的正确方法是什么?我该怎么做,比如获取每帧之间的时间来更新我的游戏对象?我是否为所有这些使用单独的线程?我的问题与thisthread非常相似,除非我不想避免标准Qt进程。编辑:对于不完整的问题,我深表歉意。我相信tmpearce已经回答了我的问题,但这里有一个基本示例,说明我正在尝试做的事情,以防其他人遇到同样的问题:intmain(intargv,char**args){QApplicationapp(argv,args);ApplicationW

c++ - Qt:如果你发送信号太快会发生什么?

情况是这样的:您有一个在后台线程中运行的长时间运行的计算。此计算会发出一个信号,例如,每100毫秒刷新一次GUI元素。假设它发出了100个这样的信号。正在重绘的小部件需要超过100毫秒才能重绘;假设1秒。事件循环中发生了什么?信号调用是否“堆积”直到它们全部执行(即100秒)?是否有任何“删除”事件的机制? 最佳答案 用户事件永远不会被丢弃。如果您将发出的信号事件排队的速度快于您处理它们的速度,那么您的事件队列将会增长,直到您用完内存并且您的程序将崩溃。不过,值得注意的是,如果系统负载过重,QTimer将跳过超时事件。在某种程度上,

c++ - 在 QT for Windows 中使用 Win32 API

我正在从.netC#迁移到QTC++,我正在尝试使用此Win32函数在QT中模拟驱动器:[DllImport("kernel32.dll",CharSet=CharSet.Auto,SetLastError=true)]privatestaticexternboolDefineDosDevice(intflags,stringdevname,stringpath);[DllImport("kernel32.dll",CharSet=CharSet.Auto,SetLastError=true)]privatestaticexternintQueryDosDevice(stringdev

c++ - 在 Windows 中将 rinside 与 qt 一起使用

我开始在C++中使用rinside和rcpp。我只想从零开始,所以我的QT项目除了创建RInside实异常(exception)什么都没有,我有一个我无法解决的问题。我在项目中只有一个对话窗体。我的项目文件:QT+=coreguiTARGET=rcpp-rinsideTEMPLATE=appSOURCES+=main.cpp\dialog.cppHEADERS+=dialog.hFORMS+=dialog.uiINCLUDEPATH+=C:\R\R-2.15.1\includeINCLUDEPATH+=C:\R\R-2.15.1\library\Rcpp\includeINCLUDEP

c++ - 使用 Qt 显示 JPG 图像不适用于发布可执行文件

我在用qt显示jpg图像时遇到了一个恼人的问题。我在Windows7中使用VisualStudio2008开发并使用Qt4.8.2版。我现在将通过Qt提供的“collidingmice”示例(../examples/graphicsview/collidingmice)来描述我的问题。我可以通过VisualStudioIDE或通过VisualStudio命令提示符构建此示例。在此示例中,一个jpg用作背景,并在我执行调试可执行文件时正确显示。但在发布版本中,此背景jpg未显示。我已经意识到,Qt使用插件来加载/显示不同的图像。因此,我将Qt插件文件夹的内容复制到应用程序目录(colli

c++ - Qt(5) : Render same video on 2 different surfaces using QtMultimedia

我正在Qt(5)中开发一个应用程序,基本上我正在尝试使用QtMultimedia5将相同的视频源渲染到我窗口中的2个位置。我在QML中执行此操作,但如果有C++中的解决方案,我会很乐意改为实现它。我可以在窗口中显示视频。当我尝试使用相同的QMediaSource但将其渲染到2个窗口/控件时,问题就开始了。我看到正在发生的事情是QMediaService::requestControl被调用,它返回一个QVideoRendererControl对象。然后调用QVideoRendererControl::setSurface来设置它渲染视频的表面。因此,据我所知,QMediaService

c++ - 无限Qt动画(不指定持续时间)

我正在使用C++和Qt开发BlockBreaker克隆,我想知道如何为球的运动创建无限(或无界)动画。我应该坚持使用动画框架(通过子类化QAbstractAnimation),还是考虑创建和管理新线程来处理动画?一些有经验的指导会很有帮助,谢谢。 最佳答案 所以最后我弄明白了:使用QPropertyAnimation::setLoopCount(-1)成员函数使动画永远运行,直到被QPropertyAnimation::stop()停止>信号... 关于c++-无限Qt动画(不指定持续时

c++ - 获取 QT 代码的纯 C++ 实现

我试图弄清楚这段代码在没有任何依赖性的情况下如何像普通C++一样,所以我使用了moc编译器,但显然我错了。moc总是返回main.cpp:0:Note:Norelevantclassesfound.Nooutputgenerated.代码是#include#include#includeclassMyButton:publicQWidget{public:MyButton(QWidget*parent=0);};MyButton::MyButton(QWidget*parent):QWidget(parent){QPushButton*quit=newQPushButton("Quit

c++ - Qt5 在 QtQuick2 中使用 QWidget

Qt5和QtQuick2的组合存在一些问题。每当您想使用许多基于QWidget的类中的一些时,您首先会遇到以下问题:您应该使用QApplication而不是Qt5的QGuiApplication。那么这很容易改变,对吧?所以现在我正在使用QApplication但每当我尝试使用基于QWidget的类时我的程序要么崩溃要么导致一些无意义的错误消息。那么我应该如何将旧的QWidgets与Qt5一起使用?我知道它们不是Qt5的最佳解决方案,但它们非常有用...附言我正在Linux中为所有平台开发我的应用程序。我还使用自动生成的QtQuick2ApplicationViewer类来呈现基于Qt