Articles of qt

什么时候创buildqt窗口?

如果QWidget没有父项创build,它会创build一个窗口。 那么,什么时候创build窗口? 是什么时候show()被调用? 或者当对象被构造?

未定义的引用'cvCreateKalman'

我一直在研究一个简单的Qt C ++ OpenCV应用程序,我想集成一个卡尔曼滤波器。 我包括: opencv/cv.h;opencv/highgui.h and opencv/cxcore.h; 在我的.pro文件中我有: INCLUDEPATH + = -I / usr / include / opencv LIBS + = -lopencv_core \ -lopencv_highgui \ -lopencv_imgproc 但是,当我这样做CvKalman* kalman = cvCreateKalman(8,4,0); 我只是得到未定义的参考cvCreateKalman和collect2:ld返回1退出状态。 编译输出不提供其他信息。 我尝试在网上find帮助,但谷歌并没有真正的帮助。 我也试图包括更多的OpenCV库像毫升或对象跟踪,但没有发生。 对于我来说,似乎CvKalman , CvKalman和cvCreateKalman在自动完成中可用,因为在加载原始的库之后… 任何帮助将不胜感激! 谢谢。

在Qtcreator中debugging助手不能在Linux上工作

对不起英文。 理论上,在qt-creator中debugging时显示Qt中定义的类的字段。 但它不这样做,只显示或内存地址。 我认为在GDB或Python脚本的问题。 从http://origin.releases.qt-project.org/gdb/加载的GDB给出了上面描述的内容。 我试图用configuration标志自己构buildGDB configure –prefix=<DIR> –target x86_64-linux-gnu –with-python 和 configure –target x86_64-linux-gnu –disable-nls –with-libiconv –with-expat –with-python 但是从Qtcreator开始的时候却崩溃了 我在Ubuntu 12.10 x64上运行Qt版本是4.8.4(来自Git),创build者是2.5.2(来自qt-project站点)和2.6.81(git)GDB版本:构build自己 – 7.5从qt-project下载 – 7.4.1 在Win8的主题工作正常,结合QtCreator(2.6.81)-Qt-4.8.4-MinGW-GDB-7.5(用Py。支持从源码构build自己) UPD:尝试用http://qt.gitorious.org/qt-creator/qt-creator/trees/master/dist/gdbbuild立它并没有帮助 解决scheme:Qt库不包含debuggingsimbols。 我被国旗揪住了。 它在macOS和windows(MinGW)中工作,但不在Linux中。 小心!

大文件读/写在C + +的性能问题

