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

QT6 源(43):class QGroupBox : public QWidget ,最常用的容器类 QGroupBox 的源码

(1)源码来自于头文件 qgroupbox . h

#ifndef QGROUPBOX_H
#define QGROUPBOX_H#include <QtWidgets/qtwidgetsglobal.h>
#include <QtWidgets/qframe.h>/*
QT_CONFIG宏实现了对 Qt特性的安全编译时检查。特性可以处于三种状态:
0 或未定义:在测试时会引发编译错误
-1:该功能不可用
1:该功能可用The QT_CONFIG macro implements a safe compile time check for features of Qt.Features can be in three states:0 or undefined: This will lead to a compile error when testing for it-1: The feature is not available1: The feature is available
*/
#define QT_CONFIG(feature) (1/QT_FEATURE_##feature == 1)#define QT_REQUIRE_CONFIG(feature) Q_STATIC_ASSERT_X(QT_FEATURE_##feature == 1,\"Required feature " #feature " for file " __FILE__ " not available.")QT_REQUIRE_CONFIG(groupbox);  //这里是在编译前确保本模块的源码已存在。模块化编程QT_BEGIN_NAMESPACE //说明本容器定义在 QT 的全局空间里class QGroupBoxPrivate;
class QStyleOptionGroupBox;class Q_WIDGETS_EXPORT QGroupBox : public QWidget //所有控件的基类
{Q_OBJECT //又插入了这个宏,以释放一些成员函数与成员方法//此属性包含组框标题文本。 没有默认的标题文本。//如果标题包含一个连字符ampersand(&)和一个字母,则组框标题文本将具有键盘快捷键。//  g->setTitle("&User information");//在上面的例子中,Alt+U 将键盘焦点移动到组框。//请参阅 QShortcut 文档以获取详细信息(要显示实际的等号,请使用'&&')。Q_PROPERTY(QString title READ title WRITE setTitle)Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment)//此属性包含组框标题的对齐方式。//大多数样式将标题放在框架的顶部。可以使用以下列表中的单个值指定标题的水平对齐方式://Qt::AlignLeft 将标题文本与组框的左侧对齐。//Qt::AlignRight 将标题文本与组框的右侧对齐。//Qt::AlignHCenter将标题文本与组框的水平中心对齐。//此属性表示组框是平涂 painted flat还是带有边框.//-个组框通常由一个周围的框架组成,顶部有一个标题。//如果启用了此属性,则大多数样式只会绘制框架的顶部;否则,会绘制整个框架。//默认情况下,此属性被禁用,即除非明确指定,否则组框不是扁平的。//注:在某些样式中,扁平和非扁平的组框具有类似的表示方式,可能不像其他样式中那样明显区分。Q_PROPERTY(bool flat READ isFlat WRITE setFlat)//这个属性表示组框的标题中是否有一个复选框。//如果此属性为真,则组框使用复选框显示其标题,而不是使用普通标。//如果复选框被选中,则组框的子项被启用;否则,它们被禁用且不可访问。//默认情况下,组框不可勾选。//如果为组框启用了此属性,则也会首先进行检查,以确保其内容已启用。Q_PROPERTY(bool checkable READ isCheckable WRITE setCheckable)Q_PROPERTY(bool checked READ isChecked WRITE setChecked NOTIFY toggled USER true)//此属性表示组框是否已选中.//如果组框是可检查的,则显示带有复选框。//如果复选框被选中,则组框的子项被启用;否则,子项被禁用,用户无法访问。//默认情况下,可检查的复选框也会被选中。
private:Q_DISABLE_COPY(QGroupBox)Q_DECLARE_PRIVATE(QGroupBox)Q_PRIVATE_SLOT(d_func(), void _q_setChildrenEnabled(bool b))public://Constructs a group box widget with the given parent but with no title.explicit QGroupBox(QWidget *parent = nullptr); //构造函数explicit QGroupBox(const QString &title, QWidget *parent = nullptr);//Constructs a group box with the given title and parent.~QGroupBox();QSize minimumSizeHint() const override;//Q_PROPERTY(QString title READ title WRITE setTitle)QString title() const;void setTitle(const QString &title);//Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment)Qt::Alignment alignment() const;void       setAlignment(int alignment);//Q_PROPERTY(bool flat READ isFlat WRITE setFlat)bool  isFlat() const;void setFlat(bool flat);//Q_PROPERTY(bool checkable READ isCheckable WRITE setCheckable)bool  isCheckable() const;void setCheckable(bool checkable);//Q_PROPERTY(bool checked READ isChecked WRITE setChecked NOTIFY toggled USER true)bool isChecked() const;
public Q_SLOTS:void setChecked(bool checked);Q_SIGNALS://这个信号是在复选框被激活时发出的(即,当鼠标光标在按钮内时按下然后释放),//或者当快捷键被键入时发出的。值得注意的是,如果调用setChecked(),则不会发出此信号。//如果选中复选框,则 checked 为 true;如果未选中复选框,则 checked 将为 false。void clicked(bool checked = false);void toggled(bool on);//如果复选框是可检查的,则在切换复选框时发出此信号。//如果复选框被选中,则on为true;否则,为false//注:已检查属性的通知信号。protected: //只可以被子类使用,外部不可用//使用本 QGroupBox的值初始化 option。//当子类需要 QStyleOptionGroupBox但不希望自己填充所有信息时,此方法非常有用。virtual void initStyleOption(QStyleOptionGroupBox *option) const;bool        event(QEvent       *event) override; //全是继承来的事件void   childEvent(QChildEvent  *event) override;void  resizeEvent(QResizeEvent *event) override;void   paintEvent(QPaintEvent  *event) override;void  changeEvent(QEvent *event) override;void focusInEvent(QFocusEvent *event) override;void mousePressEvent(QMouseEvent *event) override;void mouseMoveEvent(QMouseEvent *event) override;void mouseReleaseEvent(QMouseEvent *event) override;};QT_END_NAMESPACE#endif // QGROUPBOX_H

(2)

谢谢

http://www.xdnf.cn/news/1133.html

相关文章:

