QMenu

見出し


QMenu クラス

QMenu クラスはメニュー、コンテキストメニュー及び他のポップアップメニューで使用するためのメニューを提供します。
公式リファレンス

継承関係


プロパティ

icon
  • 型 … QIcon
  • 説明
    • このメニューのアイコンを保持します。
    • menuAction() の QAction::icon プロパティと同じです。
  • デフォルト
    • デフォルトでは、アイコンは設定されていません。Nullの QIcon オブジェクトが設定されています。
  • アクセサー
    • 取得 … QIcon icon() const
    • 設定 …void setIcon(const QIcon & icon)

separatorsCollapsible
  • 型 … bool
  • 説明
    • このプロパティがtrueの場合は、このメニューの連続する2つ以上の区切りは一つだけ表示します。
    • メニューの先頭及び末尾の区切りは表示しません。
  • デフォルト
    • デフォルトでは、trueです。
  • アクセサー
    • 取得 … bool separatorsCollapsible() const
    • 設定 …void setSeparatorsCollapsible(bool collapse)

tearOffEnabled
  • 型 … bool
  • 説明
  • デフォルト
    • デフォルトでは、falseです。
  • アクセサー
    • 取得 … bool isTearOffEnabled() const
    • 設定 …void setTearOffEnabled(bool)

title
  • 型 … QString
  • 説明
    • このメニューのタイトルを保持します。
    • menuAction() の QAction::text プロパティと同じです。
  • アクセサー
    • 取得 … QString title() const
    • 設定 …void setTitle(const QString & title)

toolTipsVisible
  • 型 … bool
  • 説明
    • このメニューのアクション項目にツールチップを表示するかどうかを保持します。
  • デフォルト
    • デフォルトでは、falseです。
  • アクセサー
    • 取得 … bool toolTipsVisible() const
    • 設定 …void setToolTipsVisible(bool visible)

メンバ関数

コンストラクタ

QMenu::QMenu(QWidget * parent = 0)
  • 説明
    • 指定した親を持つメニューを作成します。
  • パラメータ
    • parent … このメニューを所持する親ウィジェット
  • 注意
    • ポップアップメニューはトップレベルのウィジェットですが、親を設定した場合は、親が破棄されるとこのメニューも破棄されてしまいます。

QMenu::QMenu(const QString & title, QWidget * parent = 0)
  • 説明
    • 指定した親及びタイトルを持つメニューを作成します。
  • パラメータ
    • title … このメニューのタイトル
    • parent … このメニューを所持する親ウィジェット
  • 注意
    • ポップアップメニューはトップレベルのウィジェットですが、親を設定した場合は、親が破棄されるとこのメニューも破棄されてしまいます。

デストラクタ

QMenu::~QMenu()
  • 説明
    • このメニューを破棄します。

メニューを取得する

+ ...
QAction * QMenu::actionAt(const QPoint & pt) const
  • 説明
    • このメニューの指定位置に存在するアクションを返します。
    • 位置はメニューの左上の頂点を原点とするピクセル座標で指定します。
  • パラメータ
    • pt … アクションを取得する位置
    • パラメータ … 説明
  • 返り値
    • 指定位置に存在するアクション
    • 指定位置にアクションが存在しない場合か、または指定位置が区切りである場合は、Nullを返します。
imageプラグインエラー : ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (QMenu_01.png)
この例でいくと
0 <= x < 32 かつ 0 <= y < 17 がfile
32 <= x < 69 かつ 0 <= y < 17 がhelp
それ以外はNull
  1. menuBar()->actionAt( QPoint(0, 0) ); //file
  2. menuBar()->actionAt( QPoint(20, 10) ); //file
  3. menuBar()->actionAt( QPoint(10, 17) ); //Null
  4. menuBar()->actionAt( QPoint(31, 0) ); //file
  5. menuBar()->actionAt( QPoint(32, 0) ); //help
  6. menuBar()->actionAt( QPoint(69,0) ); //Null

