Articles of qt

Qt的最好的方式来显示非常大的富文本?

我需要显示非常大的日志,使用HTML标记标记不同types的数据。 使用QTextEdit和QTextBrowser真的会减慢应用程序,特别是在追加操作。 我真的想保持QTextEdit界面和能力。 我见过一些实现了自己的TextEdit风格的人来提高性能,但是如果有人使用“Qt”工具解决了这个问题的话,我会徘徊不前。 我想过使用Model / View框架来根据需要加载数据,但这不像我想的那样。 也许inheritanceQTextEdit并覆盖一些插槽滚动… 如果有人遇到这个问题,并解决它,我将不胜感激一些提示。 谢谢。

Qt线程在Linux中的问题

在我的项目中,我一直在用Qt开发一段时间,现在我们开始转向更线程化的devise。 在将一些GL渲染小部件移动到其他线程时,我发现了一些非常奇怪的行为。 看来,如果一个GL Widget从另一个线程(boost线程或QThread)开始更新,然后接受用户input(如QTextEdit)的部件抓住焦点,我会看到如下所示的XCB崩溃: [xcb] Too much data requested from _XRead [xcb] This is most likely caused by a broken X extension library [xcb] Aborting, sorry about that. hypnotizer: ../../src/xcb_io.c:735: _XRead: Assertion '!xcb_xlib_too_much_data_requested' failed. 为了testing这个,我实际上可以对GLHypnotizer演示进行简单的修改来重现崩溃。 该演示可以在这里find: http ://qt-project.org/doc/qt-4.8/demos-glhypnotizer.html [qt-project.org] 如果我添加行“mdiArea.addSubWindow(new QTextEdit(this));' (在调用newThread()之前),然后当演示开始时,将会有一个QTextEdit和一个GL Hypnotizer Widget。 如果我然后点击QTextEdit抓住焦点,我会每次都得到上面的崩溃。 任何人都可以重新使用上述说明在Linux上安装错误? 有没有人在Linux上使用Qt和线程之前遇到这些types的问题? 注意:我正在使用Ubuntu 12,这个崩溃发生在VirtualBox和非VirtualBox Ubuntu安装中

设置QGroupBox标题的alignment方式

我尝试以编程方式设置QGroupBox的标题alignment方式。 根据文档,我尝试按照以下方式进行: MainWidget::MainWidget (QWidget * parent) : QWidget (parent) { setWindowTitle (tr ("QGropBox Title Alignment issue") ); QGroupBox * group = new QGroupBox ("Group Title", this); QVBoxLayout * layoutTop = new QVBoxLayout (); layoutTop->addWidget (group); group->setAlignment (Qt::AlignHCenter); this->setLayout (layoutTop); } 但是我得到了意想不到的结果,并且标题与组框左侧一致。 我对环境有这样的行为: Debian 9.0(sid); Qt 5.5.1(从仓库安装); XMonad DE。 我对下一个环境也有同样的行为: Ubuntu 15.10; Qt 5.4(使用offline-installer手动安装); KDE。 但! […]

cachingGoogle Map最初在浏览器中显示较小

这是来自软件的caching地图: ogmaps 请仔细看看主窗口地址栏下面的小阴影。 一旦点击最小化/最大化button,就会显示完整。 在Firefox上testing,谷歌浏览器。 不能说这是浏览器问题,因为当我在Qt小部件上加载这个caching的地图时,我仍然不得不点击最小化/最大化button,以使它完全显示出来。 地图的html太长,无法在这里发布。 如果您有任何相关的部分,请告诉我,我会在这里发布。 编辑2 最后我设法在这里上传这个html代码: http : //code.google.com/p/earthhtml/source/browse/trunk/ogmap.html 请看看div标签。

Qt版本无效

我正在使用Linux,我已经安装了Qt Creator 2.5.2,Qt库4.7.4和4.4.3。 我不能直接安装二进制文件,因为版本之间不兼容。 Qt 4.7.4和Qt 4.4.3的安装过程都是一样的。 我面临的问题是Qt Creator认识到Qt 4.7.4,而不是Qt 4.4.3,错误 Qt版本无效:无法确定Qt安装的二进制文件的path,可能path错误。 那么每个库都安装在/home/$username/qt/Qt-$version 。 当我手动编译一个项目 cd directory /home/$username/qt/Qt-4.4.3/qmake $PATHPRO make 一切工作的魅力,我可以运行应用程序。 我试过了什么? 重新编译Qt-4.4.3 检查文件夹权限 重新启动Qt Creator 在我的桌面上粉碎我的头 有什么想法吗? 操作系统是SUSE Enterprise 11-32位。

在Ubuntu上使用共享库部署Qt应用程序二进制文件

