QAbstractButton Class
QAbstractButtonクラスはボタンウィジェットの抽象ベースクラスで、ボタンに共通する機能を提供します。詳細...
Header: | #include <QAbstractButton> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Inherits: | QWidget |
Inherited By: |
プロパティ
|
パブリック関数
QAbstractButton(QWidget *parent = nullptr) | |
virtual | ~QAbstractButton() |
bool | autoExclusive() const |
bool | autoRepeat() const |
int | autoRepeatDelay() const |
int | autoRepeatInterval() const |
QButtonGroup * | group() const |
QIcon | icon() const |
QSize | iconSize() const |
bool | isCheckable() const |
bool | isChecked() const |
bool | isDown() const |
void | setAutoExclusive(bool) |
void | setAutoRepeat(bool) |
void | setAutoRepeatDelay(int) |
void | setAutoRepeatInterval(int) |
void | setCheckable(bool) |
void | setDown(bool) |
void | setIcon(const QIcon &icon) |
void | setShortcut(const QKeySequence &key) |
void | setText(const QString &text) |
QKeySequence | shortcut() const |
QString | text() const |
パブリックスロット
void | animateClick() |
void | click() |
void | setChecked(bool) |
void | setIconSize(const QSize &size) |
void | toggle() |
シグナル
保護された関数
virtual void | checkStateSet() |
virtual bool | hitButton(const QPoint &pos) const |
virtual void | nextCheckState() |
再実装された保護された関数
virtual void | changeEvent(QEvent *e) override |
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 | keyReleaseEvent(QKeyEvent *e) override |
virtual void | mouseMoveEvent(QMouseEvent *e) override |
virtual void | mousePressEvent(QMouseEvent *e) override |
virtual void | mouseReleaseEvent(QMouseEvent *e) override |
virtual void | paintEvent(QPaintEvent *e) override = 0 |
virtual void | timerEvent(QTimerEvent *e) override |
詳細説明
このクラスは抽象ボタンを実装します。このクラスのサブクラスは、ユーザのアクションを処理し、ボタンの描画方法を指定します。
QAbstractButtonは、プッシュ・ボタンとチェック可能(トグル)ボタンの両方をサポートしています。チェック可能ボタンは、QRadioButton とQCheckBox クラスで実装されています。プッシュ・ボタンは、QPushButton とQToolButton クラスに実装されています。これらは、必要に応じてトグル動作も提供します。
どのボタンも、テキストとアイコンを含むラベルを表示できます。setText() はテキストを設定し、setIcon() はアイコンを設定します。ボタンが無効の場合、そのラベルは変更され、ボタンが "無効 "に見えるようになります。
ボタンがアンパサンド('&')を含む文字列のテキスト・ボタンの場合、QAbstractButtonは自動的にショートカット・キーを作成します。例えば
QPushButton *button = new QPushButton(tr("Ro&ck && Roll"), this);
Alt+C すなわち、ユーザーがAlt+C を押すと、ボタンはanimateClick() を呼び出します。詳細はQShortcut のドキュメントを参照してください。実際のアンパサンドを表示するには、「&&」を使用します。
また、setShortcut ()関数を使用して、カスタム・ショートカット・キーを設定することもできます。これは、主にテキストを持たないボタンに便利です。
button->setIcon(QIcon(":/images/print.png")); button->setShortcut(tr("Alt+F7"));
Qt が提供するすべてのボタン (QPushButton,QToolButton,QCheckBox,QRadioButton) は、text とicons の両方を表示できます。
ボタンは、QPushButton::setDefault() とQPushButton::setAutoDefault() によって、ダイアログのデフォルト・ボタンにすることができます。
QAbstractButtonは、ボタンに使用されるほとんどの状態を提供します:
- isDown() は、ボタンが押下されているかどうかを示します。
- isChecked() はボタンがチェックされているかどうかを示します。チェック可能なボタンのみ、チェックしたり外したりすることができます(下記参照)。
- isEnabled() はボタンがユーザによって押されるかどうかを示します。
注意: 他のウィジェットとは対照的に、QAbstractButtonから派生したボタンは、無効化されてもマウスイベントやコンテキストメニューイベントを受け付ける。
- setAutoRepeat(autoRepeatDelay とautoRepeatInterval は、自動繰り返しがどのように行われるかを定義します。
- setCheckable() はボタンがトグルボタンかどうかを設定します。
isDown() とisChecked() の違いは以下の通りです。ユーザーがトグル・ボタンをクリックしてチェックすると、ボタンはまず押され、チェックされた状態になります。ユーザーがもう一度クリックすると(チェックを外すと)、ボタンはまず押された状態になり、次にチェックされていない状態になります(isChecked ()とisDown ()は両方ともfalseです)。
QAbstractButtonは4つのシグナルを提供します:
- pressed() は、マウスカーソルがボタンの内側にあるときにマウスの左ボタンが押されたときに発せられます。
- released() はマウスの左ボタンが離されたときに発せられます。
- clicked() は、ボタンが最初に押されてから離されたとき、ショートカット・キーが入力されたとき、click() またはanimateClick() が呼び出されたときに発せられます。
- toggled() は、トグル・ボタンの状態が変化したときに発行されます。
QAbstractButtonをサブクラス化するには、ボタンのアウトラインとテキストまたはpixmapを描画するために、少なくともpaintEvent ()を再実装する必要があります。一般的には、sizeHint ()を再実装することをお勧めします。また、hitButton (ボタンが押されたかどうかを判断する)を再実装することもあります。2つ以上のステートを持つボタン(トライステート・ボタンなど)の場合は、checkStateSet ()とnextCheckState ()も再実装する必要があります。
QButtonGroupも参照してください 。
プロパティの説明
autoExclusive : bool
このプロパティは、自動排他性が有効かどうかを保持します。
自動排他性が有効な場合、同じ親ウィジェットに属するチェック可能ボタンは、同じ排他的ボタングループに属しているかのように振る舞います。排他的ボタングループでは、常に1つのボタンだけをチェックすることができます。
このプロパティは、ボタングループに属するボタンには影響しません。
autoExclusiveは、ラジオボタンを除き、デフォルトではオフになっています。
アクセス関数:
bool | autoExclusive() const |
void | setAutoExclusive(bool) |
QRadioButtonも参照してください 。
autoRepeat : bool
このプロパティは、autoRepeat が有効かどうかを保持します。
autoRepeat が有効な場合、ボタンが押下されているときにpressed()、released()、clicked() の各信号が一定間隔で出力されます。autoRepeat はデフォルトではオフです。初期遅延と繰り返し間隔は、autoRepeatDelay とautoRepeatInterval によってミリ秒単位で定義されます。
注意: ボタンがショートカット・キーによって押下された場合、自動リピートはこのクラスではなくシステムによって有効化され、時間設定されます。pressed(),released(),clicked() シグナルは、通常の場合と同様に発せられます。
アクセス関数:
bool | autoRepeat() const |
void | setAutoRepeat(bool) |
autoRepeatDelay : int
このプロパティは、自動繰り返しの初期遅延を保持する。
autoRepeat が有効な場合、autoRepeatDelay は、自動繰り返しが開始するまでの初期遅延をミリ秒単位で定義します。
アクセス関数:
int | autoRepeatDelay() const |
void | setAutoRepeatDelay(int) |
autoRepeat およびautoRepeatIntervalも参照のこと 。
autoRepeatInterval : int
このプロパティは、自動繰り返しの間隔を保持する。
autoRepeat が有効な場合、autoRepeatInterval は自動繰り返し間隔の長さをミリ秒単位で定義します。
アクセス関数:
int | autoRepeatInterval() const |
void | setAutoRepeatInterval(int) |
autoRepeat およびautoRepeatDelayも参照の こと。
checkable : bool
このプロパティは、ボタンがチェック可能かどうかを保持します。
デフォルトでは、ボタンはチェック可能ではありません。
アクセス関数:
bool | isCheckable() const |
void | setCheckable(bool) |
checkedも参照して ください。
checked : bool
このプロパティは、ボタンがチェックされているかどうかを保持します。
チェック可能なボタンのみチェックできます。デフォルトでは、ボタンはチェックされていません。
アクセス関数:
bool | isChecked() const |
void | setChecked(bool) |
通知シグナル:
void | toggled(bool checked) |
checkableも参照してください 。
down : bool
このプロパティは、ボタンが押下されているかどうかを保持します。
このプロパティがtrue
の場合、ボタンは押下されています。このプロパティを true に設定すると、シグナルpressed() とclicked() は出力されません。デフォルトは false です。
アクセス関数:
bool | isDown() const |
void | setDown(bool) |
icon : QIcon
このプロパティは、ボタンに表示されるアイコンを保持します。
アイコンのデフォルトサイズはGUIスタイルによって定義されますが、iconSize プロパティを設定することによって調整することができます。
アクセス関数:
QIcon | icon() const |
void | setIcon(const QIcon &icon) |
iconSize : QSize
このプロパティは、このボタンに使用されるアイコンサイズを保持します。
デフォルトのサイズはGUIスタイルによって定義されます。これはアイコンの最大サイズです。小さいアイコンは拡大されません。
アクセス関数:
QSize | iconSize() const |
void | setIconSize(const QSize &size) |
shortcut : QKeySequence
このプロパティは、ボタンに関連付けられたニーモニックを保持します。
アクセス関数:
QKeySequence | shortcut() const |
void | setShortcut(const QKeySequence &key) |
text : QString
このプロパティは、ボタンに表示されるテキストを保持します。
ボタンにテキストがない場合、text() 関数は空の文字列を返します。
テキストにアンパサンド文字 ('&') が含まれている場合は、ショートカットが自動的に作成されます。の後に続く文字がショートカット・キーとして使用されます。テキストでショートカットが定義されていない場合、以前のショートカットは上書きまたはクリアされます。詳しくはQShortcut のドキュメントを参照してください。実際のアンパサンドを表示するには'&&'を使う。
デフォルトのテキストはありません。
アクセス関数:
QString | text() const |
void | setText(const QString &text) |
メンバ関数ドキュメント
[explicit]
QAbstractButton::QAbstractButton(QWidget *parent = nullptr)
parent を持つ抽象ボタンを構築します。
[virtual noexcept]
QAbstractButton::~QAbstractButton()
ボタンを破棄します。
[slot]
void QAbstractButton::animateClick()
アニメーションクリックを実行します:ボタンはすぐに押され、100ms後に離されます。
ボタンがリリースされる前にこの関数を再度呼び出すと、リリースタイマーがリセットされます。
クリックに関連するすべてのシグナルが適切に発せられます。
ボタンが押された場合、この関数は何もしません。disabled.
click()も参照してください 。
[override virtual protected]
void QAbstractButton::changeEvent(QEvent *e)
再実装:QWidget::changeEvent(QEvent *event)。
[virtual protected]
void QAbstractButton::checkStateSet()
この仮想ハンドラは、nextCheckState() 内から呼び出されない限り、setChecked() が使用されたときに呼び出されます。この仮想ハンドラは、サブクラスが中間ボタンの状態をリセットすることを可能にします。
nextCheckState()も参照してください 。
[slot]
void QAbstractButton::click()
クリックを実行します。
クリックに関連するすべての通常のシグナルが適切に発せられます。ボタンがチェック可能な場合、ボタンの状態がトグルされます。
ボタンがdisabled.
animateClick()も参照 。
[signal]
void QAbstractButton::clicked(bool checked = false)
このシグナルは、ボタンがアクティブになったとき(つまり、マウスカーソルがボタンの内側にあるときに押し下げられた後、離されたとき)、ショートカットキーが入力されたとき、またはclick() やanimateClick() が呼び出されたときに発せられる。特に、setDown ()、setChecked ()、toggle ()を呼び出した場合は、このシグナルは発せられない。
ボタンがチェック可能な場合、checked は、ボタンがチェックされていれば真、チェックされていなければ偽となります。
pressed()、released()、toggled()も参照して ください。
[override virtual protected]
bool QAbstractButton::event(QEvent *e)
再実装:QWidget::event(QEvent *event)。
[override virtual protected]
void QAbstractButton::focusInEvent(QFocusEvent *e)
再リンプルメント:QWidget::focusInEvent(QFocusEvent *event)。
[override virtual protected]
void QAbstractButton::focusOutEvent(QFocusEvent *e)
再リンプルメント: (QFocusEvent *event):QWidget::focusOutEvent(QFocusEvent *event)を再定義します。
QButtonGroup *QAbstractButton::group() const
このボタンが属するグループを返します。
ボタンがQButtonGroup のどのメンバでもない場合、この関数はnullptr
を返します。
QButtonGroupも参照してください 。
[virtual protected]
bool QAbstractButton::hitButton(const QPoint &pos) const
pos がクリック可能なボタンの矩形内にある場合はtrue
を返し、そうでない場合はfalse
を返します。
デフォルトでは、クリック可能領域はウィジェット全体です。サブクラスは、異なる形状やサイズのクリック可能領域のサポートを提供するために、この関数を再実装することができます。
[override virtual protected]
void QAbstractButton::keyPressEvent(QKeyEvent *e)
再実装します:QWidget::keyPressEvent(QKeyEvent *event)。
[override virtual protected]
void QAbstractButton::keyReleaseEvent(QKeyEvent *e)
再実装: (QKeyEvent *event):QWidget::keyReleaseEvent(QKeyEvent *event)。
[override virtual protected]
void QAbstractButton::mouseMoveEvent(QMouseEvent *e)
再リンプルメント:QWidget::mouseMoveEvent(QMouseEvent *event)。
[override virtual protected]
void QAbstractButton::mousePressEvent(QMouseEvent *e)
再リンプルメント: (QMouseEvent *event)QWidget::mousePressEvent(QMouseEvent *event)。
[override virtual protected]
void QAbstractButton::mouseReleaseEvent(QMouseEvent *e)
再リンプルメント: (QMouseEvent *event)QWidget::mouseReleaseEvent(QMouseEvent *event)を再定義します。
[virtual protected]
void QAbstractButton::nextCheckState()
この仮想ハンドラはボタンがクリックされたときに呼び出されます。デフォルトの実装では、ボタンがisCheckable() であればsetChecked(!isChecked()) を呼び出します。これは、サブクラスが中間的なボタンの状態を実装することを可能にします。
checkStateSet()も参照してください 。
[override pure virtual protected]
void QAbstractButton::paintEvent(QPaintEvent *e)
再実装:QWidget::paintEvent(QPaintEvent *event)。
[signal]
void QAbstractButton::pressed()
このシグナルはボタンが押下されたときに発せられます。
released() およびclicked() も参照して ください。
[signal]
void QAbstractButton::released()
このシグナルはボタンが離されたときに発せられます。
pressed(),clicked(),toggled() も参照 。
[override virtual protected]
void QAbstractButton::timerEvent(QTimerEvent *e)
再実装:QObject::timerEvent(QTimerEvent *event)。
[slot]
void QAbstractButton::toggle()
チェック可能なボタンの状態を切り替えます。
checkedも参照してください 。
[signal]
void QAbstractButton::toggled(bool checked)
このシグナルは、チェック可能なボタンの状態が変わるたびに発行されます。checked 、ボタンがチェックされている場合はtrue、チェックされていない場合はfalseになります。
これは、ユーザーの操作、click() スロットの起動、またはsetChecked() が呼び出された結果である可能性があります。
排他的ボタングループのボタンの状態は、このシグナルが発せられる前に更新されます。つまり、スロットは、状態が変更されたグループ内のボタンが発する "off "シグナルか "on "シグナルのどちらかに反応することができます。
例えば、新しくチェックされたボタンが発するシグナルに反応し、チェックが外されたボタンからのシグナルは無視するスロットは、以下のパターンで実装できます:
void MyWidget::reactToToggle(bool checked) { if (checked) { // Examine the new button states. ... } }
ボタングループはQButtonGroup クラスを使って作成し、ボタンの状態の更新はQButtonGroup::buttonClicked() シグナルで監視します。
注: プロパティchecked に対するノーティファイア・シグナル。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。