@bit::Shadow
✧(≖ ◡ ≖✿
目录
[windows frame窗口边框](#windows frame窗口边框)
enabled
描述控件是否处于可用状态(非灰色)
|--------------------|-------------|
| enabled | 作用 |
| bool b isEnabled() | 返回控件是否是可用状态 |
| setTnabled(bool b) | 设置控件状态 |
geometry几何
QRect对象描述控件的位置和大小,在栈上创建即可,区别于QPushButton需要链接到对象树上。QRect对象是一个普通的轻量的数据结构,不属于QObject对象,因此不能链接也无需链接到对象树上。
QRect对象设置控件位置(x, y)和大小(width height)
|------------------------------------------------------|-------------------------------------------------------------------------|
| geometry | 作用 |
| QRect geometry() | 返回QRect对象,获取控件坐标(x,y)+长度高度(width,height) |
| setGeometry(QRect) | 启用对控件的属性更改,像:rect.setY(rect.y()-5);ui->pushButton->setGeometry(rect); |
| setGeometry(int x, int y, int width, int height) | 分别设置控件属性 |
windows frame窗口边框
一般操作区的外边界区


相应的使用frameGeometry系列控制。
注意点:
构造函数
windows frame若位于Widget的构造函数中则不会起作用!
因为:定义在构造函数中无法及时同步。
控件相对位置
我们在设置控件时要注意其相对于谁,是frame还是非frame。
综合使用演示:
cpp
void Widget::Button1()
{
QPushButton* Window_FrameButton = new QPushButton(this);
Window_FrameButton->setText(R"(\frame_Show)");
Window_FrameButton->setEnabled(false);
// Window_FrameButton->move(100,50);
Window_FrameButton->setGeometry(100,50,150,80);
}
运行结果:

QIcon控件图标
QIcon是基于本地图片(仅静态)设置图标的类。首选精品免费网站:阿里巴巴图片矢量库
同geometry的QRect对象栈上创建就可以。
|-----------------------------------|------------------|
| QIcon | 作用 |
| QIcon windowIcon() | 返回控件的窗口图标QIcon对象 |
| setWindowIcon(const QIcon& icon) | 设置控件的窗口图标 |
QIcon对象使用文件路径的查找模式在文件内查找。
如:
cpp
QIcon qicon(R"(D:\devenv.exe\DriveC\)");//使用绝对路径/相对路径均可以
但是这样链接存在一种问题:
程序协作开发要传递给别人,当传递后如果对方路径下无此文件等等类似错误就会导致图片挂掉,加载失败。因此诞生了.qrc机制:
.qrc寻路机制
程序开发后共享时为避免图片路径的错误、丢失等问题,QT内采用一种模拟图片路径的方法,使得图片:.jpg/.png图片--->.qrc文件-->.cpp文件--->.exe文件,有效地解决了图片丢失的问题。
创建流程
QT文件创建





图片创建导入
导入的Qt内的虚拟路径。
第二张图都建议修改为"/"------方便后续的路径索引


图片拷贝
图片必须拷贝到点击"Add Files"后的跳转目录下(一级及多级目录)


文件索引常见问题
1.图片名不含中文。
2.文件路径未正确拷贝。
报错:

改正:
修改名字为CSDNAvatar.png后,拷贝到指定目录。

代码链接
点击按钮后图片更改:
cpp
//Widget.cpp
void Widget::on_pushButton_Avatar_clicked()
{
//QIcon originalIcon = this->windowIcon();
QIcon newIcon(":/new/prefix1/CSDNAvatar.png");
this->setWindowIcon(newIcon);
}
🔗演示视频:
点击按钮后修改Wigdet图标.mp4
Widget图标按钮点击更改演示
Qt奇妙的报错机制
1.当予以无标题windowTitle控件设置标题:
cpp
pushButton->setWindowTitle("newTitle");
即使该控件无Title运行点击均不会报错!
2.图片路径索引错误
cpp
//QIcon newIcon(":/new/prefix1/CSDNAvatar.png");
// |
QIcon newIcon(":/new/prifix1/CSDNAvatar.png");
即使路径错误也不会报错!
感谢支持,持续更新
欢迎关注
