Articles of qt

如何访问qt上的父窗口小部件?

我有一个inheritance的QTreeWidget(称为PackList)类,其父是一个KXmlGuiWindow。 我怎样才能访问父母的插槽? 我已经从QTreeWidget类getParent() – > mySlot(),但我已经得到了 error: no matching function for call to 'PackList::mySlot()' 有人知道正确的方法吗? 谢谢

QT版本安装不正确,请运行make install

我使用下载的qt-creator-linux-x86-opensource-2.6.1.bin安装了qt-creator sudo ./qt-creator-linux-x86-opensource-2.6.1.bin 在Ubuntu 11.04中 我尝试在QT-Creator / Build / QT-versionsconfiguration中添加QT版本,并要求提供一个qmake可执行文件。 我使用它来安装它: sudo apt-get install qt4-devel 在/usr/bin/qmake部署/usr/bin/qmake 我在QT-Creator / Build / QT-versionsconfiguration中select了Qt-4.7.2 (System) /usr/bin/qmake-qt4但QT version is not properly installed, please run make install message apears,不要在QT-Creator / Build / Kitsconfiguration中使用它。 我怎样才能解决问题一个configurationQmake的Qt创造者在项目创build中使用?

什么EXIF库我可以使用从Qt程序(在embedded式Linux)?

任何人都可以推荐一个很好的exif lib的tiff img,可以用于一个Qt程序? 我想读写EXIF数据。 请注意,我需要一个与封闭源程序兼容的许可证,因此使用LGPL或BSD样式许可证的库将非常好。 我的第一个计划是在Qt扩展中使用QExifImageHeader和QExifValue ,但后来我注意到,扩展从来没有得到LGPL许可证,最重要的是,它已经停产 …. 使用的平台是embedded式Linux。 感谢Johan 更新 : 既然我为这个问题增加了一个赏金,我正在改进这个问题,即将来自Qt程序的tiff图像添加exif数据。 一个很好的使用lib和如何使用它的例子将是非常好的。

在QMake中设置RPATH命令

我有一个Linux Qt程序。 如果它们存在,我希望它优先使用可执行文件目录中的(dynamic)Qt库,否则使用系统的Qt库。 RPATH救援。 我将这行添加到qmake的.pro文件中: QMAKE_LFLAGS += '-Wl,-rpath,\'\$$ORIGIN\'' 并用readelf看结果可执行文件我看到: 0x000000000000000f (RPATH) Library rpath: [$ORIGIN:/usr/local/Trolltech/Qt-5.2.0/lib] 0x000000000000001d (RUNPATH) Library runpath: [$ORIGIN:/usr/local/Trolltech/Qt-5.2.0/lib] 看起来是正确的,但ldd显示它使用的是系统版本: libQt5Core.so.5 => /usr/local/Trolltech/Qt-5.2.0/lib/libQt5Core.so.5 (0x00007f2d2fe09000) 如果我手动编辑qmake生成的Makefile以交换两个rpath的顺序,那么$ ORIGIN在/ usr / local / …之后,我得到正确的行为: 0x000000000000000f (RPATH) Library rpath: [/usr/local/Trolltech/Qt-5.2.0/lib:$ORIGIN] 0x000000000000001d (RUNPATH) Library runpath: [/usr/local/Trolltech/Qt-5.2.0/lib:$ORIGIN] libQt5Core.so.5 => ./libQt5Core.so.5 (0x00007fb92aba9000) 我的问题是如何qmake构造最终的LFLAGSvariables。 我无法弄清楚如何使它添加($ ORIGIN)在系统库之后。 有任何想法吗?

在linux上安装Qt,找不到-lGL

我很难在Linux上安装Qt。 我在网站上下载了.run文件并安装了Qt。 但是,当我尝试使用Qtcreator编译默认的Hello World项目时,我得到以下内容: error cannot find -lGL 我能够通过发出命令来解决问题: sudo apt-get install libqt4-dev 但是,我不满意的解决scheme,因为我想使用Qt5和我下载的库的名称意味着版本4.有人可以解释发生了什么,并告诉我,如果我的解决scheme是正确的? 如果没有,我应该怎么做才能在Linux上运行Qt。 附加问题 LtWorf提供的正确答案是安装libgl-dev 。 对于将来的这类问题,有人可以告诉我,我应该怎么猜测,我不得不下载这个特定的图书馆? 为什么最后还有一些带有-dev的库? 他们提供什么?

