当前位置: 首页 > 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

相关文章:

  • [CKS] K8S NetworkPolicy Set Up
  • 半导体企业如何利用 Jira 应对复杂商业变局?
  • HelloMeme 上手即用教程
  • Rust 所有权机制
  • 2411C++,C++26反射示例
  • 【Linux】TCP原理
  • 企望制造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++重练