Articles of qt

使用MSVC2010使用/ MT编译静态QT库

我正在试图静态构buildQT库和/ MT(运行时静态链接)。 我按照下面的步骤进行:1.在qmake.conf文件中,在release和debugconfiguration中修改/ MD到/ MT 2.运行configure命令,如下所示:configure -static -opensource 3.运行nmake 问题是nmake在运行几秒后失败。 这是最后的输出: [……….] qjson.cpp qjsondocument.cpp qjsonobject.cpp qjsonarray.cpp qjsonvalue.cpp qjsonparser.cpp qjsonwriter.cpp Generating Code… cl -c -nologo -Zm200 -Zc:wchar_t -O2 -MT -W3 -w34100 -w34189 -GR -DUNICO DE -DWIN32 -DQT_BOOTSTRAPPED -DQT_LITE_UNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_COD ECS -DQT_NO_DATASTREAM -DQT_NO_LIBRARY -DQT_NO_QOBJECT -DQT_NO_SYSTEMLOCALE -DQT _NO_THREAD -DQT_NO_UNICODETABLES -DQT_NO_USING_NAMESPACE -DQT_NO_DEPRECATED -DQT _NO_TRANSLATION -DQT_QMAKE_LOCATION=\"F:/utils/Qt/5.0.0/Src/qtbase/bin/qmake\" – DQT_NO_CAST_FROM_ASCII -DQT_BUILD_BOOTSTRAP_LIB […]

使用QProcess获取所有正在运行的进程信息

前几天我问如何使用QProcess获得系统中所有正在运行的进程。 我发现了一个可以输出所有进程到一个文件的命令行: C:\ WINDOWS \ system32 \ wbem \ wmic.exe“/OUTPUT:C:\ProcessList.txt PROCESS get Caption 这将创buildC:\ ProcessList.txt文件,其中包含系统中正在运行的所有进程。 我不知道如何运行它使用QProcess并将其输出到一个variables。 似乎每次我尝试运行它,并没有发生任何事情发生: QString program = "C:\\WINDOWS\\system32\\wbem\\wmic.exe"; QStringList arguments; arguments << "/OUTPUT:C:\\ProcessList.txt" <<"PROCESS"<< "get"<< "Caption"; process->setStandardOutputFile("process.txt"); process->start(program,arguments); QByteArray result = process->readAll(); 我宁愿不要创buildprocess.txt,并把所有的输出到一个variables…

在Windows中添加Bonjour(dns_sd.h)库到Qt

我一直在试图正确地添加由Apple提供的开源dns_sd.h库。 我正在编写一个使用BonjourRegistrar类的程序,如下所示: 链接文本 我已经在Mac环境下编写了我的程序,现在我试图将它移植到Windows。 Bonjour SDK附带了几个类,我很困惑如何正确地添加类到我的Qt项目。 我已经尝试添加行: win32:LIBS += c:\dnsssd.lib 在.pro文件中没有成功。 此外,我试图添加dns_sd.h和dns_sd.c文件到我的项目中,并得到了一些错误,如: 'UINT8':不命名一个types'INT8':不命名一个types'UINT16'不命名一个types'INT16'不命名一个types 最后,我现在试图修改这个链接文本中由xcimo描述的lib文件 我不知道我是否使用正确的命令来正确修改这些文件。

OpenCV和Qt VideoCapture不能在Windows上打开正确的摄像头

