1.界面的杂记
1.按钮QPushButton风格改变,只需修改属性里面的styleSheet
QPushButton {
border:none;
color:white;
background-image: url(:/action/resources/button.png);
}
加载背景图片,参考这篇文章
QT界面 添加图片 的2种方式
https://blog.youkuaiyun.com/qq_37631516/article/details/104468949
2. 如果 styleSheet里是贴图方式,那边QPushButton的尺寸需要设置
3.问题提示"This file contains top level spacers "
问题现象:
是因为Qt Designer设计界面时,用到了Spacers栏中的窗口控件或者Display Widgets栏中的Horizontal Line等布局有关的控件时,直接保存就可能出现"This file contains top level spacers "
问题答案:
第1种情况: 放在控件中
第2种情况: 与其它控件进行布局成一个整体控件
4.策略SizePolicy的介绍
SizePolicy: 用于描述一个Widget被resizing(调整大小)的时候,
采用的策略
在QSizePolicy类中定义了七种策略
Fixed : 使用sizeHint,不能更大、不能更小
Minimum: 不得小于sizeHint,可以更大,但不需要更大
Maximum: 不得大于sizeHint,可以更小
Preferred: 优先使用sizeHint,可大可小
Expanding: 使用sizeHint,越大越好
MinimumExpanding: 不得小于sizeHint,越大越好
Ignored: 忽略sizeHint,越大越好
5.打开一个图片并且显示
三、QT例子-打开一个图片并且显示
https://www.cnblogs.com/fantianliang/p/12356131.html
6.QT多边形、矩形、圆形等API函数
QT 基本图形绘制
https://blog.youkuaiyun.com/lwbeyond/article/details/41479809
7.加载资源文件qrc(UI 图片)
问题现象:
在控件按钮的styleSheet里拷贝一样的样式代码
见" 1.按钮QPushButton风格改变,只需修改属性里面的styleSheet"
但是没有图片出现
问题答案:
是因为没有将资源文件导入进来
8.QImage::scaled的作用
QT学习之QImage::scaled
https://www.cnblogs.com/qixianyu/p/6891054.html
使用的例子:
QImage imageOrg;
QImage image;
QRect drawingRect;
//加载图片
imageOrg.load(":/action/resources/defaultmap.jpg");
//imageOrg按照控件的大小缩放,然后赋值给image
//width():控件的宽
//height():控件的高
image = imageOrg.scaled(width(), height(),Qt::KeepAspectRatio);
//获取image的rect
drawingRect = d->image.rect();
9.中英文切换
基于vs2013实现qt的中英文翻译
https://blog.youkuaiyun.com/lion_cxq/article/details/125511780
2.控件的使用
2.1 [控件]QT 栅格布局(Grid Layout)的使用
先选中要格式化的控件,
然后选择图标
参考这篇文章:
https://blog.youkuaiyun.com/yxy244/article/details/96278255
2.2 combo box控件使用要点
//增加item
comboOutputShape->addItem("Rect/Square");
comboOutputShape->addItem("Ellipse/Circle");
//item变化时调用的函数
connect(comboOutputShape, SIGNAL(currentIndexChanged(int)),
this, SLOT(onOutputShapeChanged(int)));
2.3 pushButton控件使用要点
1.拖入控件pushButton控件
2.修改objectName为pushButton_apply
3.文本显示修改为text为 apply
4.在主类里添加信号和槽
connect( this->ui.pushButton_apply, SIGNAL( clicked() ), this, SLOT(apply()));