文章目录
- 1.测试工程配置
- 2.成员函数
-
- 2.1 void setFont(const QFont &)
- 2.2 void setForegroundRole(QPalette::ColorRole role)
- 2.3 QPalette::ColorRole QWidget::foregroundRole() const
- 2.4 void setGeometry(const QRect &)
- 2.5 void setGeometry(int x, int y, int w, int h)
- 2.6 const QRect &geometry() const
- 2.7 void setGraphicsEffect(QGraphicsEffect *effect)
- 2.8 QGraphicsEffect *QWidget::graphicsEffect() const
- 2.9 void setInputMethodHints(Qt::InputMethodHints hints)
- 2.10 Qt::InputMethodHints inputMethodHints() const
- 2.11 void setLayout(QLayout *layout)
- 2.12 QLayout *QWidget::layout() const
- 2.13 void setLayoutDirection(Qt::LayoutDirection direction)
- 2.14 void setMask(const QBitmap &bitmap)
- 2.15 void setMask(const QRegion ®ion)
- 2.16 void setMaximumHeight(int maxh)
- 2.17 int maximumHeight() const
- 2.18 void setMaximumWidth(int maxw)
- 2.19 void setMaximumSize(const QSize &)
- 2.20 void setMaximumSize(int maxw, int maxh)
- 2.21 void setMinimumHeight(int minh)
- 2.22 void setMinimumWidth(int minw)
- 2.23 void setMinimumSize(const QSize &)
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