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 ...
随机推荐
- linux基础命令连接命令ln
ln -s /etc/issue /tmp/issue.soft 创建文件/etc/issue 的软连接/tmp/issue.soft 不带-s 生成硬链接文件. 软连接类似于windows的 ...
- switch与if语句的应用
C语言自学之switch与if语句的应用 #include<stdio.h> #include<stdlib.h> int main() { ;//需要计算的年份 ;//需要计 ...
- POST调用WCF方法-项目实践
做即时通信项目时,需要与OA系统对接接口,主要目标是实现在OA里进行一项事项,通过调用我们的接口,即时通知过来,并弹出消息框提示一下.我们的即时通信使用的WCF服务进行通信,在客户端调用通信时,用的就 ...
- VSCode 启动 Vue 项目 npm install 报错
1. 报错后,查看了版本. 查看node版本:node -v 查看npm版本:npm -v 查看Augular版本:ng --version 2. 感觉 Augular CLI版本太低,使用以下方 ...
- vue+vue-cli+淘宝lib-flexible做移动端自适应
总结用vue+vue-cli+淘宝lib-flexible做移动端自适应方案: 1.安装淘宝lib-flexible npm install lib-flexible --save 2.在入口文价ma ...
- vue 父子组件通信-props
父组件:引用了ComBack组件 ComBack组件:引用了BasicInfor组件 先使用props获取父组件的headInfo这个对象,这里注意(default)默认返回值要用工厂形式返回 Bas ...
- 从零开始学Python 一
一.安装 1.进入Python官网下载环境:https://www.python.org 2.根据自己的电脑选择安装版本,然后安装即可. 二.运行第一个程序 1.安装完Python,会自带一个编辑器, ...
- 浮点型数据转整型的丢失精度问题(C++)
如下代码:http://ideone.com/xcgHgw #include <iostream> using namespace std; int main() { // your co ...
- 安装easydict
在运行lightheadrcnn做test时,提示缺少easydict 不知道什么原因,用pip install easydict或者conda install easydict都没有用,不能安装ea ...
- flask 第七章 简陋版智能玩具 +MongoDB初识和基本操作
1.简陋版web智能玩具 FAQ.py文件 import os from aip import AipSpeech, AipNlp from uuid import uuid4 "" ...