我正在开发一个关于Qt的应用程序。 在这个应用程序中,主线程是一个Web服务器。 另一个线程有时从大文件(250MB)读取数据,并将其写入输出文件(〜2GB)。 该线程对文件执行高I / O操作,而CPU Iowait大约为70%。 我的问题是,当写入文件时,Web服务器没有快速响应。 我所理解的是服务器的qt套接字(在Linux上)是由一个连接到poll或select事件系统的系统套接字来表示的。 所以Qt发送信号到我的应用程序只有轮询发射事件。 我认为,文件写入太大的io操作可能会阻止轮询系统,所以我的qt服务器不会收到套接字事件。 当线程完成写入数据时,一切正常。 文件的写法如下所示: while(dataToRead){ // context has the list of files to read and current step dataToRead = extractData(context, &pBuffer, &sizeBuf); fwrite (pBuffer, 1, sizeBuf, pOutFile); free(pBuffer); pBuffer = NULL; // usleep(100000); } 如果我添加rest与睡眠function,这有助于避免问题,但不完全如果我不使用一个足够大的睡眠。 但睡眠太大会破坏性能,而且我是尽快生成的文件。 我做错了什么? 尽可能快地读/写文件是安全的吗? 上述function是否强制睡眠? 但是我们怎么能知道好时光呢? 我正在使用英特尔酷睿i5 2500和标准硬盘驱动器Mint LMDE,Linux 3.2.0 64位。 编辑:重现问题的示例程序可以在这里find: […]

在RHEL 6 x64中configurationnetworkingaudio系统时出错

我试图用两种方法在RHEL 6中设置NAS(networkingaudio系统): 首先,通过RPM安装, [root@localhost ~]# rpm -Uvh nas-1.9.2-1.el6.x86_64.rpm nas-libs-1.9.2-1.el6.x86_64.rpm 它被安装,但我无法find/etc/init.d/目录中的服务。 只有/etc/nas/nasd.conf文件被创build。 如果我运行命令 [root@localhost ~]# nasd Network Audio System Release 1.9.2 Network Audio System Release 1.9.2 Init: Output open(/dev/dsp) failed: No such file or directory Fatal server error: could not create audio connection block info 其次,通过configuration由NAS站点提供的最新的tar-ball nas-1.9.3.src.tar.gz 。 但问题是一样的。 请帮助我正确地安装,因为我想获得基于qt的应用程序的audio,qt使用NAS的audiofunction。

Qtembedded式触摸屏QMouseEvents没有收到,直到MouseButtonRelease收到

我在一个带有触摸屏的小型ARMembedded式Linux设备上使用Qt 4.8.3。 我的触摸屏configuration了tslib并进行了校准,因此在/ etc /中有一个pointercal文件。 我的触摸事件的位置工作正常,但无论我在鼠标按下或鼠标释放事件之前获得鼠标移动的QEvent。 此外,我没有得到任何鼠标相关的事件,直到我的手指从触摸屏举起。 我需要在触摸屏上按下正常行为,并立即收到鼠标放下事件,然后移动事件(如果有的话),然后当我举起我的手指时发生鼠标释放事件。 So what I'm seeing from the point of view of events received when I pressed down and then release looks like: 50 SockAct <– Received right at press down <– NO Other events received until press released <– Now release by lifting finger from screen 50 SockAct […]

基于Qt的应用程序二进制兼容性问题,由于glibc版本

我在使用glibc 2.15的ubuntu 12.04 LTS上开发和构build基于QT的应用程序。 应用程序的二进制版本在一些Linux发行版上运行,但不在其他版本上运行。 其中一个主要问题是不同版本的glibc与不同的linux发行版所引起的兼容性问题。 例如,它不适用于使用glibc 2.12的centos或使用glibc 2.10的警惕小狗。 有没有办法在Ubuntu 12.04 LTS上构build一个更低版本的glibc的QT? 还是必须切换到较低版本的Ubuntu才能完成所有的开发?

如何获得Unity / Compiz中的窗口框架半径?

有没有办法让Unity窗口框架半径(Compiz窗口pipe理器)? 我应该通过parsing活动窗口主题来做到这一点? 如果是这样,我应该parsing哪些文件? 任何其他方式也被接受。 另外,如果你知道任何其他WM的解决scheme,请写下来。 我使用Qt,而且,据我所知,它不提供这样的function。 但是,如果你知道任何Qt选项,他们是首选。 在窗框半径下,我的意思是以下区域(红色,红色不包括在内): 例如,在图中,边框半径是6px,因为红色边框内的正方形边是6px。

QSystemTrayIcon并不总是显示出来

我已经写了一个小程序来在合成器(xfwm4,dcompmgr,cairo-compmgr)之间切换,以帮助处理nVidia可能遇到的video撕裂问题。 它会在系统托盘中创build一个图标,并执行其操作。 问题是,当我运行我的程序时,图标并不总是显示出来,并且在我切换到不同的合成器后,图标消失。 我已经在一个可以在这里看到的video捕获它: https : //www.youtube.com/watch?v = 31qqOiaOdfw 我正在使用:与Xfce的Manjaro Linux 64bit QtCreator v.2.8.0与Qt 5.1 有人可以帮我这个吗? compSwitcher.cpp #include "compswitcher.h" #include "ui_compswitcher.h" #include <QMenu> #include <QCloseEvent> #include <QDebug> compSwitcher::compSwitcher(QWidget *parent) : QWidget(parent), ui(new Ui::compSwitcher) { ui->setupUi(this); createActions(); createIcon(); setIcon(); qDebug() << "Before trayIcon->show()\n"; trayIcon->show(); qDebug() << "After trayIcon->show()"; } compSwitcher::~compSwitcher() { delete ui; delete trayIcon; delete […]

为Qt创build者安装doxygen插件

我正在尝试为Qt Creator( http://dev.kofee.org/ )安装doxygen插件,但是当我启动Qt Creater时,出现以下错误 Could not resolve dependency 'Core(2.8.1)' Could not resolve dependency 'CppEditor(2.8.1)' Could not resolve dependency 'CppTools(2.8.1)' Could not resolve dependency 'Locator(2.8.1)' Could not resolve dependency 'ProjectExplorer(2.8.1)' Could not resolve dependency 'TextEditor(2.8.1)' 我无法在Google中find有关这些错误的任何信息。 有谁知道如何解决它,或者任何人都可以build议其他插件?