Tag: qt

如何在C ++中创build一个简单的Qt控制台应用程序?

我试图创build一个简单的控制台应用程序来尝试Qt的XMLparsing器。 我在VS2008中开始了一个项目,并得到了这个模板: int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); return a.exec(); } 由于我不需要事件处理,我想知道如果我忽略创build一个QCoreApplication并运行事件循环,是否会陷入困境。 该文件指出,在大多数情况下,这是build议的。 为了好奇,我想知道如何在事件循环中执行一些通用任务,然后终止应用程序。 我无法谷歌相关的例子。

单击时在QWidget上绘制矩形叠加层

在我的项目中,我使用了一个EventFilter来处理部件,它们在QHBoxLayout 。 如果我点击一个小部件,我想绘制一个透明的覆盖与蓝色的点击小部件。 有没有办法来实现这个? 问候

如何在VS2012下静态构buildQt 4.8 / 5.2,使用静态MSVC运行时,支持Windows XP?

我想在VS2012下完全构buildQt 4.8 / 5.2,包括静态运行时库,以及Windows XP系统。 Qt并不支持这个function,因为即使是Qt的静态构build也使用dynamic链接的MSVC运行时。 这是一个典型的问题,它提供了成功构build满足这些需求的Qt所必需的知识。

如何在Windows上部署Qt应用程序?

所以现在我可以做一个我的应用程序的.exe。 现在如何让我的应用程序准备好部署Windows? 这是为Windows上的Qt应用程序部署问题的规范问题。

“无法加载平台插件”xcb“”,而没有安装qt在Linux上启动qt5应用程序

我为使用Qt5的linux编写了应用程序。 但是当我试图在未安装Qt SDK的linux上启动它时,控制台中的输出是: 无法加载平台插件“xcb”。 可用的平台是: 我该如何解决这个问题? 可能是我需要复制一些插件文件? 当我使用安装Qt5的Ubuntu,但我重命名Qt目录,同样的问题发生。 所以,它使用Qt目录中的一些文件… 更新:当我在应用程序目录中创build与文件libqxcb.so文件夹“平台”,应用程序仍然不启动,但错误消息更改: 无法加载平台插件“xcb”。 可用的平台是: XCB 这怎么可能发生? 平台插件如何可用,但无法加载?

在PyQt应用程序中embeddedIPython Qt控制台

我想在我正在使用的PyQt应用程序中embedded一个IPython qt控制台小部件。 下面提供的代码(并从https://stackoverflow.com/a/9796491/1332492改编)为IPython v0.12完成此操作。 但是,这会在IPython v0.13的self.heartbeat.start()和RuntimeError: threads can only be started once行中崩溃RuntimeError: threads can only be started once 。 注释掉这行代码会popup小部件,但不会响应用户input。 有谁知道如何实现IPython v0.13的等效function? """ Adapted from https://stackoverflow.com/a/9796491/1332492 """ import os import atexit from IPython.zmq.ipkernel import IPKernelApp from IPython.lib.kernel import find_connection_file from IPython.frontend.qt.kernelmanager import QtKernelManager from IPython.frontend.qt.console.rich_ipython_widget import RichIPythonWidget from IPython.config.application import catch_config_error from PyQt4 import QtCore […]

使用QTcpSocket的TCP数据包

我知道TCP保证所有数据包都会到达。 但是,数据包可以分成两个或更多? 我正在使用类QTcpSocket的Qt,我想知道是只有当完整的数据包到达ReadyRead信号发射。 换句话说,在第一个字节中发送数据包的大小是否有意义,然后再循环直到所有字节到达? 或者我可以调用socket-> readAll(),我必须得到一个完整的数据包?

如何利用Qt使QObject方法线程安全?

假设我们在一个QObject派生类中写了一个非const方法: class MyClass : public QObject { int x; public: void method(int a) { x = a; // and possibly other things }; }; 我们想让这个方法是线程安全的:意味着从一个任意的线程和多个线程同时调用它,不应该引入未定义的行为。 Qt提供哪些机制/ API来帮助我们使这个方法成为线程安全的? 当方法执行“其他事情”时,来自Qt的什么机制/ API可以使用? 是否有任何分类可能的“其他事情”,可以告诉什么Qt特定的机制/ API使用? 脱离主题是由C ++标准本身提供的机制,以及确保线程安全的通用/非Qt特定方法。

QCompleter自定义完成规则

我正在使用Qt4.6,我有一个QCompleBox在其中。 通常的function是提供完成提示(这些可以在下拉而不是内联 – 这是我的用法)基于前缀。 例如,给出 chicken soup chilli peppers grilled chicken 进入“ch”将匹配“鸡汤”和“辣椒”,而不是“烤鸡”。 我想要的是能够进入“ch”,并匹配所有的鸡,更具体地说,“鸡”,匹配“鸡汤”和“烤鸡”。 我也希望能够将“chs”这样的标签分配给“鸡汤”,以产生不仅仅是文本内容的另一个匹配。 我可以处理algorithm,但是, QCompleter的哪些function需要重写? 我不确定我应该在哪里寻找…

如何在Qt中高效地显示OpenCVvideo?

我在OpenCV的帮助下从networking摄像机捕获多个stream。 当我尝试从OpenCV窗口( cv::namedWindow(…) )显示这些stream,它的工作原理没有任何问题(迄今为止我已经尝试了4个stream)。 当我尝试在Qt小部件中显示这些stream时出现问题。 由于捕获是在另一个线程完成的,我必须使用信号槽机制来更新QWidget(在主线程中)。 基本上,我从捕获线程发出新捕获的帧,GUI线程中的一个插槽捕获它。 当我打开4个stream,我不能像以前一样顺利地显示video。 这是发射器: void capture::start_process() { m_enable = true; cv::Mat frame; while(m_enable) { if (!m_video_handle->read(frame)) { break; } cv::cvtColor(frame, frame,CV_BGR2RGB); qDebug() << "FRAME : " << frame.data; emit image_ready(QImage(frame.data, frame.cols, frame.rows, frame.step, QImage::Format_RGB888)); cv::waitKey(30); } } 这是我的插槽: void widget::set_image(QImage image) { img = image; qDebug() << "PARAMETER IMAGE: " […]