Articles of qt

获得最顶层窗口的pid和细节

有谁知道如何获得顶部活动窗口的PID,然后如何使用PID获得窗口的属性? 我的意思是像进程名称,程序名称等属性 我在Linux下使用Qt(Ubuntu 9.10)。

命令在terminal中工作,但不通过QProcess

ifconfig | grep 'inet' 通过terminal执行时正在工作。 但不通过QProcess 我的示例代码是 QProcess p1; p1.start("ifconfig | grep 'inet'"); p1.waitForFinished(); QString output(p1.readAllStandardOutput()); textEdit->setText(output); 没有什么是显示在textedit。 但是当我在qprocess的开始只使用ifconfig时,输出显示在textedit上。 我有没有想过构build命令ifconfig | grep 'inet'任何技巧? ifconfig | grep 'inet' ,就像用' \| '和\| 为| ? 为特殊字符? 但我也试过,以及:(

Qmake中win64configuration的标识符

Qmake项目文件中是否有“win64”标识符? Qt Qmake高级文档除了unix / macx / win32以外没有提到。 到目前为止,我试过使用: win32:message("using win32") win64:message("using win64") amd64:message("using amd64") 结果总是“使用win32”。 我必须为x32和x64项目使用单独的项目文件,以便它们能够针对正确的库进行编译? 有没有其他方法可以识别32位和64位环境?

dot和dotdot是什么意思

当使用QDir :: entryList列出文件夹时,dot和dotdot是什么意思? 这对我来说并不是很明显。

如何在QT上configurationOpenSSL

我怎样才能使我的QwebView / QNetWorkRequest SSL的工作? QT返回这个错误(显然,错误发生是因为我没有在我的应用程序中configurationSSL): QSslSocket:无法parsingOPENSSL_add_all_algorithms_noconf QSslSocket:无法parsingOPENSSL_add_all_algorithms_conf QSslSocket:无法调用未parsing的函数OPENSSL_add_all_algorithms_conf 我使用Qt 5.1.1的Windows 32位(MinGW的4.8,OpenGL) – 我的窗口是64位 我会说实话,我不知道从哪里开始。 我search,但没有find任何地方显示如何与QNetWorkRequest trabalar SSL。 我安装openSslWin32(我的Windows是64位,但我的应用程序是32位),我试试这个: 亲档案: LIBS += -LC:/OpenSSL-Win32/lib -lubsec INCLUDEPATH += C:/OpenSSL-Win32/include cpp文件: #include <openssl/aes.h> 但是继续显示错误。 我知道这是缺less的东西,但不知道究竟是什么,原谅我是我的初学者。

在QT中阅读窗口的registry

我想通过从HKEY_CURRENT_USER读卸载registry文件列出所有已安装的应用程序。 但看起来不能使用QSettings,出于一些安全原因(我猜)。 QSettings maya("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall 人们build议使用WinAPI来完成这个(至less在Window平台上) 有人可以指导我如何添加和使用此lib请? 谢谢

从QItemDelegate的自定义编辑器调用getOpenFileName时发生崩溃

先决条件: 我有一个自定义的QItemDelegate,它为treeview项目创build自定义编辑器。 编辑器由QLineEdit和QToolButton组成。 该button用于打开文件对话框以select文件并将其path放入行编辑。 我使用QFileDialog :: getOpenFileName调用来打开文件对话框。 该对话框是本地Windows文件对话框(这很重要)。 编辑器第一次创build时,无论按多less次button,一切都正常。 但是在编辑器closures并重新打开之后,首先按下button会导致崩溃。 崩溃的原因是我的自定义编辑器最终被删除。 这里是一些代码: void CCustomEditor::on_RunSetupBtn_clicked() { auto qFilename = QFileDialog::getOpenFileName(this, "Select application to run", QString(), "Executable files (*.exe)"); if (qFilename.isEmpty()) return; SetCommandLine(QDir::toNativeSeparators(qFilename), m_qParameters); }

编译Windows的静态TagLib 1.6.3库

我正在编译和使用TagLib 1.6.3在我的Qt项目中超级困难。 我尝试了所有我能想到的。 TagLib声称,它是通过CMake支持,但我没有任何运气。 此外,我对我甚至需要的Qt库有什么样的文件感到困惑! 我build立了* .a文件,* .lib和* .dll。 从我了解到目前为止…我相信,因为我在Windows * .lib工作是我想要的。 无论我做什么,当我尝试编译我的Qt项目时,总会遇到“尝试使用的任何TagLib函数”的“未定义引用”。 我已经尝试过MinGW32,MSYS,Visual Studio 2008,甚至在Linux上进行交叉编译。 一切都没有了。 对我来说更没有意义的是,如果我在Mac上用Qt编译相同的TagLib源代码(g ++,我认为?),它工作的很好! 在我的Windows编译过程中,我不得不出错。 大概30(小时和上下)小时,我一直在我的桌子上盯着我的脸,试图弄清楚这一点。 由于Qt使用minGW我必须用相同的编译器编译TagLib吗? 如果我编译* .lib与Visual Studio是不兼容的? * .a库甚至可以在Windows中使用? (假设minGW) 我仍然试图处理这个C​​ ++的东西,但在阅读了无数的论坛主题和其他问题之后,我仍然不了了之。 这是我现在在CMake一直在使用的… cmake -G "MinGW Makefiles" -DENABLE_STATIC=ON -DHAVE_ZLIB=0 -DWITH_MP4=1 -DMAKE_TAGLIB_LIB=1 cmake –build ./ 这会生成大小为〜2MB的单个* .a文件。 Mac上的工作库为〜3MB,Visual Studio的* .lib在Release模式下为〜4MB。 请有人救我从这个C + +跨平台命令行疯狂,因为我在我的智慧结束。 我甚至可能会付钱给你编译一些%!$#库。 谢谢。

使用QProcessEnvironment更改cmd.exe的PATH环境variables

我想从Qt应用程序启动具有特定path的cmd.exe。 我在QProcessEnvironment中插入“path”并将该环境设置为QProcess。 然后我开始读取“cmd”。 在命令提示符下,path与调用应用程序的path相同,而不是我刚刚设置的path。 我错过了什么? 我在windows 8.1.s上使用了Qt 5.2.0与mingw和Qt-creator 3.0.0 QProcess process(this); QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); env.insert("Path", "MyPath"); process.setProcessEnvironment(env); QStringList args; args << "/D" << "/K" << "dir"; process.startDetached("cmd", args);

Qt应用程序和窗口下的图标

我已经创build了一个简单的应用程序图标通过embedded一个标准的Windows资源文件包含一个图标。 不过,我也想在我的主应用程序窗口上使用这个图标。 是否有捷径可寻? 到目前为止,似乎唯一的办法是单独加载一个包含窗口图标的图标,而不是重复使用已经存在的图标。 这似乎是一个可怕的解决scheme。 除此之外,实际图标embedded在我的可执行文件中,我不想分发两次。 有人知道怎么做吗?