Qt编程之悲惨世界
最近需要给人写点基于QtWebkit的代码,算是领教了Qt编程的痛苦之处。
- QNetworkConfigurationManager::isOnline() 只有在编译平台上能运行,拷贝到其他Windows系统中一直返回false。
- Qt::WindowStaysOnTopHint在某些环境下经常无效。
- Qt4.8.4版本的QtWebkit在Win7 32bit 上播放YouTube视频会出现崩溃现象。
每一点都是致命的,直接导致了迟迟无法收工。这几天虽然染病在身,却依然在各个不同的平台上进行测试。有一些进一步的理解,但是没有完美的解决方案。
1 对于QNetworkConfigurationManager::isOnline() 来说,虽然采用同一个Qt安装包,可能的问题是 Qt 安装包会在最后进行Platform Patch,替换QtCore.dll和QtNetwork.dll之类的文件。这样对于希望制作独立的安装来说简直是一个噩梦。只有约定的msi安装包如何完成也是一个问题。
*** 后来发现其中一个原因是没有拷贝依赖的plugin文件。Depends 里根本发现不了,运行程序时尝试删除plugin文件夹才找到所有依赖的plugin文件。
2 Qt::WindowStaysOnTopHint在WinXP可以工作,但是Win7或者Win8下就有各种问题,时常无法将窗口置顶。比较诡异的是,将文件放到一些文件夹下无效,换个文件夹又有效了,匪夷所思。
最后很无奈,加了以下的代码:
void MainWindow::showEvent(QShowEvent * event)
{
if (event->type() == QEvent::Show)
{
activateWindow();
setWindowFlags(this->windowFlags() | Qt::WindowStaysOnTopHint);
SetTopMost();
}
}
3 QWebView崩溃的位置还有所差别,一会是heap问题,一会是消息处理问题,毫无头绪。换成Qt5.0.2倒是没有发现问题,就是依赖的文件一下子增加了好多。
有时候使用Qt的话,还是挺悲惨的,很容易掉坑里。这里不免要吐槽一下,QtWebkit编译一次就是几小时,实在痛苦。
// QMainWindow 置顶
setWindowFlags(Qt::Widget | Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowStaysOnTopHint);
> QtWebKitd4.dll!__NPN_DeallocateObject() + 0xe bytes C++ > QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line C++
Qt编程之悲惨世界的更多相关文章
- qt编程入门
面对qt编程,必须先知道qt中常用的类: QPushButton按钮类.QLabel标签类.QMessageBox对话框类.QCheckBox.QAction.QMenu.QStatusBar.QTo ...
- Visual Studio下Qt编程中对中文的处理
Visual Studio下Qt编程中对中文的处理 本文为原创文章,原文地址http://www.cnblogs.com/c4isr/p/qt_develop_in_vs.html Visual St ...
- QT笔记(1)--QT编程环境搭建
一.QT简介 Qt 是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架.它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器.Qt是面向对象的框架,使用特殊 ...
- Qt编程学习网站
http://blog.csdn.net/k122769836/article/details/8637677 QT - little_su - 博客频道 - CSDN.NET Qt - 1+1=2 ...
- 在windows下的QT编程中的_TCHAR与QString之间的转换
由于在windows下的QT编程中,如果涉及到使用微软的API,那么不可避免使用_TCHAR这些类型,因此在网上查了一下,其中一个老外的论坛有人给出了这个转换,因此在这里做一下笔记 : )#ifdef ...
- 在Ubuntu18.04中QT编程的环境构建(转)
在Ubuntu18.04中QT编程的环境构建 原点分析 百家号06-2110:14 如果说QT大家觉得陌生的话,那么 Windows 早年推出的C++图形用户界面的应用程序开发框架MFC,应该是耳熟能 ...
- vs+qt编程相关
vs+qt编程的那些事 以下以helloqt项目为例 文件构成 Form Files 窗体文件 /*.ui 界面文件 Generated Files 界面生成文件 /ui_helloqt.h 添加带界 ...
- Qt 编程指南
Qt 编程指南 持续关注一本正在编写的Qt编程指南,期待作者早日完成创作.
- 零基础学QT编程
吴迪.2010.1 北京航空航天大学出版社 Qt资源 CSDN QT http://bbs.csdn.net/forums/Qt/ QT编程网 http://www.qtbcw.com/ 编程论坛 ...
随机推荐
- HGOI20180822 五校联考卷
T1 [题目意思]给出下列程序片段,预测程序运行结果 输入文件为T(T<=200)组数据,每组数据有个n(n<=1014) 输出文件为T行,每行一个数据,表示fun(n)的值 simple ...
- Luogu 2764 最小路径覆盖问题 / Libre 6002 「网络流 24 题」最小路径覆盖 (网络流,最大流)
Luogu 2764 最小路径覆盖问题 / Libre 6002 「网络流 24 题」最小路径覆盖 (网络流,最大流) Description 给定有向图G=(V,E).设P是G的一个简单路(顶点不相 ...
- SSM搭建Spring单元测试环境
原文链接:https://jingyan.baidu.com/article/93f9803f5a97a4e0e46f55c8.html SSM搭建Spring单元测试环境
- SSM数据库数据导出excel
首先,这是我对自己的需求而使用的逻辑,若有可以完美的地方方便告诉下小白. apache的poi MAVEN <dependency> <groupId>org.apache.p ...
- Codeforces 666 B. World Tour
http://codeforces.com/problemset/problem/666/B 题意: 给定一张边权均为1的有向图,求四个不同的点A,B,C,D,使得dis[A][B]+dis[B][C ...
- CSS规范 - 代码格式--(来自网易)
选择器.属性和值都使用小写 在xhtml标准中规定了所有标签.属性和值都小写,CSS也是如此.单行写完一个选择器定义 便于选择器的寻找和阅读,也便于插入新选择器和编辑,便于模块等的识别.去除多余空格, ...
- html5 canvas路径绘制2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- ASP.NET实现二维码(QRCode)的创建和读取
一.项目引用QRCode的DLL文件(ThoughtWorks.QRCode.dll) 二.ASPX页面(两个jquery的js文件请自行去官网下载): [html] <html xm ...
- CSS-3 新弹性盒模型属性
flex 语法:flex:none | [ flex-grow ] || [ flex-shrink ] || [ flex-basis ] 取值: none:none关键字的计算值为: 0 0 au ...
- Codeforces 238 div2 A. Gravity Flip
题目链接:http://codeforces.com/contest/405/problem/A 解题报告:有n列箱子竖直放置,每列箱子上都有数量不等的箱子,这些箱子之间没有固定,当重力方向改为平行向 ...