我正在使用opencv和Qt创build一个应用程序。 在应用程序内部,我创build了一个loggingvideo的小工具。 由于这个原因,而不是阻塞主事件线程,我创build了一个单独的对话框,其中包含一个logging线程。 在这个线程初学者,我只想看到相机输出(我还没有介绍录音代码)。 所以我subclassed QThread和run()函数如下: void VideoRecordThread::run(){ cv::VideoCapture capture; cv::Mat frame; QImage img; qDebug() << "Opening camera" << cameraIndex ; capture.open(cameraIndex); if(!capture.isOpened()){ qDebug() << "Could not open camera" << cameraIndex; emit threadReturned(); return; } while(!stopFlag){ capture >> frame; qDebug() << "Frame Width = " << frame.cols << "Frame Height = " << frame.rows; if(frame.cols […]

运行时错误链接在qt创build者的ffmpeg库

我在这里很新,但我听说如果你想要一个问题的答案,stackoverflow是要求它的地方。 所以我希望我的问题不是微不足道的,每个人都会因为缺乏研究而感到烦恼(我已经试了两天google了,D =没有进展!)我也在Qt论坛上问过这个问题,但是我想我也会在这里问。 所以… 在过去的几天里,我一直在摆弄opengl之类的东西,试图写一个video播放器。 但是,当我尝试导入ffmpeg库(avcodec,avformat,avutils等)时,运行时发生错误(程序编译正常)。 编译和运行在debugging模式下时,错误消息只给我一个内存地址和错误代码135(找不到DLL)。 这个错误发生时,我从我的代码(例如av_register_all())中的这些库中包含一个函数,并且不pipe函数是否被实际调用。 所以我想连接这些库时我做错了什么。 我目前使用的是:Windows vista(32位),基于Qt 4.7.4(32位)的Qt Creator 2.4.1,Zeranoe的FFmpeg build git-3233ad4(2012-06-30) 我的.pro文件包含: QT += core gui opengl TARGET = test TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp \ glwidget.cpp HEADERS += mainwindow.h \ glwidget.h \ FORMS += mainwindow.ui LIBS += -L"$$_PRO_FILE_PWD_/libraries/ffmpeg/libs/" -lavcodec -lavformat -lavutil INCLUDEPATH += libraries/ffmpeg/includes 我已经尝试了许多变化的LIBS + =行,并检查了我的文件path多次。 […]

如何在Qt中将Windows项目导入Ubuntu?

我在Windows上编写了一个使用Qt SDK的应用程序。 我现在想在Ubuntu上运行该应用程序做一些小的修改(例如,当用户点击保存时更改默认目录)。 有没有办法做到这一点,最好通过Qt Creator? 谢谢。

使用Qt5(来自WId)在windows上获取HWND

我正试图将Qt4应用程序转换为Qt5。 唯一我无法弄清楚的是如何获得Widget的HWND 。 该程序使用EcWin7来显示任务栏图标上的胜利7 +的进展,但期望一个HWND 。 在将Q_WS_WIN更改为Q_OS_WIN之后,lib本身似乎编译正常)在Windows上的Qt4中,只是HWND的一个typedef,所以这没有问题。 在Qt5中,情况并非如此。 我发现了一些邮件列表发布 ,可能会提供一个线索,但似乎QPlatformNativeInterface不再是Qt5的公共API的一部分。 该程序调用EcWin7.init(this-> winId()); 我需要一些方法来将此ID转换为HWND ID或其他方式来获得这个。

如何检测Qt中的全局按键顺序?

我想要检测一个按键序列是否被按下,并想要在Qt中执行某个任务。 目前,我可以检测某些小部件的按键,但是如何检测全局按键。 就全球而言,我的意思是即使应用程序被最小化或隐藏,也应该检测按键。 我试着为应用程序做一个eventFilter ,首先像这样重载QObject::eventFilter : bool GlobalEventFilter::eventFilter(QObject *Object, QEvent *Event) { if (Event->type() == QEvent::KeyPress) { QKeyEvent *KeyEvent = (QKeyEvent*)Event; switch(KeyEvent->key()) { case Qt::Key_F1: cout<<"F1 press detected"<<endl; return true; default: break; } } return QObject::eventFilter(Object,Event); } 然后安装该对象作为我的应用程序的eventFilter : QApplication a(argc,argv); a.installEventFilter(new GlobalEventFilter()); 我也试过这样做: QCoreApplication::instance()->installEventFilter(new GlobalEventFilter()); 在这两种情况下,我都能够在应用程序窗口打开时检测按键,但在窗口最小化或隐藏时失败。 如何解决这个问题?

编译Windows 98的Qt

我需要支持Windows 98.Qt文档声称这是可能的,但没有说明。 Qt 4.6的分布式二进制文件不能在Win98上运行,我所采样的大多数Qt应用程序也不会。 对于在98上运行的几个应用程序,我已经问作者他们是如何做到的,但常见的答案是这是偶然的,他们不知道是什么原因造成的。 在寻求帮助的论坛,我发现只有猜测,结果是错误的。 例如,一个想法是,为了编译Win9x,您必须在该平台上构build工具和应用程序。 然而,我发现运行的东西是build立在更新版本的Windows上的。 为Win98构buildQt开发工具和应用程序需要什么? 如何从WinXP或Linux交叉编译? 有没有特定的组件不能在Win98上运行? 对于Win98支持,dynamic链接或静态链接有特殊的困难吗?

如何将QString转换为LPCSTR(Unicode)

我怎样才能将QString转换为LPCSTR? 当#ifdef UNICODE被定义时,我怎么做? 非常感谢 :)