Articles of qt

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。 我误解了这是如何工作的,还是真的不可能呢?

在Windows上部署Qt 5应用程序

我已经在QML中编写了几个应用程序(Qt 5的一部分)。 在我之前提出的问题中( https://softwareengineering.stackexchange.com/questions/213698/deploying-qt-based-app-on-mac-os-x ),我find了部署我的应用程序的解决schemeOS X(使用macdeployqt工具)。 在Windows上部署Qt4应用程序非常简单: 你编译它在发布模式。 您复制了必要的库(DLL)。 你testing过,它的工作。 不幸的是,这种方法在Qt5中无法正常工作(我甚至在qwindows.dll文件中包含了平台文件夹,但它不起作用)。 经过几天的尝试,我放弃了编译Qt5的静态版本。 再次,它没有工作。 该应用程序在安装了Qt的PC上运行,但是在“干净的”PC上崩溃。 作为一个侧面说明,Windows 8 / 8.1系统不会给出关于应用程序崩溃的警告或消息。 但是在Windows 7中,有消息告诉我应用程序崩溃了。 我试过运行Dependency Walker(depend.exe),我的应用程序的静态构build中的所有库看起来都很好。 在Windows 8中,我没有得到任何错误。 但是在使用depends.exe分析应用程序之后,我得到了源自QtGui.dll的访问冲突。 确切的错误是 地址0x61C2C000处的“QT5GUI.DLL”中发生第二次机会exception0xC0000005(访问冲突)。 有什么,我失踪(说一个额外的DLL或configuration文件)? 应用信息: 用Qt 5.2.1编写和编译 使用Quick / QML。 使用networking模块。 使用webkit模块。 使用蓝牙模块。 QML文件是用Quick 2.2编写的

make不被识别为内部或外部命令 – Qt SDK – Windows

我通过Qt-SDK 2010.01安装了Qt 。 如何在Qt的terminal上运行make ? 我已经设置了系统path: Qtpath命令提示符: 请帮忙。 🙁 🙁

与MinGw或视觉工作室的Windows Qt?

我正在编译qt,并且面临着使用MinGw还是Visual Studio编译器的两个select? 它们之间有什么区别,使用其中一个有什么优点/缺点?

相对文件path的差异:Qt Creator的debugging模式和释放模式

QFile file("test.txt"); if (file.open(QIODevice::ReadOnly)) { qDebug()<<"You got me."; } 我在用: Qt 4.8.6与MSVC 2010 Qt Creator 3.1.1 Windows 7(32位) 从上面的代码, 如果.pro文件没有被改变 ,相应的build目录 对于debugging模式 : D:\…\build-Main-MSVC2010-Debug 并且debugging模式的.exe将位于 D:\…\build-Main-MSVC2010-Debug\debug 对于发布模式 : D:\…\build-Main-MSVC2010-Release 并且释放模式的.exe将位于 D:\…\build-Main-MSVC2010-Release\release [题] 如果我想让发布程序读取“test.txt”文件,我把文件放在文件夹中 D:\…\build-Main-MSVC2010-Release\release 这是有道理的。 但是,如果我想让debugging程序读取“test.txt”文件,我必须把文件放在文件夹中 D:\…\build-Main-MSVC2010-Debug\ 而不是 D:\…\build-Main-MSVC2010-Debug\debug 我想知道为什么相对的文件path在debugging和发布模式下工作不同,它一直困扰我很长一段时间。 [编辑] 感谢@Paul和@lpapp。 以下是工作目录的截图: debugging: 发布: [非常重要的编辑] 对于@Paul和@lpapp: 我以前需要将.dll复制到release文件夹才能testing运行时间,而我只是发现如果我通过Qt Creator执行发布程序 ,那么工作目录就像你所说的那样工作。 但是,如果我直接点击发布文件夹中的.exe,情况将如我在问题中所说的那样。 我认为从Qt Creator运行程序和直接执行程序可能会有所不同。