win qt的QAppliction库英雄联盟qt在哪里里

c++ - Moving from Qt 4.x (Ubuntu Linux) to Qt 5.1 (Windows 7) - Stack Overflow
to customize your list.
Join the Stack Overflow Community
Stack Overflow is a community of 6.5 million programmers, just like you, helping each other.
J it only takes a minute:
I made a program by using Qt Creator in Qt 4.x on an Ubuntu Linux platform in the last year. Now I don't use linux, instead I use Windows 7. I once again need my program which I made last year. I downloaded and installed Qt Creator onto Windows 7 platform. It came with Qt 5.1. I try to rebuilt it. I got below messages. What should I do?
C1083: Cannot open include file: 'QtGui/QApplication': No such file or directory
C1083: Cannot open include file: 'QDialog': No such file or directory
In Qt5 QApplication is no longer part of QtGui module, it's now in QtWidgets. In your #include directive use &QtWidgets/QApplication&, the same applies to QDialog.
Use this in your .pro file.
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
The Qt modules have been
somewhat in Qt5.
Also this will teach for leaving Linux!
14.6k43764
There's a good guide on what has changed from QT 4.x to 5.x
Your Answer
Sign up or
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Post as a guest
By posting your answer, you agree to the
Not the answer you're looking for?
Browse other questions tagged
Stack Overflow works best with JavaScript enabled获取HWND的窗户QT5(从WID)-c++,windows,qt,qt5-CodeGo.net
获取HWND的窗户QT5(从WID)
我想要一个的Qt4应用程序转换为QT5。
我无法弄清楚的事情就是如何让一个控件的HWND。
该EcWin7显示上的Win 7 +任务栏图标的进展,但需要一个HWND。该库本身似乎罚款后改变* Q_WS_WIN *到* Q_OS_WIN *)
在Qt4的Windows上WID只是一个typedef为HWND,所以这是没有问题的。
在QT5这是不是问题了。
我发现邮件列表中,可以给一个线索,但它似乎QPlatformNativeInterface不是QT5的公共API的一部分了。
程序调用EcWin7.init(这-& winId());,我需要去这ID转换成HWND的ID或其他方式获得的。
本文地址 :CodeGo.net/537679/
-------------------------------------------------------------------------------------------------------------------------
1. 在QT5winEvent被替换nativeEvent:
bool winEvent(MSG* pMsg, long* result)
bool nativeEvent(const QByteArray & eventType, void * message, long *result)
而在EcWin7::winEvent你必须投void至MSG:
bool EcWin7::winEvent(void * message, long * result)
MSG* msg = reinterpret_cast&MSG*&(message);
if (msg-&message == mTaskbarMessageId)
我能去上班的应用程序!只需更换:
mWindowId =
mWindowId = (HWND)
#include &QtGui/5.0.0/QtGui/qpa/qplatformnativeinterface.h&
static QWindow* windowForWidget(const QWidget* widget)
QWindow* window = widget-&windowHandle();
if (window)
const QWidget* nativeParent = widget-&nativeParentWidget();
if (nativeParent)
return nativeParent-&windowHandle();
HWND getHWNDForWidget(const QWidget* widget)
QWindow* window = ::windowForWidget(widget);
if (window && window-&handle())
QPlatformNativeInterface* interface = QGuiApplication::platformNativeInterface();
return static_cast&HWND&(interface-&nativeResourceForWindow(QByteArrayLiteral("handle"), window));
您可以尝试:
(HWND)QWidget::winId();
我搜索了一整天为搞清楚这个问题。基本上,我发现三个建议的解决方案:
static QWindow* windowForWidget(const QWidget* widget)
QWindow* window = widget-&windowHandle();
if (window)
const QWidget* nativeParent = widget-&nativeParentWidget();
if (nativeParent)
return nativeParent-&windowHandle();
HWND getHWNDForWidget(const QWidget* widget)
QWindow* window = ::windowForWidget(widget);
if (window)
QPlatformNativeInterface* interfacep = QGuiApplication::platformNativeInterface();
return static_cast&HWND&(interfacep-&nativeResourceForWindow(QByteArrayLiteral("handle"), window));
HWND getHWNDForWidget(const QWidget* widget)
QWindow* window = ::windowForWidget(widget);
if (window)
QPlatformNativeInterface* interfacep = QGuiApplication::platformNativeInterface();
return static_cast&HWND&(interfacep-&nativeResourceForWindow(QByteArrayLiteral("handle"), window));
HWND hWnd = (HWND)this-&winId();
在我的笔记本电脑,Win8的64倍,VS2010,QT5.0.1,我已经尝试了所有这些,但只有第三种可以得到正确的HWND。我验证返回的HWND通过打印相关的进程ID用下面的代码在Windows任务所示:
GetWindowThreadProcessId(hWnd, &dwWndProcID);
printf("WinID %d\n", dwWndProcID);
然而,当我尝试这样做的HWND发送到从其他函数发送。我不能接受的
bool winEvent(MSG* pMsg, long* result)
它seam的永远不会奏效。是否有任何人有任何关于如何使它工作的任何想法?
试试这个函数:QWindowsNativeInterface::nativeResourceForWindow
winId()上工作的Qt 5.1
至少它有当我的价值
bool Widget::nativeEvent(const QByteArray & eventType, void * message, long * result)
MSG* msg = reinterpret_cast&MSG*&(message);
qDebug() && msg-&
qDebug() && winId();
本文标题 :获取HWND的窗户QT5(从WID)
本文地址 :CodeGo.net/537679/
Copyright (C) 2014 CodeGo.netqt在windows_安装配置_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
qt在windows_安装配置
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢14316人阅读
Qt-Creator
Qt是跨平台的图形开发库,目前由Digia全资子公司 Qt Company 独立运营,官方网址:
也可以访问Qt项目域名:
Qt本身支持众多操作系统。从通用操作系统Linux、Windows,到手机系统Android、iOS、WinPhone,嵌入式系统支持QNX、VxWorks,应用非常广泛。
基于Qt的软件非常多,其中最知名的要数Linux桌面系统KDE(涵盖无数以K打头的应用软件)。国内WPS for Linux版本、360 for Linux也是使用Qt库开发的界面。只要有C++基础,Qt是很容易学的,而且开发跨平台的程序也容易。目前主流使用的Qt库有Qt4和Qt5两个大版本,下面介绍其在Windows系统里的下载和安装。
一、Qt4开发环境下载安装
首先进入下载页面
根据提示点击选项。
最后点击 “Get started”按钮后,进入开源版页面:
上面大按钮Download Now是下载在线安装版,其实只是一个下载工具,并不是真正的Qt开发库。可以自己下载离线安装包,注意页面的“View All Downloads”,点开之后就能看到离线包。目前看到的全是Qt5.4.0版本的,那Qt4的在哪呢?
把上面页面拖到最下面:
旧版本包就是最后一个链接:
打开之后可以看到四个目录:vsaddin是VisualStudio集成插件,qtcreator是Qt官方的集成开发环境,qt就是各种新老版本下载位置,online_installers就是在线安装工具。
在Qt4的时候,Qt开发环境包括3个基本部分:Qt Framework(Qt库)、QtCreator(IDE)和MinGW(编译调试),都要分别下载安装并配置,比较麻烦。进入Qt5之后,Qt公司将三者打包成一个安装文件,比如Qt5.4.0的离线安装包,这样方便许多。这里先讲旧的Qt 4.8.6的开发环境下载安装配置方式。
1、Qt 4.8.6下载
从刚才页面进入目录
头两个是VS2010和VS2008编译而成的Qt库,第三个是MinGW版本Qt库,就是要下载MinGW版本的来使用。dmg结尾的两个是MacOS系统里使用的Qt库,qt-everywhere-opensource-src-4.8.6是Qt源码包,有zip和tar.gz两个压缩格式的,两个内容是一样的,只是zip一般在Windows下比较流行,tar.gz是Linux上流行的压缩格式。md5sums-4.8.6是以上文件的校验和,changes-4.8.6是Qt版本日志文件。
下载qt-opensource-windows-x86-mingw482-4.8.6-1.exe:
下载完成后不要着急装,还有别的需要下载。
2、QtCreator下载
在页面有一些旧版本的qtcreator可以下载,不过有新版还是用新版的好些。
进入刚才的
,点开“View All Downloads”,找到
这里面讲的很清楚,Qt5.4.0安装包已经带有QtCreator,如果是装Qt5.4.0就不需要下载。我们装4.8.6的,这里要下载“Qt Creator 3.3.0 for Windows (71 MB)”,
点击下载即可。我们仔细看一下下载链接:
这个其实用的是国内华中科大的软件镜像,我们可以尝试进入:
这个与Qt官方软件源一样,可以看到有
下软件一定不要局限在一个文件链接上面,打开下载链接上层目录可以找到一堆好东西的。自己打开各个子目录看看:
①gdb是针对Android开发的调试器。
②jom可以百度一下, ,是nmake克隆版,支持多条独立命令并行构建软件,加快软件构建速度。
③online_installers是在线安装器。
④Pyside是用于支持Python语言编写Qt程序的。
⑤qbs是Qt Build Suite (QBS) ,,QBS是新创的Qt程序生成工具,因为Qt一般使用qmake来生成项目进行编译,qmake必须根据qt版本变化而变化,不便于管理,qt开发者对qmake又爱又恨,因此创建了不依赖Qt版本的生成工具QBS。
⑥qt,当然是qt库本身了,从4.8到5.4都有。
⑦qt-installer-framework,百度一下是什么,,是专门用于发布开发好的程序用的,生成程序安装器,可以为Linux、Windows、MacOS生成安装器。Qt自己的QtCreator、QtSDK等安装程序就是使用qt-installer-framework打包的。
⑧qtcreator是集成开发环境,从2.5到3.3版本都有。
⑨vsaddin,是针对VisualStudio的Qt开发插件。
上面啰嗦这么多,看起来不着边际的东西,我为什么要讲呢?
现在许多娃子脑子被教死了、教蠢了,下载文件也不看看链接,看了链接也不管是不是有别的资源可以下载利用。等到用的时候就问:旧版Qt 4去哪里下载?主页怎么只有Qt5.4.0,上哪找Qt5.3.1?
这些都是不用脑子的低级问题。能下载到Qt 5.4.0版本,用屁股想一下,Q.5.3.1和Qt 4.8.6能有多远呢?
很多资源都是放在一块的,用心去看看下载链接上级目录、搜一搜就出来的。
请记住:下载文件一定不要局限,学东西一定要有探索和发现的意识!
另外Qt软件镜像除了华中科大有,国内其他院校也是有的,中国科大的源还要快一些:
3、MinGW 4.8.2
为什么是4.8.2?我们下载的qt-opensource-windows-x86-mingw482-4.8.6-1.exe 里面的mingw482,就是指这个Qt库使用MinGW 里面g++ 4.8.2版本编译生成的,所以需要同样版本的MinGW来编译程序,避免其他新旧版本兼容之类的问题。
我们尝试运行qt-opensource-windows-x86-mingw482-4.8.6-1.exe的时候(先不要装,就看看),这个安装程序自己就会提示去哪里找这个MinGW版本,而且这个MinGW不是官方原版:
是一个私人定制版,在sourceforge上面下载:
下载链接比较长,去sourceforge浏览该目录可以看到:
那个下载数目最多的就是Qt安装包里面指出的文件链接,当然还有更新的修订版,可以下载***rev3.7z也可以下载***rev4.7z,这里下载新的rev4:i686-4.8.2-release-posix-dwarf-rt_v3-rev4.7z
有三个文件,顺序是这样的,Qt库需要MinGW,而qtcreator需要配置前面二者,所以先安装MinGW,再安装qt-opensource-windows-x86-mingw482-4.8.6-1,最后装QtCreator。
(1)MinGW安装
这个是绿色版的,直接解压缩到C盘根目录就行了,放到其他分区也是可以的。只要后面指定了正确位置就行了,这里解压后路径是:C:\mingw32,g++位置是C:\mingw32\bin\g++.exe。
(2)Qt库安装
运行qt-opensource-windows-x86-mingw482-4.8.6-1.exe,这个包比较大,解压时间长一些,等一阵子会进入安装界面:
点击Next进入:
点击Next进入协议同意页面:
选择accept协议条款,点击Next进入组建选择界面:
全部选中,然后点击Next,进入目标目录选择:
如果C盘空间不够就选别的分区,然后点击Next进入开始菜单设置:
点击Next进入MinGW选择页面:
设置正确的MinGW文件夹,如果路径设置出错点击Install时会提示
这时候选择“否”,重新设置正确的MinGW路径,点击Install之后会开始实际的安装。等待安装结束,取消下面两个复选框再点Finish:
上面第一个是例子示范,第二个是Qt文档。
在开始菜单里面Qt by Digia v4.8.6 (MinGW 4.8.2 OpenSource)就是Qt库的快捷菜单项:
①Assistant,帮助文档查看
②Designer,图形化编辑ui文件,就是Qt的图形界面设计程序
③Examples and Demos,Qt程序例子
④Linguist,国际化语言翻译工具
⑤Qt 4.8.6 (Build Debug Libraries),创建Debug版本库,这个可以不管。
⑥Qt 4.8.6 Command Prompt,Qt命令行开发环境设置,这个命令行工具会设置好Qt位置和MinGW位置,可以从命令行编译C++和Qt程序。
⑦Qt Readme,自述文件,描述Qt信息
⑧,Qt官网链接
⑨Uninstall Qt OpenSource 4.8.6,卸载Qt库。
点开Qt 4.8.6 Command Prompt,可以尝试运行命令看看版本信息:
g++ –version
qmake –version
这个命令行工具对应命令是:
%COMSPEC% /k “C:\Qt\4.8.6\bin\qtvars.bat”
也就是说,如果想自己配置MinGW版本和Qt库,可以学习 qtvars.bat 文件来编写自己的 bat文件比如
rem This file is generated
echo Setting up a MinGW/Qt only environment…
echo – QTDIR set to C:\Qt\4.8.6
echo – PATH set to C:\Qt\4.8.6\bin
echo – Adding C:\mingw32\bin to PATH
echo – Adding %SystemRoot%\System32 to PATH
echo – QMAKESPEC set to win32-g++-4.6
set QTDIR=C:\Qt\4.8.6
set PATH=C:\Qt\4.8.6\bin
set PATH=%PATH%;C:\mingw32\bin
set PATH=%PATH%;%SystemRoot%\System32
set QMAKESPEC=win32-g++-4.6
%COMSPEC% /k
上面第一段是关闭命令回显,表示执行命令时不打印命令。
第二段是显示想要显示的信息,打印了五行。
第三段是真正的设置环境变量的命令,就是提示的五条:
QTDIR指示Qt 4.8.6根目录,中间三句设置PATH,包括Qt工具bin路径、MinGW bin路径和操作系统的System32路径,QMAKESPEC是指编译Qt程序的目标平台。
%COMSPEC% /k
就是cmd.exe执行命令后继续保持运行的意思。
(3)QtCreator安装
如果想从命令行编译Qt程序,上面环境已经够了。当然现在都是可视化开发的,就要装QtCreator集成开发环境,因为QtCreator使用起来方便快捷。
运行qt-creator-opensource-windows-x86-3.3.0.exe,
点击“下一步”,进入目录指定界面:
设置安装位置后点“下一步”,进入许可同意界面:
选择接受许可,点击“下一步”:
点击“下一步”,
点击安装,
点击“下一步”,
点击“完成”,会打开QtCreator:
(4)QtCreator配置
因为QtCreator还没有配置,这时候是不能编译程序的。
打开QtCreator菜单“工具”–&“选项”,在对话框左边选“构建和运行”:
编译Qt程序必须配置好几个东西才行,需要配置的是:
构建套件(Kit)、QtVersions、编译器、Debuggers。
①Debuggers
点击Add,进入新的Debugger设置界面:
把Name设为GDB,然后点击Path一行最右边的“浏览”,找到gdb.exe的位置,
设置好后点击右下角的“Apply”,就设置了调试器。
点击右边“添加”,弹出菜单有MinGW、GCC、Clang、Custom和QCC,选择MinGW,
名称设为MinGW,对于编译器路径设置,就浏览找到g++.exe,设置好这两条就够了,然后点击右下角“Apply”。
③Qt Versions
点击“添加”,弹出的文件查找框,是要选择qmake.exe位置,之前装的位置是:
C:\Qt\4.8.6\bin\qmake.exe,选中qmake.exe
点击打开,然后Qt版本会自动检测:
点击“Apply”就配置好Qt库了。
④构建套件(Kit)
之前配置的三个最后都是为构建套件服务的,需要在这里面选择之前配好的三个:编译器选择“MinGW”、调试器选择“GDB”、Qt版本选择“Qt 4.8.6(4.8.6)”,Qt mkspec可以不用管,因为qmake.exe可以自动定。配置好编译器、调试器和Qt版本之后,点击“Apply”,再点击“OK”。终于配置好了。
然后就可以新建一个项目,选择“Qt Widgets Application”,都用默认的项目设置,一直点击下一步,然后点“完成”,看到代码:
点击左下角倒数第三个图标,就是纯三角形那个:
程序就能正常编译跑起来了。
二、Qt 5.4.0 下载和安装
看完上面Qt4开发环境的安装配置,相比之下Qt 5.4.0安装(不需要配置)就特别简单了。就是一个傻瓜包,注意选择组件时把组件全部选中,然后一直点“下一步”就完事了。下面简单介绍一下。
1、下载Qt5.4.0开发环境
点开“View All Downloads”,找到“Offline Installers”离线安装包,
有Linux、MacOS和Windows的,关于Windows系统里Qt安装包:
头两个是VS2013 64位版本的Qt库,有OpenGL版本和非OpenGL版本,OpenGL版本就是指底层绘图用OpenGL驱动,非OpenGL底层是用DirectX驱动来绘图。第三、第四个是VS2013 32位版本,第五个第六个是VS2012和VS2010的Qt库。需要注意的是微软VS2012之后编译的程序默认没法在WindowsXP上面跑(可以打补丁支持XP)。不推荐使用Visual Studio开发Qt程序,因为VS没有Qt Creator好用,VS还总是有莫名其妙的问题出现。
最好的就是下载 Qt 5.4.0 for Windows 32-bit (MinGW 4.9.1, 852 MB) 。
下载列表第八个是针对Android开发的(比较麻烦,网上有教程)。
第九个是针对Windows RT操作系统(一般用在Windows平板电脑)的Qt库。
下载MinGW版本Qt文件是:
qt-opensource-windows-x86-mingw491_opengl-5.4.0.exe
运行后等待exe文件自己启动和解压,这需要的时间可能比较长,因为文件很大。
点击下一步,
点击下一步,进入组件选择界面:
这里要注意要把东西全部勾选上,图里面第一个MinGW 4.9.1是指用采用MinGW编译而成的Qt库,第二个MinGW才是真正的编译调试环境。
全部选择后点击下一步:
选择agree然后点击下一步:
点击下一步:
点击安装,等待安装好,点击“完成”。
因为安装包把东西都带齐了,所以可以直接使用QtCreator新建、编译、生成程序。如果本机存在多个Qt构建套件,在新建项目时,Kit Selection:
可以选择多个Qt构建套件,不同套件会生成不同程序。编译时在左下角点开Debug或Release字样,可以选择不同的Qt库生成各自的Debug版程序或Release版程序。
三、开发好的可执行程序如何发布
一般用Qt官方开发环境,生成的exe都是动态链接版本,如果要放到其他电脑上运行,需要复制一大堆依赖的dll,而且数量比较多,是个麻烦。
如果想用一个exe干净利落的发布程序,就需要使用静态编译版的Qt库,网上有教程,我就不多说了,可以教大家用现成的,在git-hub上正好有静态Qt库:
/fostersoftware/QtStaticWindows
/fostersoftware/QtStaticLinux
第二个是Linux的,Windows系统下载第一个QtStaticWindows,最好使用git工具来下载,新建一个QtSatic文件夹,在该文件夹里执行:
下载完成后,添加Qt静态库的方法参考第一部分的4.(4)QtCreator配置,只需要在QtCreator里面添加新的 Qt Version和新的构建套件(Kit)。
注意上面的只有Release版本Qt库,所以要在使用Qt官方的动态库版开发调试完成之后,最后使用静态Release版Qt库生成独立的exe程序,就可以放到其他机器上跑了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:39864次
排名:千里之外
原创:42篇
转载:30篇}

我要回帖

更多关于 qt语音接单大厅在哪里 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信