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

qt QFrame详解

1、概述

QFrame是Qt框架中用于提供框架或边框的控件,主要用于在图形用户界面(GUI)中创建框架,并提供各种边框样式和功能。它是Qt中一个基础的容器类,也是许多基础控件的基类,可以被QLCDNumber、QToolBox、QLabel、QListView等多种部件继承。QFrame主要用于装饰或者为其他控件提供容器,可以创建自定义的框架样式,或者作为其他需要边框控制的控件的基类。

2、重要方法

QFrame提供了丰富的边框控制功能,以下是一些重要的方法:

  • setFrameShape(Shape shape): 设置框架的形状。QFrame支持多种框架形状,如矩形框(Box)、面板(Panel)、Windows风格的面板(WinPanel)等。
  • setFrameShadow(Shadow shadow): 设置框架的阴影样式。QFrame提供了多种阴影样式,如凸起(Raised)、凹下(Sunken)等。
  • setLineWidth(int width): 设置框架的线条宽度。
  • setStyleSheet(const QString &style): 使用样式表设置QFrame的背景色、边框颜色等样式属性。
3、重要信号

QFrame作为QWidget的子类,继承了许多QWidget的信号,但QFrame本身并没有定义特有的信号。不过,由于QFrame通常作为其他控件的容器或装饰,因此可以结合其他控件的信号和槽机制来实现特定的交互功能。

4、常用枚举类型

QFrame::shape定义了框架的形状:

  • QFrame::NoFrame
  • QFrame::Box
  • QFrame::Panel
  • QFrame::HLine
  • QFrame::VLine
  • QFrame::StyledPanel

QFrame::Shadow定义了框架的阴影类型:

  • QFrame::Plain
  • QFrame::Raised
  • QFrame::Sunken
#include <QApplication>
#include <QFrame>
#include <QVBoxLayout>
#include <QPushButton>
#include <QWidget>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    // 创建一个主窗口
    QWidget *mainWindow = new QWidget;
    mainWindow->setWindowTitle("QFrame Example");
    mainWindow->resize(300, 200);

    // 创建一个垂直布局管理器
    QVBoxLayout *layout = new QVBoxLayout(mainWindow);

    // 创建一个QFrame对象
    QFrame *frame = new QFrame(mainWindow);
    frame->setGeometry(10, 10, 280, 150); // 设置框架的位置和大小
    frame->setFrameShape(QFrame::Panel); // 设置框架形状为面板
    frame->setFrameShadow(QFrame::Raised); // 设置框架阴影为凸起
    frame->setLineWidth(2); // 设置框架线条宽度
    frame->setStyleSheet("QFrame { background-color: lightgray; border: 3px solid blue; }"); // 使用样式表设置背景色和边框颜色

    
    QPushButton *button = new QPushButton("Click Me", frame); 
    layout->addWidget(button); 

    // 显示主窗口
    mainWindow->show();

    return app.exec();
}

需要商务合作(定制程序)的欢迎私信!!

觉得有帮助的话,打赏一下呗。。

           


http://www.kler.cn/a/394723.html

相关文章:

  • 谷歌Gemini与Anthropic Claude对比测试引发争议:AI竞赛暗流涌动
  • C语言项目 天天酷跑(上篇)
  • 如何在 Ubuntu 22.04 上安装 phpMyAdmin
  • 实现 QTreeWidget 中子节点勾选状态的递归更新功能只影响跟节点的状态父节点状态不受影响
  • MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式)
  • 007-spring-bean的相关配置(重要)
  • 企望制造ERP drawGrid.action 接口SQL注入漏洞复现 [附POC]
  • 路径规划——RRT-Connect算法
  • Linux编辑/etc/fstab文件不当,不使用快照;进入救援模式
  • 后端一次性返回数据,前端分页
  • Window下PHP安装最新sg11(php5.3-php8.3)
  • BERT的中文问答系统30
  • 【GoWeb示例】通过示例学习 Go 的 Web 编程
  • 星绘AI 0.8.9 | 免费的AI绘画写真滤镜穿搭软件
  • ArkTS学习笔记:ArkTS起步
  • 第12章 系统部署
  • docker里rtsp推流+同一个docker接受流进行部署
  • SpringCloud框架学习(第三部分:Resilience4j 与 Micrometer)
  • css-50 Projects in 50 Days(4)
  • ubuntu升级postgres
  • spring boot整合https协议
  • 深入浅出C#编程语言
  • 深度学习模型评价指标介绍
  • Hive的数据导出
  • hadoop 3.x 伪分布式搭建
  • PTA部分题目C++重练