Qt坑点汇总
1.场景:假如我们想在layout中的qlabel中设置一个图片
1.1 如果简单地使用border-image,我们可以做到,并且拖动界面时,label可以随布局正常变化,这里需要注意的是,修改ui文件的时候,经常需要删除build文件重新编译,qmake这点很坑;
1.2 但是如果我们使用setpixmap,比如在界面初始化还没有显示出来的时候来使用pixmap,只是使用setpixmap的话,pixmap会显示为原始大小,不受label控制
1.3 接着我们尝试使用scaledContents,但是没有什么卵用,我们发现,该函数只是当图片比label小的时候会自适应图片到label大小,当图片比label大的时候,会显示为图片的原始大小,非常坑;
1.4 接着我们尝试对pixmap使用 scaled(ui->label->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);并且添加scaledContents函数,但是发现显示出来的图片非常模糊,这是因为在界面初始化,还没有show出来的时候,控件大小不是最终看到的到大小,你需要将scaled函数写在showevent里或者之后;
1.5 然后,按照上面步骤写完之后,我们发现,label只能被拖动放大,并不能被缩小,如果想缩小需要自行编写控件
总结一下,在初始化时设置图片,你需要在showevent或者show出来之后setpixmap,你也需要手动scaled。
2.如果你想使用QTextEdit中的css样式,劝你早点放弃,Qtextedit很多css都不支持,很难用;
3.使用QNetwork中的put来上传文件的时候,如果网络中断了,你将束手无策,即使你这样来处理错误信号,也毫无卵用
connect(reply, static_cast<replyError>(&QNetworkReply::error), this, &NetworkHandler::uploadErrorReply);
因为它根本就不发射错误信号,也就是说如果网络断了,你调用put函数他将卡在那里,不能动弹,也许你觉得可以使用QTimer来编写一个定时器,这对于一个put还够用,但是如果你短时间上传多个文件,你就需要为每一个连接编写一个Qtimer,而如果你是使用的是一个全局的QNetwork变量,你将很难写出相应的解决方案,总之就是很糟糕!
4.QComplete 在一些简单的应用上可能还奏效,但是如果你想用在类似于百度搜索,那样的联网实时模糊搜索上,那很可能会遇到严重问题,譬如,popup没法显示出来,有时候popup又会比实际内容要长,这很可能是因为popup界面刷新不及时,但是尝试了很久很久,我也没有找到好的解决方案,实在无力吐槽,于是我决定自己重新写一个。
5.当空间宽高小于border-radius两倍的时候,无法显示圆角,详情问题描述可见:https://stackoverflow.com/questions/17797371/maintaining-rounded-corners-when-the-height-is-less-than-twice-the-border-radius
这种情况在自己写软件的时候很容易遇到,但是找不到什么很好地解决方法,但是却又很影响显示效果。
Qt坑点汇总的更多相关文章
- navicate 连接mysql8.0,个人踩坑问题汇总
navicate 连接mysql8.0,个人踩坑问题汇总本文目录:1:安装mysql8.0新增全新验证方式,安装如果不修改mysql连接不上2:mysql启动命令问题3:navicate 运程连接My ...
- html2canvas - 项目中遇到的那些坑点汇总(更新中...)
截图模糊 原理就是讲canvas画布的width和height放大两倍. 后来学习canvas的时候,才了解到这种写法不同于css的宽高设置, 因为css里的只是展示画布显示的大小,不像这样是c ...
- qt 透明化方法汇总
一. QT 透明设置 背景,标题栏透明,下级Widget,painter绘出来的(比如,drawtext,drawline)不透明 QWidget window; window.setWindowFl ...
- swiper使用总结-坑点汇总
1.开发中遇到个坑,ScrollableTabView(选项卡)+swiper(轮播图)在安卓下,初始化的第一页不会渲染,需要在ScrollableTabView挂载完毕后再渲染swiper. 解决方 ...
- QT UAC问题汇总贴
http://www.qtcn.org/bbs/read-htm-tid-47983.html http://www.cnblogs.com/bombless/archive/2010/12/29/h ...
- Nodejs 8.0 踩坑经验汇总
.Linq:Linq to sql 类 高度集成化的数据库访问技术 使用Linq是应该注意的问题: 1.创建Linq连接后生成的dbml文件不要变动,生成的表不要碰,拖动表也会造成数据库连接发生变动, ...
- Js中遇到的坑点汇总
一.Android 手机下输入框获取焦点时, 输入法挡住输入框的 bug 解决思路: 1.去掉overflow属性 2. Android 手机下, input 或 textarea 元素聚焦时, 主动 ...
- windows安装oos遇到的坑 (汇总)
一.环境安装 -- 搭建域控服务器 1. 打开服务器管理器,添加角色和功能: 2.下一步: 3.下一步: 4.下一步 5.选择添加AD域服务,同时添加所需功能,下一步: 6.安装功能,下一步: 7. ...
- Laravel 获取 Route Parameters (路由参数) 的 5 种方法
Laravel 获取路由参数的方式有很多,并且有个小坑,汇总如下. 假设我们设置了一个路由参数: 现在我们访问 http://test.dev/1/2 在 TestController ...
随机推荐
- 举例说明$POST 、$HTTP_RAW_POST_DATA、php://input三者之间的区别
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 第七届 蓝桥杯 方格填数 dfs
如下的10个格子 填入0~9的数字.要求:连续的两个数字不能相邻. (左右.上下.对角都算相邻) 一共有多少种可能的填数方案? 请填写表示方案数目的整数. 注意:你提交的应该是一个整数,不要填写任何 ...
- hadoop知识点总结
(一).hadoop的内置数据类型都实现了writablecompareable,以便序列化和网络传输及文件存储 a自定义数据类型作为输入 1.实现writable接口 2.如果给数据需要比较大小时, ...
- ArcGIS制作tpk离线压缩包
ArcGIS制作tpk离线压缩包 tpk是什么的缩写,对应的中文名称是? 什么叫tpk文件? 缓存切片? 切片类型:紧凑型与稀疏型. 一.目前自己使用的在ArcMap中制作tpk压缩包 1.首先打 ...
- 使用Dockerfile定制ubuntu+nginx镜像
实验目的:书写Dockerfile,定制ubuntu 14.04 + nginx 1.14.0的镜像. 实验过程: 1. 下载nginx-1.14.0 http://nginx.org/downlo ...
- Spring普通类/工具类获取并调用Spring service对象的方法
参考<Spring普通类获取并调用Spring service方法>,网址:https://blog.csdn.net/jiayi_0803/article/details/6892455 ...
- 【nowcoder】 4th T1 动态点分治
题目链接:https://www.nowcoder.com/acm/contest/175/A 题目名字吓死人 std: 我 太可啪了 一道简单的模拟题.虽然我把题意想错了. 按照题意模拟输出和继承. ...
- 注册测绘师20180301-CNSS
GNSS:Global Navigation Satellite System(全球卫星导航系统)GPS:Global Positioning System(全球定位系统)GPS是美国的卫星导航系统. ...
- android studio 编辑markdown文件
作为开发人员,对markdown应该比较熟悉,我们在Android开始中,可以使用studio引入Markdown Navigator插件,进行编辑. 搜索 Markdown Navigator 安装 ...
- Java读取txt文件和写入txt文件
package com.nickwong.code; import java.io.*; /** * Created by Nickwong on 31/07/2018. * 根据1-8楼的建议,优化 ...