  • 网络编程基础
  • mybatis-plus开发orm
  • Word处理控件Spire.Doc系列教程:C# 为 Word 文档设置背景颜色或背景图片
  • 静压模型SWASH学习(9)——平底水槽高频驻波算例(Standing short wave in closed basin)
  • Django 入门实战:从环境搭建到构建你的第一个 Web 应用
  • PyTorch卷积层填充(Padding)与步幅(Stride)详解及代码示例
  • 一款丰富的工作流自动化平台 | N8N 83.6K ⭐
  • 基于外部中中断机制,实现以下功能: 1.按键1,按下和释放后,点亮LED 2.按键2,按下和释放后,熄灭LED 3.按键3,按下和释放后,使得LED闪烁
  • Android 中实现图片翻转动画(卡片翻转效果)
  • react使用01
  • 基于微信小程序的走失儿童帮助系统-项目分享
  • PerfettoSQL
  • 火山引擎实时语音合成WebSocket V3协议Python实现demo
  • redis数据类型-基数统计HyperLogLog
  • 搜索引擎的高级语法
  • 前端性能优化全攻略:JavaScript 优化、DOM 操作、内存管理、资源压缩与合并、构建工具及性能监控
  • 复刻低成本机械臂 SO-ARM100 3D 打印篇
  • RHCE 作业二(密钥登录实验)
  • XPath 语法入门
  • day35图像处理OpenCV
  • docker镜像新增加用户+sudo权限,无dockerfile
  • osxcross 搭建 macOS 交叉编译环境
  • LangChain4j 搭配 Kotlin:以协程、流式交互赋能语言模型开发
  • [特殊字符]【Qt自定义控件】创意开关按钮 - 丝滑动画+自定义样式+信号交互 | 附完整源码
  • 人工智能在PET-CT中的应用方向探析
  • 环境变量(Linux)
  • SparkStreaming概述
  • C# MP3 伴奏
  • MYSQL之库的操作
  • C++设计模式