Articles of qt

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 […]

在QT5中从QPixmap获取HBITMAP(Windows)

现在,QPixmap :: toWinHBITMAP()已被弃用,我无法find从QPixmap(或QImage)获取HBITMAP的方法。 谷歌search,我发现有一个函数称为qt_pixmapToWinHBITMAP()这似乎将做我所需要的,但我找不到什么模块,我应该启用 – 如果任何 – 在我的.pro文件或什么头,我应该包括使用它,或者也许是别的。 我需要一个HBITMAP的原因是使用VFW创build一个video。 当然,我希望只能用Qt来做到这一点。 有QtMultimedia模块,但据我可以告诉它不导出video,所以我想我坚持使用Windows API直接。 任何帮助,将不胜感激。

hello world没有输出 – Qt SDK 2010 – Mingw(gcc 4.6.3) – WindowsXP

Qt: qt-sdk-win-opensource-2010.01 Mingw: 1686-mingw32-gcc-4.6.3-release : .pro文件: TEMPLATE = app TARGET = SOURCES += ef.cpp DEPENDPATH += . INCLUDEPATH += . .cpp : #include <stdio.h> int main(int argc, char *argv[]) { printf ("\nhjhjk\n"); } 编译和可执行输出如下: 在debug文件夹中创build名为temp的可执行文件和名为ef.o的目标文件。 我已经按照此处所述编辑了qmake.conf文件。 打印语句不打印。 请帮忙。

QML缩放不适用于非整数比例因子

我正在使用QML编写一个应用程序。 当我通过非整数因子缩放我的GUI时遇到了麻烦。 根据文档 , Qt::AA_EnableHighDpiScaling应该启用与设备无关的像素,因此会自动处理大部分缩放: 在Qt 5.6中引入的应用程序属性Qt::AA_EnableHighDpiScaling可以根据显示器的像素密度自动缩放。 在一篇关于5.6的博客文章中 ,他们承认可能存在一些问题: 问:是否支持非整数比例因子? 答:Qt在API中使用了qreal,并允许通过QT_SCALE_FACTOR设置非整数比例因子。 但是,Qt并不保证在这种情况下graphics和样式将无故障。 风格可能会首先打破:融合风格通常最具可扩展性。 Qt平台将报告的比例因子四舍五入到最接近的整数。 并在评论中: 问:这是否意味着它仍然是有效的整数? Windows有150%的DPI规模会发生什么? 答:是的,除非您使用QT_SCALE_FACTOR手动设置/更正。 那么150%应该去2倍。 所以对于我来说,当缩放到150%时,这会导致一个非常大的GUI。 但是,正确的文字会导致怪异的文物,如小文字大button。 我误解了这是如何工作的,还是真的不可能呢?