Articles of qt

什么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者吗?

Qt,鼠标跳过,没有更新每个像素,mouseMoveEvent()

我正在做一个简单的绘画程序。 Qt(和KDE)似乎是一个简单的实现方法。 我发现Qt很容易使用,但现在我遇到了一个问题。 当我在程序中绘制某些东西时,如果我将鼠标移动到快速,则鼠标将跳过。 喜欢这个: 它似乎像一个长长的string。 当鼠标左键被按下时,我使用mouseMoveEvent()绘制一个像素到我的图像。 我叫setMouseTracking(true); 所以只要我移动鼠标就应该调用这个事件。 void camoMaker::mouseMoveEvent(QMouseEvent *ev) { if(ev->state()==Qt::LeftButton) { QPoint mPoint=ev->pos(); mPoint.setX(mPoint.x()-80); drawPoint(mPoint); } } camoMaker是主要的部件。 drawPoint()在内部QImage上绘制一个像素,并在绘制区域的QWidget上使用QPainter。 在我看来,mouseMoveEvent()不是每一个鼠标移动像素,或鼠标实际上只是跳过一些像素的调用。 我明白,它可能只是如何工作,而不是Qt故障,但X11或操作系统如何处理鼠标位置/input。 如果是这样,我该如何去解决它,我应该尝试插入2点,获得注册?

GTK和Qt如何与Linux集成,而不是与Windows和OS X集成?

从我的理解来看,Windows和OS X上的Qt和GTK只是本地GUI库的包装,比如OS X包装Cocoa,Win32包围Windows。 但是,我的问题是,他们如何与Linux集成? 桌面环境开发人员是否必须为Qt或GTK实现特殊的库,或者它是如何工作的? 我环顾四周,但我真的找不到答案。