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. Golang安装与命令

    1. 安装 Windows -  https://golang.org/dl/ 下载msi安装包,点击安装即可.安装后cmd运行go version弹出版本号即安装成功. 2. 命令行 生成exe文件 ...

  2. 因为没有安装xcode,得不到xcode证书报错

    新接的一个项目.在从gitlab上clone代码的时候报错: Agreeing to the Xcode/iOS license requires admin privileges, please r ...

  3. linux环境下安装使用selenium Chrome

    安装驱动 http://chromedriver.storage.googleapis.com/index.html 下载对应chrome浏览器版本的驱动程序 chmod +x chromedrive ...

  4. 《hello--world团队》第一次作业:团队亮相

    项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验五 团队作业:软件研发团队组建 团队名称 <hello--world团队> ...

  5. C# 结构与类的区别

    一.定义方式 定义结构: struct PointStruct //默认的访问权限是 public { public int X { get; set; } public int Y { get; s ...

  6. C# deep copy List

    https://stackoverflow.com/questions/14007405/how-create-a-new-deep-copy-clone-of-a-listt 1. copy lis ...

  7. 李航《统计学习方法》CH03

    CH03 k近邻法 前言 章节目录 k近邻算法 k近邻模型 模型 距离度量 k值选择 分类决策规则 k近邻法的实现: KDTree 构造KDTree 搜索KDTree 导读 kNN是一种基本分类与回归 ...

  8. 回文的范围——算法面试刷题2(for google),考察前缀和

    如果一个正整数的十进制表示(没有前导零)是一个回文字符串(一个前后读取相同的字符串),那么它就是回文.例如,数字5, 77, 363, 4884, 11111, 12121和349943都是回文. 如 ...

  9. ArrayList与LinkList

    1.ArrayList 1)继承结构 2)ArrayList是数组存储结果,初始容量为0,添加第一个元素后容器为10,后面每次超过容量时,容量递增50%,每次扩容都需要产生新的数组,再把老的数据复制过 ...

  10. Qt 按名称查找子节点

    TreeItem* TreeModel::GetItem(QStringList& list, TreeItem* parent ,int deep) { ).toString()) { if ...