QRect QMenu::actionGeometry(QAction * act) const
  • 説明
    • 指定アクションのジオメトリを返します。
  • パラメータ
    • act … ジオメトリを取得するアクション
  • 返り値
    • 指定アクションのジオメトリ
      • 返り値の QRect オブジェクトの単位はピクセルです。
imageプラグインエラー : ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (QMenu_01.png)
  1. menuBar()->actionGeometry( act_file ); //QRect(0,0 32x17)
  2. menuBar()->actionGeometry( act_help ); //QRect(32,0 37x17)

メニューにサブメニューを追加する

+ ...
QAction * QMenu::addMenu(QMenu * menu)
  • 説明
    • このメニューに指定メニューをサブメニューとして追加します。
  • パラメータ
    • menu … 追加するサブメニュー
  • 返り値
    • 追加した QMenu オブジェクトの menuAction() の値を返します。

QMenu * QMenu::addMenu(const QString & title)
  • 説明
    • このメニューに指定タイトルを持つメニューを新規作成して、サブメニューとして追加します。
  • パラメータ
    • title … サブメニューのタイトル
  • 返り値
    • 追加したサブメニューを返します

QMenu * QMenu::addMenu(const QIcon & icon, const QString & title)
  • 説明
    • このメニューに指定したアイコン及びタイトルを持つメニューを新規作成して、サブメニューとして追加します。
  • パラメータ
  • パラメータ
    • icon … サブメニューのアイコン
    • title … サブメニューのタイトル
  • 返り値
    • 追加したサブメニューを返します

QAction * QMenu::insertMenu(QAction * before, QMenu * menu)
  • 説明
    • 指定したメニューをこのメニューの指定したアクションの前にサブメニューとして挿入します。
  • パラメータ
    • before … このアクションの前にメニューを挿入します
    • menu … 挿入するサブメニュー
  • 返り値
    • 挿入したサブメニューを返します

メニューにアクションを追加する

+ ...
void QMenu::addAction(QAction * action)
  • 説明
    • 指定アクションをメニューの末尾に追加します。
  • パラメータ
    • action … 追加するアクション

QAction * QMenu::addAction(const QString & text)
  • 説明
    • 指定したテキストを持つアクションを新規作成してメニューに追加します。
  • パラメータ
    • text … アクションのテキスト
  • 返り値
    • 追加したアクションを返します

QAction * QMenu::addAction(const QIcon & icon, const QString & text)
  • 説明
    • 指定したアイコン及びテキストを持つアクションを新規作成してメニューに追加します。
  • パラメータ
    • icon … アクションのアイコン
    • text … アクションのテキスト
  • 返り値
    • 追加したアクションを返します

QAction * QMenu::addAction(const QString & text, const QObject * receiver, const char * member, const QKeySequence & shortcut = 0)
  • 説明
    • 指定したテキスト及びショートカットを持つアクションを新規作成してメニューに追加します。
    • 作成したアクションの triggered() シグナルは receiver オブジェクトの member スロットと接続されます。
  • パラメータ
    • text … アクションのテキスト
    • receiver … 接続先のオブジェクト
    • member … 接続先のスロット
    • shortcut … アクションのショートカットキー
  • 返り値
    • 追加したアクションを返します

QAction * QMenu::addAction(const QIcon & icon, const QString & text, const QObject * receiver, const char * member, const QKeySequence & shortcut = 0)
  • 説明
    • 指定したアイコン、テキスト及びショートカットを持つアクションを新規作成してメニューに追加します。
    • 作成したアクションの triggered() シグナルは receiver オブジェクトの member スロットと接続されます。
  • パラメータ
    • icon … アクションのアイコン
    • text … アクションのテキスト
    • receiver … 接続先のオブジェクト
    • member … 接続先のスロット
    • shortcut … アクションのショートカットキー
  • 返り値
    • 追加したアクションを返します

区切りを追加する

+ ...
QAction * QMenu::addSeparator()
  • 説明
    • 区切りを新規作成して、このメニューの末尾に追加します。
  • 返り値
    • 追加した区切り

QAction * QMenu::addSection(const QString & text)
  • 説明
    • 指定したテキストを持つ区切りを新規作成して、このメニューの末尾に追加します。
  • パラメータ
    • text … 区切りのテキスト
  • 返り値
    • 追加した区切り

