QWidget成员函数功能和使用详细说明(四)(文字+用例+代码+效果图)

文章目录

  • 1.测试工程配置
  • 2.成员函数
    • 2.1 void setParent(QWidget *parent)
    • 2.2 void setMouseTracking(bool enable)
    • 2.3 bool hasMouseTracking() const
    • 2.4 void setPalette(const QPalette &)
    • 2.5 const QPalette &palette() const
    • 2.6 int QWidget::grabShortcut(const QKeySequence &key, Qt::ShortcutContext context = Qt::WindowShortcut)
    • 2.7 void setSizeIncrement(const QSize &)
    • 2.8 void setSizePolicy(QSizePolicy)
    • 2.9 QSizePolicy sizePolicy() const
    • 2.10 void setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)
    • 2.11 void setUpdatesEnabled(bool enable)
    • 2.12 bool updatesEnabled() const
    • 2.13 void setWindowFilePath(const QString &filePath)
    • 2.14 void setWindowFlags(Qt::WindowFlags type)
    • 2.15 void setWindowIcon(const QIcon &icon)
    • 2.16 void setWindowModality(Qt::WindowModality windowModality)
    • 2.17 Qt::WindowModality windowModality() const
    • 2.18 void setWindowOpacity(qreal level)

1.测试工程配置

创建名为QtGuiAppTest的qwidget工程,带ui文件
在这里插入图片描述

2.成员函数

继承自QObject和QPaintDevice。QObject详见QObject各成员函数功能详细说明(文字+用例+代码+效果图)

2.1 void setParent(QWidget *parent)

给当前控件设置父控件,当前控件会移动到新的parent的(0,0)位置

2.2 void setMouseTracking(bool enable)

(1)功能说明
属性mouseTracking : bool用于设置控件的鼠标跟踪是否启用
如果鼠标跟踪不启用,则仅当鼠标按住左键并移动时控件才能接收到鼠标移动事件
如果鼠标跟踪开启,则不需要鼠标按下,只要鼠标移动就能获取到鼠标移动事件
(2)效果展示
在这里插入图片描述

(3)调用程序
QtGuiAppTest.ui
在这里插入图片描述

QtGuiAppTest.h

#pragma once
#include <QtWidgets/QWidget>
#include "ui_QtGuiAppTest.h"
class QtGuiAppTest : public QWidget
{Q_OBJECT
public:QtGuiAppTest(QWidget *parent = Q_NULLPTR);~QtGuiAppTest();
public slots:void SlotTest(int checkStat);
protected:void mouseMoveEvent(QMouseEvent* event)override;
private:Ui::QtGuiAppTestClass ui;
};

QtGuiAppTest.cpp

#include "QtGuiAppTest.h"
#include<qevent.h>
QtGuiAppTest::QtGuiAppTest(QWidget *parent):  QWidget(parent)
{ui.setupUi(this);connect(ui.checkBox, &QCheckBox::stateChanged,  this, &QtGuiAppTest::SlotTest);
}
QtGuiAppTest::~QtGuiAppTest()
{
}
void QtGuiAppTest::SlotTest(int checkStat)
{switch(checkStat){case Qt::Unchecked:this->setMouseTracking(false);break;case Qt::Checked:this->setMouseTracking(true);break;default:break;}
}
void QtGuiAppTest::mouseMoveEvent(QMouseEvent* event)
{int x = event->x();int y = event->y();QString str = QString("mouse pos: ( %1, %2  )").arg(x).arg(y);ui.textBrowser->setText(str);
}

2.3 bool hasMouseTracking() const

判断是否设置了鼠标跟踪

2.4 void setPalette(const QPalette &)

(1)功能说明
属性palette : QPalette,存储了控件的调色板信息
该属性描述了控件的调色板。在渲染标准组件时,组件的样式使用调色板,并可用作确保自定义控件能够与本机平台的外观保持一致的手段。不同的平台或不同的风格具有不同的调色板是很常见的。
将新调色板分配给一个控件时,此调色板中的颜色角色将与控件的默认调色板组合在一起,形成控件的最终调色板。控件的背景角色的调色板条目用于填充控件的背景(请参阅 QWidget::autoFillBackground),前台角色(foreground role)用于初始化 QPainter 的笔。(即设置了前台颜色角色,则使用qpainter绘制时会渲染为前台颜色)
默认值取决于系统环境。QApplication 维护一个系统/主题调色板,该调色板作为所有控件的默认值。对于某些类型的控件,也可能有特殊的调色板默认值(例如,在 Windows Vista 上,所有派生自 QMenuBar 的类都有一个特殊的默认调色板)。您还可以通过将自定义调色板和控件名称传递给 QApplication::setPalette() 来自行定义控件的默认调色板。最后,样式始终可以在调色板设置之后进行润色(参见 QStyle::polish())。
QWidget 将显式调色板角色从父控件传播到子控件。如果将画笔或颜色分配给调色板上的特定角色,并将该调色板分配给一个控件,则该角色将传播到控件的所有子控件,并覆盖该控件的任何系统默认值。请注意,默认情况下,调色板不会传播到窗口(参见 isWindow()),除非启用了 Qt::WA_WindowPropagation 属性。
当前样式用于渲染所有标准Qt控件的内容,可以从控件调色板中自由选择颜色和画笔,或者在某些情况下,忽略调色板(部分或全部)。特别是,某些样式(如 GTK 样式、Mac 样式和 Windows Vista 样式)依赖于第三方 API 来呈现控件的内容,并且这些样式通常不遵循调色板。因此,将角色分配给控件的调色板并不能保证更改控件的外观。相反,您可以选择应用样式表。
(2)效果展示
在这里插入图片描述

