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坑点汇总的更多相关文章

  1. navicate 连接mysql8.0,个人踩坑问题汇总

    navicate 连接mysql8.0,个人踩坑问题汇总本文目录:1:安装mysql8.0新增全新验证方式,安装如果不修改mysql连接不上2:mysql启动命令问题3:navicate 运程连接My ...

  2. html2canvas - 项目中遇到的那些坑点汇总(更新中...)

    截图模糊    原理就是讲canvas画布的width和height放大两倍. 后来学习canvas的时候,才了解到这种写法不同于css的宽高设置, 因为css里的只是展示画布显示的大小,不像这样是c ...

  3. qt 透明化方法汇总

    一. QT 透明设置 背景,标题栏透明,下级Widget,painter绘出来的(比如,drawtext,drawline)不透明 QWidget window; window.setWindowFl ...

  4. swiper使用总结-坑点汇总

    1.开发中遇到个坑,ScrollableTabView(选项卡)+swiper(轮播图)在安卓下,初始化的第一页不会渲染,需要在ScrollableTabView挂载完毕后再渲染swiper. 解决方 ...

  5. QT UAC问题汇总贴

    http://www.qtcn.org/bbs/read-htm-tid-47983.html http://www.cnblogs.com/bombless/archive/2010/12/29/h ...

  6. Nodejs 8.0 踩坑经验汇总

    .Linq:Linq to sql 类 高度集成化的数据库访问技术 使用Linq是应该注意的问题: 1.创建Linq连接后生成的dbml文件不要变动,生成的表不要碰,拖动表也会造成数据库连接发生变动, ...

  7. Js中遇到的坑点汇总

    一.Android 手机下输入框获取焦点时, 输入法挡住输入框的 bug 解决思路: 1.去掉overflow属性 2. Android 手机下, input 或 textarea 元素聚焦时, 主动 ...

  8. windows安装oos遇到的坑 (汇总)

    一.环境安装 --  搭建域控服务器 1. 打开服务器管理器,添加角色和功能: 2.下一步: 3.下一步: 4.下一步 5.选择添加AD域服务,同时添加所需功能,下一步: 6.安装功能,下一步: 7. ...

  9. Laravel 获取 Route Parameters (路由参数) 的 5 种方法

      Laravel 获取路由参数的方式有很多,并且有个小坑,汇总如下.   假设我们设置了一个路由参数:   现在我们访问 http://test.dev/1/2   在 TestController ...

随机推荐

  1. C++之标准库vector

    目录 1.成员函数 2.元素访问 3.迭代器iterator 4.容量capacity 5.修改函数 std::vector是一个封装动态数组的序列容器 std::pmr::vector是一个使用多态 ...

  2. nginx插入lua脚本访问redis

    目标:收集用户日志 流程: 浏览器端get方法将数据传到nginx服务 nginx收集到数据,执行内嵌lua脚本,访问redis,根据token获得用户id 将日志信息存入文件 1.nginx安装,参 ...

  3. C语言实现过滤ASCII在0~127范围内的字符,并去除重复的字符

    #include <stdio.h> #include <string.h> /* 1.以字符串作为参数 2.找出ASCII在1~127范围内的字符 3.去掉重复字符 */ i ...

  4. 图片转成Base64

    var img = "imgurl";//imgurl 就是你的图片路径 function getBase64Image(img) { var canvas = document. ...

  5. ubuntu 系统开机执行脚本设置

    在ubuntu 系统中常常有一些操作需要开机时手动去执行,有一些固定的脚本文件可以通过改写启动项脚本让系统启动时自动执行 方法: 编辑/etc/下的rc.local脚本,把对应的需要执行的脚本写在ex ...

  6. 卸载和删除wozhuan.exe

    在虚拟机里面,偶然发现CPU占用居高不下,打开任务管理器,发现有多个 wozhuan.exe 进程,这是个我从来没有见过的进程,顺手卸载后,没过多久,结果又出来了,可以判断,这肯定是虚拟机中奖了.中奖 ...

  7. unity中编辑器直接截屏代码

    using UnityEngine; using System.Collections; using System.Windows.Forms; public class screenshots : ...

  8. 在servlet中跳转问题

    跳转有重定向和转发 1重定向 2转发

  9. JSWebAPI

    DOM是哪种基本的数据结构   树 DOM本质,对html进行结构化,让浏览器解析,js可操作 DOM节点操作 DOM结构操作 DOM操作的常用API DOM节点的attr 和 property 的区 ...

  10. JDBC连接ORACLE的三种URL格式

    格式一: Oracle JDBC Thin using an SID jdbc:oracle:thin:@host:port:SID 例如: jdbc:oracle:thin:@localhost:1 ...