QAction * QMenu::addSection(const QIcon & icon, const QString & text)
  • 説明
    • 指定したアイコン及びテキストを持つ区切りを新規作成して、このメニューの末尾に追加します。
  • パラメータ
    • icon … 区切りのアイコン
    • text … 区切りのテキスト
  • 返り値
    • 追加した区切り

QAction * QMenu::insertSeparator(QAction * before)
  • 説明
    • 区切りを新規作成して、このメニューの指定したアクションの前に挿入します。
  • パラメータ
    • before … このアクションの前に区切りを挿入します
  • 返り値
    • 挿入した区切り

QAction * QMenu::insertSection(QAction * before, const QString & text)
  • 説明
    • 指定したテキストを持つ区切りを新規作成して、このメニューの指定したアクションの前に挿入します。
  • パラメータ
    • before … このアクションの前に区切りを挿入します
    • text … 区切りのテキスト
  • 返り値
    • 挿入した区切り

QAction * QMenu::insertSection(QAction * before, const QIcon & icon, const QString & text)
  • 説明
    • 指定したテキスト及びアイコンを持つ区切りを新規作成して、このメニューの指定したアクションの前に挿入します。
  • パラメータ
    • before … このアクションの前に区切りを挿入します
    • icon … 区切りのアイコン
    • text … 区切りのテキスト
  • 返り値
    • 挿入した区切り

メニューからアクションを削除する

void QMenu::clear()
  • 説明
    • このメニューからすべてのアクションを削除します。
    • メニューが所有している他のウィジェットで表示されていないアクションを削除します。
  • 注意
    • MacOS Xでは注意が必要

メニューが空かどうかを調べる

bool QMenu::isEmpty() const
  • 説明
    • このメニューに表示できるアクションがひとつもない場合はtrue、そうでない場合はfalseを返します。
  • 返り値
    • このメニューに表示できるアクションがあるかどうか

このメニューのアクションを取得する

QAction * QMenu::menuAction() const
かんすう
  • 説明
    • このメニューに関連するアクションを返します。
  • 返り値
    • このメニューに関連するアクション

メニューの列数を取得する

QMenu::columnCount() const [protected]
  • 説明
    • メニューがスクリーンに収まらない場合は、収まるようにメニューを2列にするなどして表示します。その際の列数を返します。
  • パラメータ
    • パラメータ … 説明
    • パラメータ … 説明
  • 返り値
  • 注意
    • そうした場合にメニューのレイアウトをどのようにするかはプラットフォーム依存です。(Windows では複数行で表示されます)

ハイライトされたアクションを取得及び設定する

+ ...
ハイライトは、アクションをマウスオーバーするとなります。
QAction * QMenu::activeAction() const
  • 説明
    • 現在ハイライトされているアクションを返します。
  • 返り値
    • どのアクションもハイライトされていない場合は、Nullを返します。

void QMenu::setActiveAction(QAction * act)
  • 説明
    • 指定したアクションをハイライトします。
  • パラメータ
    • act … ハイライトするアクション

メニューを実行する

+ ...
QAction * QMenu::exec()
  • 説明
    • このメニューを同期的に表示します。
    • exec(pos()) と同じです。
  • 返り値
    • メニューで選択されたアクションを返します。
    • アクションが選択されなかった場合はNullを返します。(ユーザーがEscキーを押すなど)

QAction * QMenu::exec(const QPoint & p, QAction * action = 0)
  • 説明
    • このメニューを指定アクションが指定位置に現れるように同期的に表示します。
  • パラメータ
    • p … 指定アクションを表示する位置
    • action … 指定位置に表示するアクション
      • グローバル座標で指定します。
      • ウィジェットのローカル座標をグローバル座標に変換するには、QWidget::mapToGlobal() を使用します。
  • 返り値
    • メニューで選択されたアクションを返します。
    • アクションが選択されなかった場合はNullを返します。(ユーザーがEscキーを押すなど)
    • 返り値以外にシグナルスロットでも選択したアクションを取得できます。
  • 注意
    • exec() または popup() を使用してメニューを配置した場合、メニューの現在の size() は信用できないことに注意してください。
    • パフォーマンス上の理由で、メニューは必要な場合のみメニューに設定されているサイズを適用できます。多くの場合、大きさは異なっています。
    • 代わりに、メニューの現在のコンテンツに依存する適切な大きさを計算するのに sizeHint() を使用できます。

