Articles of qt

如何使用Qt-Creator部署我的应用程序?

我试图部署我的简单的Qt项目像一个世界你好。 我成功构build它,也可以在Qt-Creator上执行它。 但是,由于某些共享库错误,我无法直接在发布文件夹中执行二进制文件。 所以我只是复制一些必要的图书馆到释放文件夹,如qtcore.dll和qtgui.dll,但我不能仍然执行它。 我怎样才能部署我的简单的Qt项目? 是否有另一个步骤来部署它?

将Windows PRIVATEKEYBLOB转换为Qt的QSslKey

我正在使用SSLencryption的Qt应用程序(Windows服务)。 我需要从Windows证书存储中访问证书和关联的私钥,并使用setLocalCertificate和setPrivateKey分别接受QSslCertificate和QSslKey将其传递给我的QSslSocket。 我能够从商店获取证书,并使用Windows API(CertOpenStore,CertFindCertificateInStore)将其设置为QsslSocket。 现在,我有证书,我需要提取其私钥,并设置为ssl套接字。 我正在使用CryptAcquireCertificatePrivateKey,CryptGetUserKey和CryptExportKey Windows API以相同的顺序,这给了我一个Microsoft PRIVATEKEYBLOB,现在我需要将其转换为QSslKey理解的格式。 我怎么做?

C ++ – 如何隐藏其他应用程序的窗口

我正在尝试创build一个软件(Qt / C ++)。 其中我需要一个隐藏其他应用程序窗口基于其窗口标题的function。 隐藏手段隐形不能最小化。 任何人都可以说如何做到这一点? 我目前正在Windows平台上工作。 注意:如果你通过Qt提供了一个解决scheme,它会给你更多的安慰。 因为它提供了平台独立性。

OpenSSL和multithreading

我一直在阅读有关如果在multithreading应用程序中使用OpenSSL的要求,您必须使用OpenSSL注册一个线程标识函数(以及一个互斥体创build函数)。 在Linux上,根据OpenSSL提供的例子,一个线程通常是通过注册一个这样的函数来标识的: static unsigned long id_function(void){ return (unsigned long)pthread_self(); } pthread_self()返回一个pthread_t,这在Linux上可行,因为pthread_t只是一个unsigned long的typedef。 在Windows pthreads,FreeBSD和其他操作系统上,pthread_t是一个结构体,结构如下: struct { void * p; /* Pointer to actual object */ unsigned int x; /* Extra information – reuse count etc */ } 这不能简单地转换为无符号长整型,当我尝试这样做时,会抛出一个编译错误。 我尝试了void * p并将其转换为无符号长整型,理论上内存指针应该在线程间是一致且唯一的,但是这只会导致我的程序崩溃。 当使用Windows pthreads或FreeBSD或任何其他类似的操作系统时,我可以使用OpenSSL注册哪些线程识别function? 另外,还有一个问题: 有谁知道这是否也需要完成,如果OpenSSL编译进去,并与QT一起使用,如果是的话如何注册与OpenSSL的QThreads? 令人惊讶的是,我似乎无法在QT的文档中find答案。

如何样式QPushButton的选中状态,以消除灰点?

我正在使用Qt 5.3.0。 当我在QPushButton的选中状态上应用一些背景颜色时,button将被填充灰色点(在我想要的背景颜色上)。 这里是一个小小的testing程序(使用qtcreator,但也可以通过编码来完成):1,创build一个qt应用程序2,拖动一个QPushButton,将其设置为平坦并可检查3,在w.show()之前添加这些行 w.setStyleSheet("\ QPushButton { \ color:white; \ } \ QPushButton:checked{\ background-color: rgb(80, 80, 80);\ }\ QPushButton:hover{ \ background-color: grey; \ border-style: outset; \ } \ "); 4,运行应用程序并检查button 你会看到button变成虚线,但我需要选中的button,作为rgb(80,80,80)的纯色。 我错过了什么?

如何创build一个HWND作为父母的QWidget?

用wxWidgets我使用下面的代码: HWND main_window = … … wxWindow *w = new wxWindow(); wxWindow *window = w->CreateWindowFromHWND(0, (WXHWND) main_window); 我如何在Qt中做同样的事情? HWND是我想要作为新QtWidget的父窗口的窗口句柄。

qmake命令将文件和文件夹复制到输出目录

我正在开发一个应用程序,应该build立在Windows,Linux和OS X使用QtCreator和Qt 5.3。 我想要将文件夹中的所有文件和子文件夹复制到输出文件夹中。 我已经为Linux和OS X工作,但不适用于Windows。 这是我的.pro文件的相关部分: win32 { PWD_WIN = $${PWD} DESTDIR_WIN = $${OUT_PWD} copyfiles.commands = $$quote(cmd /c xcopy /S /I $${PWD_WIN}\copy_to_output $${DESTDIR_WIN}) } macx { copyfiles.commands = cp -r $$PWD/copy_to_output/* $$OUT_PWD } linux { copyfiles.commands = cp -r $$PWD/copy_to_output/* $$OUT_PWD } QMAKE_EXTRA_TARGETS += copyfiles POST_TARGETDEPS += copyfiles 我在Windows上得到的错误是“无效的参数数量”。

Windows,Mingw Qt应用程序不能在部署的计算机上运行

我已经与Mingw创build了一个Qt应用程序。 将所需的DLL复制到目录后,应用程序在开发计算机上正常运行。 但是,在外部计算机上部署时,应用程序根本不运行。 更新:另外,应用程序通过QtSql使用Sqlite3。

如何为Qt应用程序创build可执行文件?

我一直在网上寻找有关这方面的有用和清楚的信息,这很烦人,这样一个微不足道的事情是很难做到的。 我需要的是为我的Qt项目创build一个可执行文件,以便在其他计算机上运行它。 我的项目在Qt Creator中运行得很好,但是当我尝试运行在release文件夹中创build的可执行文件时,我得到了关于某些dll缺失的错误,尽pipe我已经将它们全部放在我的.exe目录中,关于在DLL(QtCore4.dll)中的过程中入口点的错误。 该解决scheme看起来像一个静态链接,我发现了很多关于它的信息,但没有一个真正帮助我。 这是我迄今为止所尝试的: 正如我上面所说的,使用release文件夹中创build的可执行文件。 静态链接,按照这个教程(和其他许多人一样,都是几乎相同的东西): http : //doc.qt.io/qt-4.8/deployment-windows.html但是在“configure -static” :NMAKE:致命错误U1077:'“c:\ Arquivos de programas \ Microsoft Visual Studio 9.0 \ VC \ BIN \ cl.EXE”':返回代码'0x2'停止。 build立qmake失败,返回代码2 为此,我无法find任何解决scheme,所以在这里,我只是想为我的Qt项目创build一个可执行文件,希望你们能在这里给我点启发。

Qt:windows函数是无法parsing的外部符号

我想在QtCreator中使用te WinAPI编译一个简单的类似于helloworld的非Qt C ++应用程序。 代码如下: #include <windows.h> int main() { HWND cons = GetConsoleWindow(); SetWindowText(cons, L"I am the console window"); MessageBox(cons, L"Hello world!", L"I am the MessageBox", MB_OK | MB_ICONERROR); return 0; } 看起来很简单,但是当我试图build立它时,编译失败: main.obj:-1: error: LNK2019: unresolved external symbol __imp__MessageBoxW@16 referenced in function _main main.obj:-1: error: LNK2019: unresolved external symbol __imp__SetWindowTextW@8 referenced in function […]