如何从C ++ / Qt Linux应用程序中逐行读取FIFO /命名pipe道?

如何从C ++ / Qt Linux应用程序中逐行读取FIFO /命名pipe道? 今天我可以从Qt程序的fifo中打开和读取,但是我不能让程序逐行读取数据。 Qt读取整个文件,意味着等待“发件人”closures会话。 让我们以一些shell命令为例来展示我想要的应用程序。 先创build一个fifo mkfifo MyPipe 然后我们可以用猫从fifo读取 cat MyPipe 然后我们发送一些数据与另一只猫 cat > MyPipe 然后开始input一些东西,每次你input它就会到达读者。 然后用Ctrl + Dclosures它,双方结束。 现在,发送者很容易用QTextStream创build,你只需要在发送时刷新。 QFile file("MyPipe"); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) return; QTextStream out(&file); for(int i=0; i<3; i++) { out << "Hello…: " << i << "\n"; out.flush(); sleep(2); } file.close(); 但是,然后写一个逐行阅读的小读者是我现在卡在哪里,我所有的Qt库的尝试结束了,我得到的数据,但直到发件人在fifo上使用file.close() 。 不是当他冲水时,就像我用猫读书时发生的那样。 像这样的例子: QFile […]

Debian启动没有桌面的Qt GUI应用程序

我有Debian 2.6运行在我打算在embedded式设置中使用的SBC上。 我需要做的就是configuration它,以便linux启动并运行我的Qt GUI应用程序。 我需要一个窗口pipe理器来做到这一点,或者我可以用X11做到这一点。 另外,因为这将是一个embedded式系统,我不想加载任何桌面pipe理器。 任何关于如何做的信息都会很棒!

如何静态构buildQt 5

我在Linux环境下使用基于Qt 5.0.1的Qt Creator 2.6.2。 该应用程序在我编译的计算机上工作正常,但是当我在另一台计算机上执行它时,出现如下错误: error while loading shared libraries: libQt5WebKitWidgets.so.5: cannot open shared object file: No such file or directory error while loading shared libraries: libxslt.so.1: cannot open shared object file: No such file or directory 我在这个链接find了一些解决scheme(一些链接已经死了)。 所以我添加到我的.pro文件这一行: CONFIG += static 要静态编译我的项目。 我以为我会得到的文件会更大,但我得到相同的大小和相同的错误。 谢谢。

可启动的Qt-Linux应用程序

如何启动一个Linux内核+依赖和自动运行一个Qt应用程序,所以Linux环境不显示(只有Qt GUI是可见的)? 在x86电脑上 应该可以从RAM运行(当然)

gdb程序使用CMake程序退出代码01

我正在使用科学的Linux。 我正在处理大量的C ++代码和大量的cpp文件。 现在,它编译成功,但我得到的价值/数据是绝对错误的。 另外,我对代码做了一些小的修改,导致了seg错误。 在目录user/project/Build ,inputmake来编译并链接所有的cpp文件。 然后我必须通过inputuser/run/run.sh来到user/project/Build/bin/project来运行项目二进制user/run/run.sh 当我进入目录/user/project/Build/bin ,然后键入gdb project然后run ,我看到Program exited with code 01. Missing separate debuginfos, use: debuginfo-install glibc.. 如果我尝试设置一个断点,例如通过break test.cpp:19 ,我得到消息No source file named test.cpp. Make breakpoint pending on future shared library load? No source file named test.cpp. Make breakpoint pending on future shared library load? 但我清楚地有一个名为test.cpp的源文件 我怎样才能设置断点? 考虑到我是Unix的初学者,我应该使用另一个IDE,比如emacs或Qt创build者吗?