QAction * QMenu::exec(QList<QAction *> actions, const QPoint & pos, QAction * at = 0, QWidget * parent = 0) [static]
  • 説明
    • 指定したアクションより構成されるメニューを同期的に表示します。
    • 指定アクションが指定位置に現れるよう表示します。
  • パラメータ
    • actions … メニューに表示するアクション
    • pos … 表示位置
    • at … pos で指定した位置にこのアクションが現れるよう表示します
      • 指定しなかった場合は、pos で指定した位置にメニューを表示します。
    • parent … 表示するメニューの親ウィジェット
      • pos 単独でメニューをどこへ表示するかを決めるのに不十分である場合、追加情報になります。(例 デュアルモニタ環境 または 親が QGraphicsView に埋め込まれている場合など)
  • 返り値
    • メニューで選択されたアクションを返します。
    • アクションが選択されなかった場合はNullを返します。(ユーザーがEscキーを押すなど)
    • 返り値以外にシグナルスロットでも選択したアクションを取得できます。
  • 注意
    • exec() または popup() を使用してメニューを配置した場合、メニューの現在の size() は信用できないことに注意してください。
    • パフォーマンス上の理由で、メニューは必要な場合のみメニューに設定されているサイズを適用できます。多くの場合、大きさは異なっています。
    • 代わりに、メニューの現在のコンテンツに依存する適切な大きさを計算するのに sizeHint() を使用できます。

void QMenu::popup(const QPoint & p, QAction * atAction = 0)
  • 説明
    • このメニューを指定アクションが指定位置に現れるように同期的に表示します。
  • パラメータ
    • p … 指定アクションを表示する位置
    • action … 指定位置に表示するアクション
      • グローバル座標で指定します。
      • ウィジェットのローカル座標をグローバル座標に変換するには、QWidget::mapToGlobal() を使用します。
  • 返り値
    • メニューで選択されたアクションを返します。
    • アクションが選択されなかった場合はNullを返します。(ユーザーがEscキーを押すなど)
    • 返り値以外にシグナルスロットでも選択したアクションを取得できます。
  • 注意
    • exec() または popup() を使用してメニューを配置した場合、メニューの現在の size() は信用できないことに注意してください。
    • パフォーマンス上の理由で、メニューは必要な場合のみメニューに設定されているサイズを適用できます。多くの場合、大きさは異なっています。
    • 代わりに、メニューの現在のコンテンツに依存する適切な大きさを計算するのに sizeHint() を使用できます。

保留

void QMenu::hideTearOffMenu()
  • 説明
    • ユーザーのデスクトップからはみ出したメニューを強制的に隠します。

bool QMenu::isTearOffMenuVisible() const
  • 説明
    • メニューがちぎれた場合は2つ目のメニューをメニューの項目を新しいウィンドウに表示するために表示します。
    • メニューがこのモードであり、表示できる場合はtrue、そうでない場合はfalseを返します。

保留

void QMenu::initStyleOption(QStyleOptionMenuItem * option, const QAction * action) const [protected]
  • 説明
    • 保留
  • パラメータ
    • option … 説明
    • action … 説明
  • 注意
    • 保留

再実装

QSize QMenu::sizeHint() const [virtual]
  • 説明
    • QWidget::sizeHint() の再実装です。

bool QMenu::focusNextPrevChild(bool next) [virtual protected]
  • 説明
    • QWidget::focusNextPrevChild() の再実装です。

一部のOSのみサポートされている機能

デフォルトアクションを取得及び設定する

+ ...
現在Windows Mobileでのみデフォルトアクションがサポートされています。
他のプラットフォームではこの関数は利用できません。

QAction * QMenu::defaultAction() const
  • 説明
    • 現在のデフォルトアクションを返します。
  • 返り値
    • 現在のデフォルトアクション