部分子控件跟随父控件pallet变化颜色,且子控件设置自己的pallet是不起作用的
(3)调用程序
QtGuiAppTest.h

#pragma once
#include <QtWidgets/QWidget>
#include "ui_QtGuiAppTest.h"
class QtGuiAppTest : public QWidget
{Q_OBJECT
public:QtGuiAppTest(QWidget *parent = Q_NULLPTR);~QtGuiAppTest();
public slots:void SlotTest(int checkStat);
private:Ui::QtGuiAppTestClass ui;
};

QtGuiAppTest.cpp

#include "QtGuiAppTest.h"
QtGuiAppTest::QtGuiAppTest(QWidget *parent):  QWidget(parent)
{ui.setupUi(this);QPalette p(QColor(148, 233, 237));this->setPalette(p);connect(ui.pushButton, &QPushButton::clicked, this,  &QtGuiAppTest::SlotTest);
}
QtGuiAppTest::~QtGuiAppTest()
{

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/867172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实战干货,企业在数字化转型中如何通过最佳实践落地BI报表?

引言&#xff1a;上一篇文章我们提到&#xff1a;通过9大步骤&#xff0c;帮助企业在数字化转型中搭建数据分析的报表体系&#xff01;在实际中的落地过程&#xff0c;通过实施服务的哪些最佳实践可以确保落地效果&#xff0c;达到项目预期目标&#xff0c;给客户带来实质价值&…

香蕉云编+uniapp打包ios的开发包和生产包

登录香蕉云编&#xff0c;找到 云编-ios证书生成&#xff0c;新建CSR文件&#xff0c;并下载csr文件。 登录苹果开发者中心&#xff0c;进入证书页面。 1.创建一个证书&#xff0c;选择ios Distribution类型即可&#xff0c;这是个通用的证书&#xff0c;既能用来打正式包又能…

“郭有才”商标主要类别都已被注册!

前阵山东网红“郭有才”火遍大江北&#xff0c;当然少不了许多想去申请注册“郭有才”商标名称的&#xff0c;普推商标知产老杨检索&#xff0c;发现“郭有才”商标申请了43个类别&#xff0c;基本上类别都被申请注册&#xff0c;已注册的商标大多是在“郭有才”火之前申请注册…

MyBatis入门程序详解

目录 一、MyBatis概述 二、编写MyBatis入门程序 三、配置SQL提示 四、传统jdbc的劣势 一、MyBatis概述 MyBatis是一个基于Java的持久层框架&#xff0c;它内部封装了JDBC操作&#xff0c;使得开发人员可以更专注于SQL语句本身而非繁琐的JDBC操作细节。在MyBatis中&#xff0…

最新全平台无人直播硬改XCMS系统,支持任何平台

软件功能: 改虚拟摄像头为真实摄像头&#xff0c;改真实麦克风&#xff0c;图层去重、镜头晃动、增加噪点去重、随机播放辅音&#xff0c;两条音轨帮助音频去重、随机音效、随机播放速度&#xff0c;直播源实时转播等等.防违规&#xff0c;防非实时 设备需求: 电脑&#xf…

纯javascript实现图片批量压缩打包zip下载后端ThinkPHP多国语言切换国际站

最近在做一个多国语言的工具站&#xff0c;需要实现多国语言切换&#xff0c;说到多国语言站&#xff0c;肯定是有2种方式&#xff0c;第一是子域名&#xff0c;第二就是子目录。根据自己的需要来确定。 后台配置如下&#xff1a; 前台显示&#xff1a; 前端纯javascript实现…

【深度学习】图形模型基础(5):线性回归模型第三部分:线性回归模型拟合

1.引言 本博文专辑的焦点主要集中在回归模型的实用案例和工具上&#xff0c;从简单的单变量线性回归入手&#xff0c;逐步过渡到包含多个预测变量、非线性模型&#xff0c;以及在预测和因果推断中的应用。本文我们将介绍回归模型推断的一些数学结构&#xff0c;并提供一些代数…

初识STM32:芯片基本信息

STM32简介 STM32是ST公司基于ARM公司的Cortex-M内核开发的32位微控制器。 ARM公司是全球领先的半导体知识产权&#xff08;IP&#xff09;提供商&#xff0c;全世界超过95%的智能手机和平板电脑都采用ARM架构。 ST公司于1987年由意大利的SGS微电子与法国的Thomson半导体合并…

【Linux】:进程创建与终止

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关Linux程序地址空间的相关知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从…

嵌入式开发者应该有的心态自信

各位开发者大家好,今天主要给大家分享一下,嵌入式开发者应该有的心态,缓解工作和生活中的压力,也是非常重要的。 真的。 世界就是个巨大的草台班子,自信点,别人没有你想象的那么厉害。 普通人最大的问题,就是过分高估别人,并且过分贬低自己。 一、对那些看似厉害的人…

DAY20-力扣刷题

1.填充每个节点的下一个右侧节点指针 116. 填充每个节点的下一个右侧节点指针 - 力扣&#xff08;LeetCode&#xff09; 方法一&#xff1a;层次遍历 class Solution {public Node connect(Node root) {if (root null) {return root;}// 初始化队列同时将第一层节点加入队列…

Hadoop权威指南-读书笔记-02-关于MapReduce

Hadoop权威指南-读书笔记 记录一下读这本书的时候觉得有意思或者重要的点~ 还是老样子~挑重点记录哈&#x1f601;有兴趣的小伙伴可以去看看原著&#x1f60a; 第二章 关于MapReduce MapReduce是一种可用于数据处理的编程模型。 MapReduce程序本质上是并行运行的&#xff0c…

WEB04MyBatis

Mybatis mybatis查询 准备 准备工作 在目前的数据库中添加一张数据表emp 将资料中提供的day04-01-mybatis导入的目前的工程中 修改配置文件中的数据库的账户和密码 观察实体类中的属性和数据表中的字段的对应关系 查询结果封装 查询所有 SQL语句 select * from emp; …

苹果电脑清理app垃圾高效清理,无需专业知识

在我们的日常使用中&#xff0c;苹果电脑以其优雅的设计和强大的功能赢得了广泛的喜爱。然而&#xff0c;即便是最高效的设备&#xff0c;也无法免俗地积累各种不必要的文件和垃圾&#xff0c;特别是app垃圾。所以&#xff0c;苹果电脑清理app垃圾高效清理&#xff0c;对于大多…

在Linux系统中配置GitHub的SSH公钥

在Linux系统中配置GitHub的SSH公钥&#xff0c;可以让您无需频繁输入密码即可与GitHub仓库进行交互&#xff0c;提高工作效率。以下是配置步骤: 第一步&#xff1a; 检查SSH密钥是否存在 首先&#xff0c;检查您的用户目录下的.ssh文件夹中是否已有SSH密钥。打开终端&#xff0…

ESD管ESD113-B1-02EL(S)国产替代型号ULC0342CDNH,ULC0321CDNH

雷卯型号全&#xff0c;能替代大量infineon型号。具体如下&#xff1a; 应用于3.3V高速信号静电保护器件&#xff0c;infineon的ESD113-B1-02EL(DFN1006)和ESD113-B1-02ELS(DFN0603)&#xff0c;交期长&#xff0c;价格高。已经有很多客户选雷卯的 ULC0342CDNH(DFN1006)&#…

人体姿态估计库 mediapipe

在jetson-nx上文件夹中的whl包就能安装了&#xff0c;在PC的windows上直接pip install mediapipe就能安装 whl包参考 零基础入门Jetson Nano——MediaPipe双版本&#xff08;CPUGPU&#xff09;的安装与使用_mediapipe gpu-CSDN博客 目录 1 全身姿态检测 1.1 基本使用 1…

Oracle Database 23ai新特性:增加聚合函数对INTERVAL数据类型支持

在Oracle早期的版本&#xff0c;聚合函数和分析函数MIN/MAX 就支持了INTERVAL 数据类型。但是&#xff0c;当我们使用SUM或AVG函数对INTERVAL 数据类型进行运算时&#xff0c;就会报错。 随着Oracle Database 23ai 的发布&#xff0c;增加了 AVG 以及 SUM 函数对INTERVAL 数据…

VirtualBox 安装 Ubuntu Server24.04

环境&#xff1a; ubuntu-2404-server、virtualbox 7.0.18 新建虚拟机 分配 CPU 核心和内存&#xff08;根据自己电脑实际硬件配置选择&#xff09; 分配磁盘空间&#xff08;根据自己硬盘实际情况和需求分配即可&#xff09; 设置网卡&#xff0c;网卡1 负责上网&#xff0c…

零代码复现SCI!P trend+多模型控制混杂一站式搞定!

今天给大家带来的复现内容是CHARLS数据库的一篇横断面研究文章&#xff0c;文章统计方法部分包括了①基线差异性分析、②线性趋势分析计算P trend、③多模型线性回归控制混杂因素。 这些统计方法风暴统计统统一站式搞定&#xff0c;零代码操作&#xff0c;新手小白也可以轻松上…