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

1.测试工程配置

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

2.成员函数

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

2.1 void setFont(const QFont &)

设置当前控件的字体样式。该函数主要改变控件的属性font : QFont。当新建一个字体并赋予当前的控件,那么控件的字体样式为新建字体和已有字体样式信息的合并。可以通过调用fontinfo()获取最终的字体样式的拷贝。最终的字体样式也会被用于初始化QPainter的字体
默认字体依赖于系统环境,QApplication维持着一个系统/主题的字体,该字体作为所有控件的默认字体。某些类型的控件也可能有特殊的默认字体。可以通过QApplication::setFont()自定义默认字体。
QWidget 显式的将字体属性从父级传播到子级。如果更改字体的特定属性并将该字体分配给一个控件,则该属性将传播到该控件的所有子级,从而覆盖该属性的任何系统默认值。请注意,默认情况下,除非启用了 Qt::WA_WindowPropagation 属性,否则字体不会传播到 Windows(参见 isWindow())。
QWidget 的字体传播类似于其调色板的传播。
当前用于渲染所有标准Qt控件的内容的风格,可以自由选择使用控件字体,或者在某些情况下忽略它(部分或完全)。特别是,某些样式(如 GTK 样式、Mac 样式和 Windows Vista 样式)会对控件字体进行特殊修改,以匹配平台的本机外观。因此,为控件的字体设置属性并不能保证更改控件的外观。相反,如果要修改外观可以选择使用styleSheet。

2.2 void setForegroundRole(QPalette::ColorRole role)

(1)功能说明
设置前景角色。前景角色定义了一种颜色,颜色来自于控件的调色板palette。前景角色用于绘制窗口的前景。如果参数role的值为QPalette::NoRole。则控件使用于背景角色相同的前景角色。
(2)效果展示
设置qlabel的前景色改变
在这里插入图片描述

(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 id);
private:
    Ui::QtGuiAppTestClass ui;
};

QtGuiAppTest.cpp

#include "QtGuiAppTest.h"
QtGuiAppTest::QtGuiAppTest(QWidget *parent)
    :  QWidget(parent)
{
   
    ui.setupUi(this);
    connect(ui.comboBox,  QOverload<int>::of(&QComboBox::currentIndexChanged),  this,
            &QtGuiAppTest::SlotTest);
}
QtGuiAppTest::~QtGuiAppTest()
{
   
}
void QtGuiAppTest::SlotTest(int id)
{
   
    switch(id)
    {
   
    case 0:
        ui.label->setForegroundRole(QPalette::Light);
        break;
    case 1:
         ui.label->setForegroundRole(QPalette::Midlight);
        break;
    case 2:
        ui.label->setForegroundRole(QPalette::Dark);
        break;
    case 3:
        ui.label->setForegroundRole(QPalette::Mid);
        break;
    case 4:
        ui.label->setForegroundRole(QPalette::Shadow);
        break;
    case 5:
         ui.label->setForegroundRole(QPalette::Highlight);
        break;
    default:
        break;
    }
}

2.3 QPalette::ColorRole QWidget::foregroundRole() const

获取前景色,如果没有明确设置前景色,则返回背景色

2.4 void setGeometry(const QRect &)

(1)功能说明
该属性保存了控件相对与父节点的几何形状,不包括窗口框架
当改变控件的这个形状属性,如果该控件是可见的,将立即收到一个移动事件(moveEvent())和/或一个大小调整事件(resizeEvent())。如果控件当前不是可见的,则可以保证在该控件显示之前接收到相应的事件。
注意:如果在moveEvent()或resizeEvent()中调用setGeometry,将导致无限递归
(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();
private:
    Ui::QtG
  • 23
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒人空想家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值