void QMenu::setDefaultAction(QAction * act)
  • 説明
    • 指定アクションをデフォルトアクションに設定します。
  • パラメータ
    • act … デフォルトアクションに設定するアクション

NSメニューに変換する

MacOS Xでのみ利用できます。
NSMenu * QMenu::toNSMenu()
  • 説明
    • このメニューをNSメニューに変換して返します。
  • 返り値
    • NSメニュー

ドックメニューとして設定する

MacOS Xでのみ利用できます。
void QMenu::setAsDockMenu()
このメニューをドックメニューに設定します。
ドックメニューとはアプリケーションのドックアイコンをクリックすることで利用できるメニューです。

シグナル

void QMenu::aboutToHide() [signal]
  • 説明
    • メニューがユーザーから隠される前に送出されます。

void QMenu::aboutToShow() [signal]
  • 説明
    • メニューがユーザーから見えるよう表示される前に送出されます。

void QMenu::hovered(QAction * action) [signal]
  • 説明
    • このメニューのアクションにマウスオーバーした際に送出されます。
  • パラメータ
    • action … マウスオーバーされたアクション

void QMenu::triggered(QAction * action) [signal]
  • 説明
    • このメニューにあるメニューのアクションがマウスでクリックされた際に送出されます。
  • パラメータ
    • action … クリックされたアクション
  • 注意
    • 通常はメニューのアクションごとの QAction::triggered() シグナルをそれぞれの動作に対応したスロットに接続します。
    • このシグナルはこのメニューのメニューにあるすべてのアクションを一つのスロットにまとめて接続したい場合などに便利です。

スロット

void QMenu::setVisible(bool visible) [virtual slot]
  • 説明
    • QWidget::setVisible() の再実装です。

イベント

void QMenu::timerEvent(QTimerEvent * e) [virtual protected]
  • 説明
    • QObject::timerEvent() の再実装です。

void QMenu::changeEvent(QEvent * e) [virtual protected]
  • 説明
    • QWidget::changeEvent() の再実装です。

bool QMenu::event(QEvent * e) [virtual protected]
  • 説明
    • QObject::event() の再実装です。

void QMenu::keyPressEvent(QKeyEvent * e) [virtual protected]
  • 説明
    • QWidget::keyPressEvent() の再実装です。

void QMenu::mouseMoveEvent(QMouseEvent * e) [virtual protected]
  • 説明
    • QWidget::mouseMoveEvent() の再実装です。

void QMenu::mousePressEvent(QMouseEvent * e) [virtual protected]
  • 説明
    • QWidget::mousePressEvent() の再実装です。

void QMenu::mouseReleaseEvent(QMouseEvent * e) [virtual protected]
  • 説明
    • QWidget::mouseReleaseEvent() の再実装です。

void QMenu::leaveEvent(QEvent *) [virtual protected]
  • 説明
    • QWidget::leaveEvent() の再実装です。

QSize QMenu::minimumSizeHint() const [virtual]
  • 説明
    • QWidget::minimumSizeHint() の再実装です。

void QMenu::actionEvent(QActionEvent * e) [virtual protected]
  • 説明
    • QWidget::actionEvent() の再実装です。

void QMenu::paintEvent(QPaintEvent * e) [virtual protected]
  • 説明
    • QWidget::paintEvent() の再実装です。

void QMenu::resizeEvent(QResizeEvent *) [virtual protected]
  • 説明
    • QWidget::resizeEvent() の再実装です。

void QMenu::focusInEvent(QFocusEvent *) [virtual protected]
  • 説明
    • QWidget::focusInEvent() の再実装です。

void QMenu::focusOutEvent(QFocusEvent *) [virtual protected]
  • 説明
    • QWidget::focusOutEvent() の再実装です。

void QMenu::wheelEvent(QWheelEvent * e) [virtual protected]
  • 説明
    • QWidget::wheelEvent() の再実装です。

void QMenu::hideEvent(QHideEvent *) [virtual protected]
  • 説明
    • QWidget::hideEvent() の再実装です。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2014年09月09日 01:41