学会看文档(Assistance)
- QPushButton
- Contents
- QPushButton Class
- Properties
- Public Functions
- Reimplemented Public Functions
- Public Slots
- Static Public Members
- Protected Functions
- Reimplemented Protected Functions
- Additional Inherited Members
- Detailed Description
- Property Documentation
- Member Function Documentation
一个框架,我们首先要熟悉这个框架,而熟悉框架最有效的方法,就是看官方文档。
以QPushButton为例
QPushButton
Contents
Properties:属性
Public Functions:公有函数
Reimplemented Public Functions:重载公有函数
Public Slots:公有槽函数
Static Public Members:静态公有成员
Protected Functions:保护函数
Reimplemented Protected Functions:重载保护函数
Detailed Description:细节描述
QPushButton Class
这个控件提供了一个命令式按钮
Header(头文件):#include < QPushButton >
qmake(make工具):QT += widgets
Inherits(继承自):QAbstractButton
Inherited By(继承):QCommandLinkButton
Properties
- autoDefault : bool
- default : bool
- flat : bool
- 11个继承自QAbstractButton
- 59个继承自QWidget
- 1个继承自QObject
这些后面细节描述再做概述
Public Functions
三个构造函数
// parent:指明基础控件
QPushButton(QWidget *parent = nullptr)
// text:按钮文本信息
QPushButton(const QString &text, QWidget *parent = nullptr)
// icon:按钮的icon
QPushButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr)
析构函数
virtual ~QPushButton()
其他方法
bool autoDefault() const
bool isDefault() const
bool isFlat() const
QMenu *menu() const
void setAutoDefault(bool)
void setDefault(bool)
void setFlat(bool)
void setMenu(QMenu *menu)
Reimplemented Public Functions
virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override
- 21个继承自QAbstractButton
- 214个继承自QWidget
- 31个继承自QObject
- 14个继承自QPaintDevice
Public Slots
void showMenu()
- 5个继承自QAbstractButton
- 19个继承自QWidget
- 1个继承自QObject
Static Public Members
const QMetaObject staticMetaObject
- 5个继承自QWidget
- 9个继承自QObject
Protected Functions
void initStyleOption(QStyleOptionButton *option) const
Reimplemented Protected Functions
virtual bool event(QEvent *e) override
virtual void focusInEvent(QFocusEvent *e) override
virtual void focusOutEvent(QFocusEvent *e) override
virtual void keyPressEvent(QKeyEvent *e) override
virtual void paintEvent(QPaintEvent *) override
- 14个继承自QAbstractButton
- 35个继承自QWidget
- 9个继承自QObject
- 1个继承自QPaintDevice
Additional Inherited Members
- 4个信号继承自QAbstractButton
- 3个信号继承自QWidget
- 2个信号继承自QObject
- 1个保护槽函数继承自QWidget
Detailed Description
这个控件QPushButton提供了一个命令式按钮
按钮或命令按钮可能是任何图形用户界面中最常用的小部件。按(点击)按钮来命令计算机执行某些操作,或回答一个问题。典型的按钮有“OK”、“Apply”、“Cancel”、“Close”、“Yes”、“No”和“Help”。
命令按钮是矩形的,通常显示一个描述其操作的文本标签。可以通过在文本中使用&符号在首选字符前面指定快捷键。例如:
QPushButton *button = new QPushButton("&Download", this);
按钮显示一个文本标签,还有一个小图标。这些可以使用构造函数进行设置,稍后可以使用setText()和setIcon()进行更改。如果按钮被禁用,文本和图标的外观将根据GUI样式进行操作,使按钮看起来“禁用”。
当鼠标、空格键或键盘快捷键激活按钮时,按钮会发出clicked()信号。连接到这个信号来执行按钮的动作。按钮还提供不常用的信号,例如pressed()和released()。
对话框中的命令按钮是默认的自动默认按钮,也就是说,当它们接收到键盘输入焦点时,就会自动成为默认按钮。默认按钮是当用户在对话框中按下Enter或Return键时激活的按钮。您可以使用setAutoDefault()来更改它。请注意,自动默认按钮预留了一些额外的空间,这是绘制默认按钮指示器所必需的。如果你不希望按钮周围有空格,调用setAutoDefault(false)。
一般情况下,当用户单击应用程序或对话框窗口时(例如Apply、Cancel、Close和Help)执行操作,以及当小部件应该具有带有文本标签的宽矩形形状时,请使用按钮。用于改变窗口状态而不是执行操作的小的、通常为方形的按钮(例如QFileDialog右上角的按钮)不是命令按钮,而是工具按钮。Qt为这些按钮提供了一个特殊的类(QToolButton)。
这些相关的类在此先不做概述。
Property Documentation
autoDefault : bool
此属性保存按钮是否为自动默认按钮
如果此属性设置为true,则按钮是自动默认按钮。
在一些GUI样式中,默认按钮周围会有一个额外的框架,最多3个像素或更多。Qt自动在自动默认按钮周围保留空间,也就是说,自动默认按钮可能有一个稍微大一点的大小提示。
比如
// 判断这个按钮是否是自动默认按钮
bool autoDefault() const
// 将这个按钮是否设置为自动默认按钮
void setAutoDefault(bool)
其他类似
Member Function Documentation
QPushButton::QPushButton(const QString &text, QWidget *parent = nullptr)
// Constructs a push button with the parent parent and the text text.
构建一个带有文本和parent的按钮,如
QPushButton *button = new QPushButton("&Download", this);
再来看一个
bool QPushButton::event(QEvent *e)
// Reimplemented from QAbstractButton::event().
这个重载可以一直CTRL+点击可以看到描述:
这是主事件处理程序;它处理事件事件。您可以在子类中重新实现此函数,但我们建议使用专门化的事件处理程序之一。
按键按住和松开事件不同于其他事件。event()检查Tab和Shift+Tab,并尝试适当移动焦点。如果没有小部件来移动焦点(或按下的键不是Tab或Shift+Tab),事件()调用keyPressEvent()。
鼠标和平板电脑事件处理也有点特殊:只有当小部件被启用时,event()才会调用mousePressEvent()等特殊处理程序;否则它将丢弃该事件。
如果事件被识别,这个函数返回true,否则返回false。如果已识别的事件被接受(请参阅QEvent::accepted),则任何进一步的处理(如将事件传播到父小部件)将停止。
QEvent* e = new QEvent(QEvent::Hide);