我想部署一个我已经在任何“Vanilla”Ubuntu上运行的Qt应用程序。 它可能是一个.deb软件包,或者简单的二进制文件。 事情是,我不知道该怎么做。 我试图按照这个教程: https : //lemirep.wordpress.com/2013/06/01/deploying-qt-applications-on-linux-and-windows-3/我真的设法让应用程序运行在另一台电脑上,但是…它应该播放一些video,我得到了一个消息: defaultServiceProvider :: requestService():找不到服务 – “org.qt-project.qt.mediaplayer” 我可能错过了一些库。 但我真的不知道哪一个。 当我在我的二进制文件上运行ldd时,一切似乎都没有问题。 ldd的结果如下: libQt5MultimediaWidgets.so.5 => /home/mauker/Qt/5.3/gcc_64/lib/libQt5MultimediaWidgets.so.5 (0x00007f02a0adf000) libQt5Multimedia.so.5 => /home/mauker/Qt/5.3/gcc_64/lib/libQt5Multimedia.so.5 (0x00007f02a07fc000) libQt5Widgets.so.5 => /home/mauker/Qt/5.3/gcc_64/lib/libQt5Widgets.so.5 (0x00007f029ffb9000) libQt5Xml.so.5 => /home/mauker/Qt/5.3/gcc_64/lib/libQt5Xml.so.5 (0x00007f029fd7b000) libQt5Network.so.5 => /home/mauker/Qt/5.3/gcc_64/lib/libQt5Network.so.5 (0x00007f029fa17000) libQt5Gui.so.5 => /home/mauker/Qt/5.3/gcc_64/lib/libQt5Gui.so.5 (0x00007f029f2f3000) libQt5Core.so.5 => /home/mauker/Qt/5.3/gcc_64/lib/libQt5Core.so.5 (0x00007f029ebbf000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f029e8a1000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f029e68a000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 […]

键盘inputQt

我正在开发一个在embedded式Linux上运行的Qt应用程序。 我对这个Qt业务很新,因为我刚刚开始了一个月,所以明白,我不是那个面向对象 …:P 我有我的目标运行Linux上运行的Qt应用程序。 Qt文档http://doc.qt.io/archives/qt-4.7/qt-embedded-pointer.html说,我们必须通过导出某些variables来启用触摸屏,USB键盘,键盘等。 也就是说, export QWS_MOUSE_PROTO=tslib:/dev/input/event1 export QWS_KEYBOARD="linuxinput:/dev/input/event0 usb:/dev/input/event2" 好吧,你可以猜到,第一行将QT中的鼠标设备设置为触摸屏。 “tslib”是触摸屏库,“event1”是代表触摸屏的节点。 同样,第二行是用于板载键盘(event0)和USB键盘(event2)的。 现在,触摸屏工作得很好。 但是问题出在哪个键盘上。 如果我不导出第二个variables,即QWS_KEYBOARD ,那么应用程序运行良好。 但是,如果我导出第二个variables,则应用程序一旦启动就会进入停止状态(SIGSTOP)。 从ps输出中可以看出这一点。 我无法使它与SIGCONT合作。 我将尝试从源代码重新configurationQt。 任何想法都欢迎。

在QWidget外部GUI线程上绘画问题

我正在开发一个应用程序,我想连续从远程主机接收图像并将其显示在屏幕上。 为此,我遵循给定的策略1)我有一个主要的QWidget对象,其中包含的QImage(工作正常)2)从远程主机接收的图像被绘制在QImage对象,这项工作是在一个工作线程使用QPainter完成。 (工作正常)3)但问题是,图像不更新QWidget,除非我调整窗口小部件,因为重绘事件调用QWidget …现在,如果我从工作线程重绘QWidget,它会给出错误“ QPixmap:在GUI线程之外使用pixmaps是不安全的..“和应用程序崩溃。 有关于此的任何帮助?

如何将X11事件传递给QDialog

目前,我正在尝试将系统X11事件(在Linux上)传递给我创build的对象。 要做到这一点,我已经从我的QApplication安装了一个eventFilter到我的对象。 这是有效的,因为它获得了应用程序的所有事件。 不过,我也需要传递对象X11事件。 我继续前进,在我的对象中创build了一个x11Event,希望它能够接收来自X11的事件,但事实并非如此。 反正有X11事件直接传递给我的对象,在我的应用程序?

为Linux开发

我想开发Linux的多媒体编码器。 我想利用就绪的命令行编解码器,如ffmpeg。 我想build立好的graphics用户界面和传递命令行编码器的参数。 我正在考虑使用Qt。 (可能吗?) 我对Linux编程一无所知,但是我已经是Ubuntu用户8个月了。 请向我提供指导教程的链接。 (我已经尝试了Ubuntu论坛,但这里面都是初学者的东西!) 我需要你们的提示。 我准备好了解它的一切! 我准备好学习新的语言。 谢谢!