当前位置: 首页 > news >正文

QT-常用控件(一)

目录

QWIDGET-enable属性

QWIDGET-geometry属性(几何)

window frame的影响

QWIDGET-windowtitle属性

QWIDGET-windowlcon属性(图标)


QWIDGET-enable属性

表示一个控件是否处于可用状态,相对概念为禁用,所谓"禁用"指的是该控件不能接收任何用户的输入事件,并且外观上往往是灰色的,如果一个 widget 被禁用,则该 widget 的子元素也被禁用。

禁用效果:

QWIDGET-geometry属性(几何)

粗浅的理解为(x,y,width,height)四个属性的统称;

Qt 中针对一些几何上的概念也进行了封装。
QPoint 表示一个点,QRect 表示一个矩形,他们都属于是小对象, 里面的属性非常少,占用空间也小.C++中使用上述对象, 通常就会按照值的方式来传递参数了。

样例:我们期望点击对应的按钮来修改target对应的geometry。

控件函数操作操作:

当前代码实际执行的效果,是在调整左上角位置,左上角位置改变的同时,高度和宽度也同时发生了改变。

平移效果代码:

window frame的影响

Qt 中存在多种用于处理窗口位置和尺寸的 API,且不同 API 基于的坐标系原点有所不同,同时在特定阶段调用这些 API 会有特殊表现:

  • 从坐标系和 API 本身来看,geometry() 与 setGeometry() 以 Widget 本体左上角为原点,不考虑窗口框架(Window frame);frameGeometry() 和 setFrameGeometry() 以窗口框架左上角为原点,会考虑窗口框架。
  • Widget::Widget(Qwidget*parent):OWidget(parent),ui(new Ui::widget)
    {ui->setupui(this);QRect rect1=this->geometry();ORect rect2=this->frameGeometry();qDebug()<< rect1;qDebug()<< rect2;}
    
  • 从代码运行阶段的情况来看,若在 Widget 类的构造函数中(此时 Widget 对象正在构造,还未被加入到窗口框架),直接针对 Widget 对象使用 geometry 和 frameGeometry 并通过 qDebug() 输出结果,能观察到二者返回的位置尺寸信息存在区别。
  • 进行链接并运行后,结果如下图所示:

QWIDGET-windowtitle属性

需要注意,下图使用方法并不正确。

关键问题:QPushButton 调用 setWindowTitle 无意义

setWindowTitle 是用于设置 ** 窗口(QWidget 及其顶层子类,如 QMainWindowQDialog 等)** 的标题,显示在窗口的标题栏上。

而 QPushButton 是 “按钮部件”,不是独立的窗口(它是依附于父窗口存在的子部件),调用 button->setWindowTitle("通过按钮设置窗口标题") 不会有任何效果 —— 按钮没有自己的 “标题栏” 来显示这个标题。

正确的逻辑(如果要通过按钮修改窗口标题)

应该在按钮的点击信号槽中,修改父窗口(或目标窗口)的标题。示例如下:

// 假设当前类是 QWidget 子类(如 MainWindow)
this->setWindowTitle("这是窗口标题");QPushButton* button = new QPushButton("按钮", this);
// 连接按钮的点击信号到自定义槽函数
connect(button, &QPushButton::clicked, this, [this]() {// 点击按钮时,修改“当前窗口”的标题this->setWindowTitle("通过按钮设置窗口标题");
});

这样,点击按钮时,整个窗口的标题栏才会更新为 “通过按钮设置窗口标题”。

总结

  • setWindowTitle 只对 “窗口级部件” 有效,子部件(如按钮、标签等)调用它不会生效。
  • 若要通过子部件(如按钮)修改窗口标题,需在子部件的交互逻辑中,操作目标窗口的 setWindowTitle

QWIDGET-windowlcon属性(图标)

Qt 把各种涉及到的相关概念,都封装成了 类,Qlcon 就表示一个图标,Qlcon 更推荐创建在栈上。

 // 写法一:使用双反斜杠QIcon icon("C:\\icons\\example.ico"); // 写法二:使用正斜杠// QIcon icon("C:/icons/example.ico"); 

假设图标文件 icon.png 和程序可执行文件在同一目录,直接写文件名即可:

QIcon icon("icon.png");
http://www.dtcms.com/a/453553.html

相关文章:

  • 网站开发选asp还是hph网站域名解析步骤
  • AI行业应用深度解析:从理论到实践的跨越
  • DeepMind 和罗光记团队 推出“帧链”概念:视频模型或将实现全面视觉理解
  • 外贸圈阿里巴巴微信seo什么意思
  • 【专业词汇】元认知
  • 有什么网站开发软件网页棋牌开发
  • Flutter与Dart结合AI开发实战
  • Easyx使用(数据可视化)
  • 基于单片机的大货车防偷油系统设计
  • JavaScript:神奇的ES6之旅
  • 延吉网站开发公司特别好的企业网站程序
  • Avalonia:现代跨平台UI开发的卓越之选
  • gta5网站正在建设阿里云网站建设与发布题库
  • 网页制作的网站淘宝页面设计的网站
  • 【STM32项目开源】STM32单片机人体健康监测系统
  • 车载诊断架构 --- 车载ECU故障类型详解(上)
  • 房产中介做网站wordpress 下载插件xydown
  • 廊坊自助建站设计自己开发的软件如何赚钱
  • 【Redis学习】Redis常用数据类型的万字详解
  • 探讨生成式AI在代码评审与重构中的决策权重分配
  • 【LeetCode380题】和【LeetCode238题】题解
  • The “Launch”_2 - 价值交付与灰度发布的系统实现方案
  • 做的网站怎么打开是白板静态网站 价格
  • JavaScript Boolean(布尔)
  • CentOS 7.6 系统源码部署 HivisionIDPhotos
  • 电子电气架构 --- 汽车座舱行业发展现状分析
  • 李建忠 电子商务网站建设与管理 pptwordpress百度不收录文章
  • 算法入门:专题攻克一---双指针(3)有效三角形的个数
  • 怎么做才能提高网站权重360建筑网证书估价
  • IPTV Pro 9.1.9| 空壳直播软件,可导入直播源