QCombobox与QSqlQueryModel一起工作时速度非常慢,且模型较大
我几乎没有组合,在〜100k行以内的数据集等等.我尝试使用QStandardItemModel - 如果预加载模型,则可以快速工作,如果在单独的线程中执行模型加载也需要几秒钟.尝试使用QSqlQueryModel的组合蛋白而无需穿线以提高性能,但经历了比QStandardItemModel的效果要慢得多(例如,在我们的项目QSqlQueryModel中,与QTreeView的数据量非常快).这里有什么问题?有没有办法加速组合,有些参数? P.S. QT doc QComboBox::AdjustToMinimumContentsLengthWithIcon建议的速度不大:与此类连击的对话开始太长,然后退出10-20秒. AdjustToMinimumContentsLength工作速度更快,但无论如何延迟太长. 解决方案 找到了解决方案.第一思想是找到哪种模型可以更快地工作,例如QStringListModel替换QStandardItemModel或QSqlQueryMo
0 2023-05-23
编程技术问答社区
mupdf和freetype:为什么字体会模糊不清?
我想知道,如果字体模糊(即使使用抗质量),它是MUPDF还是Freetype2的错.这是在Windows上使用PDFDRAW实用程序. 解决方案 正如我在其他答案中提到的那样,字形描述由线条和曲线组成.问题是这些线条和曲线无法确保高尺寸的高富度字形呈现小尺寸,因为没有太多代表字形的空间.在这种情况下,一种称为 font暗示的技术用于渲染可读的字形. TrueType字体在字体文件中包含此类暗示信息.暗示基本上指定字体轮廓如何拟合到像素网格中,您可以阅读更多您在渲染中注意到的差异来自Adobe Reader使用暗示信息(以及其他专有渲染方法),而MUPDF只是呈现线和曲线. MUPDF使用freetype进行字体渲染,而freetype可能不会默认使用暗示(我可能会在此处错误).据我所知,Freetype支持字体暗示,但也许您需要在构建时指定此提示,我不确定. MUPDF也可能在没有暗示支持的情况下初始化freetype库,但我不知道这些细节.
8 2023-05-22
编程技术问答社区
如何用 python-poppler-qt4 显示 PDF?
我已经下载并安装了 python-poppler-qt4 现在尝试一个简单的QT应用程序显示PDF页面.我遵循了我能够从网络中获得的东西,即将PDF转换为qimage,然后将其转换为qpixmap,但它不起作用(我所得到的只是一个没有可见内容的小窗口). 我可能在某个时候失败了(QImage.width()返回输入的宽度,QPixMap.width()返回0). 这是代码: #!/usr/bin/env python import sys from PyQt4 import QtGui, QtCore import popplerqt4 class Application(QtGui.QApplication): def __init__(self): QtGui.QApplication.__init__(self, sys.argv) self.main = MainWindow() self.mai
2 2023-05-22
编程技术问答社区
为Pyqt4应用程序提供pdf查看器?
我正在编写一个python+qt4应用程序,理想情况下需要偶尔弹出窗口,显示PDF文档并允许非常基本的操作,即浏览不同的页面并打印文档. 我找到了ReportLab来创建PDF文件,但与PDF查看器无关.有人知道任何可能有帮助的事情吗?我真的很希望存在类似Qwebview窗口的东西... 事先感谢所有 解决方案 您可以使用其他解决方案 python与poppler-qt4结合,旨在使完整性和积极维护. https://code.google.com/p/python-poppler-qt4/pypler-qt4/py一个> 其他解决方案 okular呢?这是一个完整的应用程序,但可以始终从另一个应用程序调用.
0 2023-05-22
编程技术问答社区
QT4中是否有QPath::Combine?
我需要类似于.NET方法来安全地组合路径零件,而不必担心路径分离器的平台细节. qt4中是否有这样的类和方法? 类似: QPath::Combine 解决方案 没有任何功能可以用作直接替换Path.Combine()的直接替换. 您可能会以艰难的方式(自己处理所有操作)或简单地使用QDir::cleanPath(): QString pathAppend(const QString& path1, const QString& path2) { return QDir::cleanPath(path1 + QDir::separator() + path2); } 我使用了QDir::separator(),但是如 cross-platform用QT构建FS路径的方式并不需要它,您只需使用/即可. QDir::cleanPath()根据QDir::separator()>)将删除双/(或double \ ),并将解析.和./kbd>到适当的
0 2023-05-21
编程技术问答社区
C++和QT4.5--传递const int&是否过犹不及?通过引用传递在信号/槽中是否有帮助?
两个问题在这里汇总到一个... 我有许多功能,用于实时视频处理应用程序每帧多次称为.对const进行建议并通过参考,这些功能具有类似于此的签名 void processSomething(const int& value); 当我不断键入少数多个字符时,我想知道这是否过大. 第二个问题,在QT的插槽/信号机制中,关于通过参考的主题,是否有助于防止像正常函数呼叫一样复制对象? 解决方案 是的,这是过度的,实际上会导致慢>代码代码,而不是按值传递.一个int是四个字节;引用(本质上是内存地址)是四个字节(在32位机器上)或八个字节(在64位计算机上).因此,您实际上可能需要将更多信息传递给该函数 - 此外,您具有指定该参考的开销. 如果您传递了比int要大的东西,则使用const参考更有效,因为您只能传递四个或八个字节,而不必复制整个对象. edit 涉及QT:是的,如果插槽将const引用到对象,则是保存复制对象的开销的原因. 其他解决方案
0 2023-05-20
编程技术问答社区
Qt4的命令行分析器
我正在寻找QT4的命令行解析器. 我进行了一个小的Google搜索,并找到了以下内容: .com/pg?id = publicationsfreeware&category = getopt 但是它缺乏对" - eNable-foo"和" - disable-foo"开关的支持.除此之外,它看起来像是真正的赢家. 编辑: 似乎弗里罗尼奇删除了这一点.因此,我看到的最佳选择是使用Boost(不是API也不是ABI稳定)或对Kdelibs进行支持.是的... 解决方案 由于QT 5.2您最终可以在QTCore本身中找到解决方案:我贡献 qcommandlineparser 那里. 其他解决方案 QCoreApplication C1>(and QApplication从QCoreApplication继承).如文档状态,强烈建议您使用 > 由于qapplication也涉及常见的命令行参数,因此在应用程序本身中进行argv的任何解释或修改之前,最好是
0 2023-05-20
编程技术问答社区
在Qt 4.7中解析JSON的最简单方法
我需要通过QT解析JSON对象.什么是最简单/最快的方法? 解决方案 尝试 qjson . Qjson是积极开发的(如果我没记错的话,由KDE使用).最好的是直接检查源代码并自己构建. QJSON没有依赖性(QT和CMAKE除外).使用也很简单,看看一些用法示例: http://qjson.sourceforge.net/usage/usage/ 其他解决方案 现在在QT 5中支持JSON解析.这是加载和解析文档的方法: #include #include #include #include // ... // Read JSON file QFile file("/path/to/file.json"); file.open(QIODevice::ReadOnly); QByteArray rawData = file.readAll(); //
2 2023-05-20
编程技术问答社区
如何给QPlainTextEdit分页?
我一直在使用qplaintExtedIt来编辑我们的应用程序中的文本.最近,决定我们需要以分页的格式显示文本,而不是一致的文本块.经过大量的研究,我意识到虽然Qplaintextedit不了解页面或分页,但QplaintextDocument确实会. 听起来我们想进行分页,但是我不知道的是如何修改qplaintextedit以在页面中显示文本而不是巨大的字段. 旁注:我知道这没关系,但我正在使用Qtruby,而不是普通QT. 解决方案 我最终在QT论坛上重新命名:他们给了我一个体面的想法,效果很好: 如果您想喜欢页面布局 我看到的一种方式是……使用 QgraphicsView,设置场景, 设置多个QgraphicStextItems 可以编辑,并更新 任何编辑中的整个文本..您都可以设置 这些文本项目的qtextDocument .. 如果 您参考qprintpreviewwidget 来源 其他解决方案 请看一下其他解决方案 您可以使用希望有帮
0 2023-05-16
编程技术问答社区
用gstreamer瞄准Qt子部件
我有一个以xvimagesink元素结尾的GSTREAMER管道.要在特定的窗口中显示视频,我可以使用x_oerlay_interface: gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(xvsink), winid); 到目前为止,一切都很好.但是,仅当WinID是顶级窗口的想法时,它才是可行的,这不是儿童小部件的情况.假设我有: 对话框窗口对话widgetget 一个视频小部件VideoWidget,是DialogWidget的孩子. 如果我使用DialogWidget->winId(),则视频显示正确. 如果我使用" videowidget-> winid()",那么我会收到xv扩展名的消息,告诉我 之类的东西 X Error: BadWindow (invalid Window parameter) 3 Major opcode: 3 (X_GetWindowAttributes) Resource i
28 2023-05-16
编程技术问答社区
构建优化的Qt4-"./configure "标志及其含义
我最近在QT4-Interpect邮件列表上进行了讨论,介绍了它是否合法地构建商业/专有应用程序并静态地将QT4链接到其中.虽然有一些未经证实的方法(通过向客户提供对象文件和makefile等),但听起来并不是一个好主意. 我的一个项目是使用LGPL许可的QT4库,然后将它们作为单独的DLL/Dylibs/So将其运送到我的客户,并在所有平台上使用一个简单的安装程序.虽然到目前为止的功能都很好,但我想通过包括我需要的内容来减少QT库的大小来优化安装程序的大小,b)提高应用程序的启动/加载速度. 我自己熟悉编译QT,但是QT有很多标志和开关. 现在,我正在使用以下标志来建立: ./configure \ -fast \ -opensource \ -qt-sql-sqlite \ -nomake demos examples \ -silent \ -no-qt3support \ -no-gif \ -plugin-sql-mysq
2 2023-05-12
编程技术问答社区
如何为qDebug重载operator<<?
我正在尝试为我的同类产品创建更多有用的调试消息.我的代码看起来像这样 #include #include /** * Model for storing data. */ class DataModel : public QAbstractTableModel { // for debugging purposes friend QDebug operator
6 2023-05-12
编程技术问答社区
将多个可执行文件变形为一个单一的应用程序
我有三个共享大量源代码和数据的旧应用程序.这些应用程序中的每个应用程序的多个实例都由用户随时执行,例如十几个混合的应用程序执行可以一次活动.这些应用程序当前通过共享内存和消息传递技术进行通信,以便它们可以维持共同的光标定位等.这些应用程序主要用C ++编写,使用QT并总共运行到约500万行代码.只有某些现有代码为threadSafe. 我想将这三个可执行文件合并到一个可执行文件中,并使用多线程功能允许同时执行三个功能分支中的每个实例.有人建议我研究Boost提供的一些功能,例如共享指针,并使用OpenMP来协调多个线程的总体执行. 对如何进行进行的任何评论都将不胜感激,尤其是关于解决这种重构问题的最佳方法的参考. 解决方案 我对您的建议是设计所需的解决方案(首先假设要求是相同的),然后从现有代码碱基于第三方功能可能引入的要求构建一个分阶段迁移路径. 重构应该一次是一小步 - 但是知道您要去哪里. 有效地使用旧版代码(Robert C. Martin C.
6 2023-05-11
编程技术问答社区
我的lookAt和透视调用与gluPerspective和glLookat(立方体被拉伸)有什么不同?
旁注:嘿,大家,如果您发现我的问题/答案有帮助,请不要忘记投票.我有点需要它... 因此,我对矩阵[投影和模型]的实现似乎有所不同(除了我出于调试目的而评论的内容).以下是我在绘制立方体时看到的错误的屏幕截图. 请记住,我确实将视口和矩阵保持在窗口尺寸的最新状态,并用float而不是int计算屏幕比率,所以不要打扰,我已经检查了通常的嫌疑犯..... 旁注:调试时,我更改了立方体的距离.为了重现屏幕截图,在workspace.cpp的第76行中,将mdistance设置为约90,并将窗框拉伸至窗户右下角指出的尺寸. 请记住屏幕截图和调试文本输出是单独的事件,因为我一直在调试此问题并获得新的数字. 代码: #define _AP_MAA 0 #define _AP_MAB 1 #define _AP_MAC 2 #define _AP_MAD 3 #define _AP_MBA 4 #define _AP_MBB 5 #define _AP_MBC 6 #de
0 2023-05-10
编程技术问答社区
我如何从Qt4中传递一个OpenGL上下文?
我目前正在Leadwerks 2引擎中开发游戏,我决定将QT4用作GUI和窗口管理器.我想做的是创建一个QT QGLWIDGET窗口,并在其中运行Leadwerks引擎. 有一些有关构建基本QGLWIDGET应用程序在这里 . 我真的很努力地了解如何准确地做到这一点.我可以在Leadwerks引擎中创建一个自定义的GL缓冲区,我相信我需要做的就是给该缓冲区创建的GL上下文. 至于事物的Leadwerks方面,我需要做的主要工作是称呼一种称为 createCustombuffer 并将其传递几件事: 虚拟void buffer :: createCustom(字节* getize,byte* makecurrent) 创建并返回一个新的自定义缓冲区. getize(定义为void _stdcall get get get(int* width,int* height))和makecurrent(定义为void _stdcall makecurrent(void))是缓冲区
0 2023-05-10
编程技术问答社区
仅在发布模式下使用glGenBuffer的未处理异常-QT
在发布模式下使用QT 4.8在Windows 7上编译项目时,我遇到了一些麻烦.一切都可以在调试中效果很好,但是在发布时,我会得到一个未经手的例外:0xc0000005:访问违规. 我将其缩小到发生这种情况的线,这是我生成像素缓冲区的时候. 我的第一个猜测是错误的DLL加载,但是我用依赖关系Walker检查了可执行文件,并且每个DLL加载都是正确的. 这里有一些我的代码: class CameraView : public QGLWidget, protected QGLFunctions; void CameraView::initializeGL() { initializeGLFunctions(this->context()); glGenBuffers(1, &pbo_); //
2 2023-05-10
编程技术问答社区
如何在Qt4 OpenGL应用程序中启用HiDPI(视网膜)支持?
我正在使用QgraphicsScene,带有Qgraphicsview,如此文档.我打算最终将QT小部件叠加在我的OpenGL渲染场景上. 当我启动以上面教程模型的虚拟应用程序时,渲染视图将被大量像素化 - Hidpi根本无法使用. per this文档,我已经手动添加了: NSHighResolutionCapable True 到应用程序的info.plist文件,仍然没有效果. (似乎这应该默认为true,所以也许这不足为奇). 以外,我还没有找到使HIDPI工作所需的东西.我不使用QTCreator,我的QT安装是MacPorts'qt4-mac.我想念什么? 解决方案 qt5启用hidpi的openGL上下文,但对小部件和qgraphictems不适合. 根据此bug ,支持渲染widgets and qgraphicsItems a qglwidget and qglwidget e
2 2023-05-10
编程技术问答社区
如何优化基于QGraphicsView的应用程序的性能?
我有一个基于QT图形视图框架的应用程序. 这是一款拼图游戏,基本上将像素将pixmap切成较小的pixmap(拼图件),并在QGraphicsView中显示为QGraphicsItem s.我希望这个应用程序可以在智能手机和平板电脑上运行. (它已经在诺基亚N900和一些Symbian手机上运行.还没有针对Symbian^3进行优化.) 来源是 gitorious . 项目继承QGraphicsItem和QObject,并具有pos()和rotation()的Q_PROPERTY宏,以使它们使用QT动画框架使它们动画. 我对项目进行转换,例如缩放和旋转(后者仅在开发内部触摸分支中),并且我也在它们上使用QGraphicsDropShadowEffect. 我使用QGLWidget作为QGraphicsView的视口,以启用应用程序的OpenGL加速. 问题在于,尽管被开放加速了,但该应用程序根本不是平稳的. (尤其是动画,尤其是自从我将旋转转换添加到多点触摸分
26 2023-05-10
编程技术问答社区
如何与OpenGL和QT一起工作?
我正在从事一个小型项目,我需要与OpenGL + QT 一起工作 我两个都是新手.因此,我需要一个很好的教程,可以说明如何与他们互相合作而不是单独 最好在QT创建者上使用OpenGL或使用QT Visual Studio插件? 解决方案 您将经常使用QGLWidget!在这里,你去: 所有这些,也许这是最好的开始: 通过qquickframebufferobject快速将自定义OpenGL渲染集成到QT 如果您想要的3D API高于OpenGL,则如QT 5.7 qt 3dd 变成至于IDE,我建议使用QT创建者.它可以在Windows上的盒子中奏效,语法突出显示和自动完整与Visual Studio相当. 其他解决方案 您有几种不同的选择用于在QT中使用OpenGL.这些年来,它发生了很大变化.有关介绍应涵盖所有基本信息的介绍,您需要启动看这篇文章.旧样式的QT OpenGL类和功能称为QGLXX,但现在称为Qopenglxx,已移至QTGUI模块
4 2023-05-10
编程技术问答社区
将glut连接到Qt
我想将OpenGL与Glut结合到QT. 我正在使用Windows.我的QT版本是4.7.4,32位. 我遵循教程: http://www.youtube.com/watch?v=1nzhsky4k18 /p> 我还检查了其他人的其他问题,但他们没有给我答案. 包含插口之前的零件正常工作. 但是,当我尝试包含Glut时,它行不通. 错误是: glutinit_atexit_hack的不确定引用 以及对glutfunctions的更多未定义引用. 我将Glut-Libraries和标头复制到Mingw文件夹中的适当文件夹. 但是我不确定这是否是正确的文件夹. 解决方案 mingw: 将glut.h复制到%dir%\ mingw \ include \ gl 将glut32.lib复制到%dir%\ mingw \ lib 将glut32.dll复制到 c:\ windows \ system32 添加%dir%\ min
0 2023-05-10
编程技术问答社区