Articles of qt

如何在Qt中执行复杂的Linux命令?

我想通过使用QProcess在Linux中运行一个命令重新启动计算机。 我在我的应用程序中硬编码了我的root密码。 当我在terminal中运行以下它完美的作品: echo myPass | sudo -S shutdown -r now 当我把命令放在一个shell脚本中并通过QProcess调用它时,它也是成功的: QProcess process; process.startDetached("/bin/sh", QStringList()<< "myScript.sh"); 但是我不能通过直接传递给QProcess来运行它: process.startDetached("echo myPass | sudo -S shutdown -r now "); 它只会打印myPass | sudo -S shutdown -r now myPass | sudo -S shutdown -r now 如何直接使用QProcess来运行这样相对复杂的命令? (不要把一个shell脚本)。

用Qt显示WebCamvideo

我正在Linux Gnome(Ubuntu 9.04)上使用Qt 4.5(2009.03),并希望在我的Qt应用程序的Phonon :: VideoWidget中显示由我的摄像头捕获的video。 我有一个使用v4l2 API的第一个实现,在这里我进行YUV2到RGB的转换,并填充一个我自己的QImage。 它运作良好,但效率不高。 同事使用gStreamer做同样的事情,速度要快得多。 从那时起,我发现了声子,并想使用它。 除了绑定到networking摄像头设备作为源,所有configuration和设置。 我应该创build一个MediaSource对象,但我不知道如何configuration它。 任何帮助将是非常有价值的。 编辑: 声音概述解释说,它尚未支持。 但我需要一个解决scheme。

qmake .pro文件未正确parsing以生成LD_LIBRARY_PATH

我一直在努力在最后几天了解如何qmake作品买我卡住了。 我想要一个具有以下结构的项目: 根 箱子 testjson LIB libjson.so SRC testjson.cpp 我想要的只是testingjson库。 我已经在Qt Creator 2.3.0中创build了一个新的空项目,并设置了所有的设置,以便可执行文件运行。 testing了我想要的并closures了应用程序。 后来,当我再次打开Qt Creator的时候,我加载了.pro文件,当我尝试运行这个项目的时候,我得到这个消息:“没有指定可执行文件”。 :| 在这种情况下,我去了项目选项卡,并手动select可执行文件,但正如所料,当我试图运行它,我得到这个消息“加载共享库时出错:libjson.so:无法打开共享对象文件:没有这样的文件或目录“。 因为没有设置LD_LIBRARY_PATH(这就像我从cli运行它),所以期待。 它看起来像.pro文件没有被正确parsing,因为第一次,在我select运行选项卡的项目选项卡上,我会看到一条消息:“parsing.pro文件”,然后运行configuration将得到填充,并且变灰,所以这意味着在parsing.pro文件之后,Qt Creator添加了LD_LIBRARY_PATH。 现在我的任务是:为什么第一次正确parsing.pro文件? 这是.pro文件: !include(../../common.pri){ error(Couldn't find the common.pri file!) } TEMPLATE = app SOURCES += testjson.cpp CONFIG += console TARGET = testjson CONFIG(release, debug|release) { DESTDIR = $$BinaryDir/Release } else { DESTDIR = $$BinaryDir/Debug } […]

在Linux上使用Eclipse的qt开发?

在Linux中,我如何在Eclipse中创buildQT应用程序? 我已经在eclipse.org中看到了一些集成插件,但是看起来它们已经停产并且不再被支持。 由于我要开发一个可能从现在开发几年的项目,所以我想为此寻找一个合适的解决scheme。

如何访问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 […]