QWidget Class
QWidgetクラスは、全てのユーザー・インターフェース・オブジェクトの基本クラスです。詳細...
ヘッダー | #include <QWidget> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
を継承する: | QObject そしてQPaintDevice |
によって継承される: | 39 タイプQAbstractButton QTabWidget QToolBar,QAbstractSlider,QAbstractSpinBox,QCalendarWidget,QComboBox,QDesignerActionEditorInterface,QDesignerFormWindowInterface,QDesignerObjectInspectorInterface,QDesignerPropertyEditorInterface,QDesignerWidgetBoxInterface,QDialog,QDialogButtonBox,QDockWidget,QFocusFrame,QFrame,QGroupBox,QHelpFilterSettingsWidget,QHelpSearchQueryWidget,QHelpSearchResultWidget,QKeySequenceEdit,QLineEdit,QMainWindow,QMdiSubWindow,QMenu,QMenuBar,QOpenGLWidget,QProgressBar,QQuickWidget,QRhiWidget,QRubberBand,QSizeGrip,QSplashScreen,QSplitterHandle,QStatusBar,QSvgWidget,QTabBar, xml-ph-.QWizardPage |
パブリックタイプ
enum | RenderFlag { DrawWindowBackground, DrawChildren, IgnoreMask } |
flags | RenderFlags |
プロパティ
|
|
パブリック関数
QWidget(QWidget*parent= nullptr, Qt::WindowFlagsf= Qt::WindowFlags()) | |
仮想 | ~QWidget() |
ブール | acceptDrops() const |
QString | accessibleDescription() const |
QString | accessibleName() const |
QList<QAction *> | actions() const |
void | activateWindow() |
void | addAction(QAction*action) |
(since 6.3) QAction *アクション | addAction(const QString&text) |
(since 6.3) QAction * (const QString &text) | addAction(const QIcon&icon, const QString&text) |
(since 6.3) QAction * (const QString &text) | addAction(const QString&text, const QKeySequence&shortcut) |
(since 6.3) QAction * (const QString &text, const QKeyequence &shortcut) | addAction(const QIcon&icon, const QString&text, const QKeySequence&shortcut) |
(since 6.3) QAction * (const QString &text, const QKeyequence &shortcut) | addAction(const QString&text, Args &&...args) |
(since 6.3) QAction * (const QString &text, Args &&... args) | addAction(const QIcon&icon, const QString&text, Args &&...args) |
(since 6.3) QAction * (const QString &text, Args &&... args) | addAction(const QString&text, const QKeySequence&shortcut, Args &&...args) |
(since 6.3) アクション | addAction(const QIcon&icon, const QString&text, const QKeySequence&shortcut, Args &&...args) |
(since 6.3) QAction *. | addAction(const QString&text, const QObject*receiver, const char*member, Qt::ConnectionTypetype= Qt::AutoConnection) |
(since 6.3) QAction * (const QIcon &icon) | addAction(const QIcon&icon, const QString&text, const QObject*receiver, const char*member, Qt::ConnectionTypetype= Qt::AutoConnection) |
(since 6.3) QAction | addAction(const QString&text, const QKeySequence&shortcut, const QObject*receiver, const char*member, Qt::ConnectionTypetype= Qt::AutoConnection) |
(since 6.3) QAction | addAction(const QIcon&icon, const QString&text, const QKeySequence&shortcut, const QObject*receiver, const char*member, Qt::ConnectionTypetype= Qt::AutoConnection) |
void | addActions(const QList<QAction *>&actions) |
void | adjustSize() |
ブール | autoFillBackground() const |
QPalette::ColorRole | backgroundRole() const |
QBackingStore *. | backingStore() const |
QSize | baseSize() const |
QWidget *. | childAt(intx, inty) const |
QWidget * (const QPoint &p) | childAt(const QPoint&p) const |
(since 6.8) QWidget * (const QPoint &p) | childAt(const QPointF&p) const |
QRect | childrenRect() const |
QRegion | childrenRegion() const |
void | clearFocus() |
void | clearMask() |
QMargins | contentsMargins() const |
QRect | contentsRect() const |
Qt::ContextMenuPolicy | contextMenuPolicy() const |
QCursor | cursor() const |
WId | effectiveWinId() const |
void | ensurePolished() const |
Qt::FocusPolicy | focusPolicy() const |
QWidget *. | focusProxy() const |
QWidget * () | focusWidget() const |
const QFont & | font() const |
QFontInfo | fontInfo() const |
QFontMetrics | fontMetrics() const |
QPalette::ColorRole | foregroundRole() const |
QRect | frameGeometry() const |
QSize | frameSize() const |
const QRect & | geometry() const |
QPixmap | grab(const QRect&rectangle= QRect(QPoint(0, 0), QSize(-1, -1))) |
void | grabGesture(Qt::GestureTypegesture, Qt::GestureFlagsflags= Qt::GestureFlags()) |
void | grabKeyboard() |
void | grabMouse() |
void | grabMouse(const QCursor&cursor) |
int | grabShortcut(const QKeySequence&key, Qt::ShortcutContextcontext= Qt::WindowShortcut) |
QGraphicsEffect *. | graphicsEffect() const |
QGraphicsProxyWidget *. | graphicsProxyWidget() const |
ブール | hasEditFocus() const |
ブール | hasFocus() const |
仮想ブール | hasHeightForWidth() const |
ブール | hasMouseTracking() const |
ブール | hasTabletTracking() const |
int | height() const |
仮想 int | heightForWidth(intw) const |
Qt::InputMethodHints | inputMethodHints() const |
仮想 QVariant | inputMethodQuery(Qt::InputMethodQueryquery) const |
void | insertAction(QAction*before, QAction*action) |
void | insertActions(QAction*before, const QList<QAction *>&actions) |
ブール | isActiveWindow() const |
ブール | isAncestorOf(const QWidget*child) const |
ブール | isEnabled() const |
ブール | isEnabledTo(const QWidget*ancestor) const |
ブール | isFullScreen() const |
ブール | isHidden() const |
ブール | isMaximized() const |
ブール | isMinimized() const |
ブール | isModal() const |
ブール | isVisible() const |
ブール | isVisibleTo(const QWidget*ancestor) const |
ブール | isWindow() const |
ブール | isWindowModified() const |
QLayout *. | layout() const |
Qt::LayoutDirection | layoutDirection() const |
QLocale | locale() const |
(since 6.0) QPointF | mapFrom(const QWidget*parent, const QPointF&pos) const |
QPoint | mapFrom(const QWidget*parent, const QPoint&pos) const |
(since 6.0) QPointF | mapFromGlobal(const QPointF&pos) const |
QPoint | mapFromGlobal(const QPoint&pos) const |
(since 6.0) QPointF | mapFromParent(const QPointF&pos) const |
QPoint | mapFromParent(const QPoint&pos) const |
(since 6.0) QPointF | mapTo(const QWidget*parent, const QPointF&pos) const |
QPoint | mapTo(const QWidget*parent, const QPoint&pos) const |
(since 6.0) QPointF | mapToGlobal(const QPointF&pos) const |
QPoint | mapToGlobal(const QPoint&pos) const |
(since 6.0) QPointF | mapToParent(const QPointF&pos) const |
QPoint | mapToParent(const QPoint&pos) const |
QRegion | mask() const |
int | maximumHeight() const |
QSize | maximumSize() const |
int | maximumWidth() const |
int | minimumHeight() const |
QSize | minimumSize() const |
仮想 QSize | minimumSizeHint() const |
int | minimumWidth() const |
void | move(const QPoint &) |
void | move(intx, inty) |
QWidget *. | nativeParentWidget() const |
QWidget *. | nextInFocusChain() const |
QRect | normalGeometry() const |
void | overrideWindowFlags(Qt::WindowFlagsflags) |
const QPalette & | palette() const |
QWidget *. | parentWidget() const |
QPoint | pos() const |
QWidget * () | previousInFocusChain() const |
QRect | rect() const |
void | releaseKeyboard() |
void | releaseMouse() |
void | releaseShortcut(intid) |
void | removeAction(QAction*action) |
void | render(QPaintDevice*target, const QPoint&targetOffset= QPoint(), const QRegion&sourceRegion= QRegion(), QWidget::RenderFlagsrenderFlags= RenderFlags(DrawWindowBackground | DrawChildren)) |
void | render(QPainter*painter, const QPoint&targetOffset= QPoint(), const QRegion&sourceRegion= QRegion(), QWidget::RenderFlagsrenderFlags= RenderFlags(DrawWindowBackground | DrawChildren)) |
void | repaint(const QRect&rect) |
void | repaint(const QRegion&rgn) |
void | repaint(intx, inty, intw, inth) |
void | resize(const QSize &) |
無効 | resize(intw, inth) |
ブール | restoreGeometry(const QByteArray&geometry) |
QByteArray | saveGeometry() const |
QScreen *. | screen() const |
void | scroll(intdx, intdy) |
void | scroll(intdx, intdy, const QRect&r) |
void | setAcceptDrops(boolon) |
void | setAccessibleDescription(const QString&description) |
void | setAccessibleName(const QString&name) |
void | setAttribute(Qt::WidgetAttributeattribute, boolon= true) |
void | setAutoFillBackground(boolenabled) |
void | setBackgroundRole(QPalette::ColorRolerole) |
void | setBaseSize(const QSize &) |
void | setBaseSize(intbasew, intbaseh) |
void | setContentsMargins(intleft, inttop, intright, intbottom) |
void | setContentsMargins(const QMargins&margins) |
void | setContextMenuPolicy(Qt::ContextMenuPolicypolicy) |
void | setCursor(const QCursor &) |
void | setEditFocus(boolenable) |
void | setFixedHeight(inth) |
void | setFixedSize(const QSize&s) |
void | setFixedSize(intw, inth) |
無効 | setFixedWidth(intw) |
void | setFocus(Qt::FocusReasonreason) |
void | setFocusPolicy(Qt::FocusPolicypolicy) |
void | setFocusProxy(QWidget*w) |
void | setFont(const QFont &) |
void | setForegroundRole(QPalette::ColorRolerole) |
void | setGeometry(const QRect &) |
void | setGeometry(intx, inty, intw, inth) |
void | setGraphicsEffect(QGraphicsEffect*effect) |
void | setInputMethodHints(Qt::InputMethodHintshints) |
void | setLayout(QLayout*layout) |
void | setLayoutDirection(Qt::LayoutDirectiondirection) |
void | setLocale(const QLocale&locale) |
void | setMask(const QBitmap&bitmap) |
void | setMask(const QRegion®ion) |
void | setMaximumHeight(intmaxh) |
void | setMaximumSize(const QSize &) |
無効 | setMaximumSize(intmaxw, intmaxh) |
void | setMaximumWidth(intmaxw) |
無効 | setMinimumHeight(intminh) |
void | setMinimumSize(const QSize &) |
無効 | setMinimumSize(intminw, intminh) |
無効 | setMinimumWidth(intminw) |
無効 | setMouseTracking(ブールイネーブル) |
void | setPalette(const QPalette &) |
void | setParent(QWidget*parent) |
void | setParent(QWidget*parent, Qt::WindowFlagsf) |
void | setScreen(QScreen*screen) |
void | setShortcutAutoRepeat(intid, boolenable= true) |
void | setShortcutEnabled(intid, boolenable= true) |
void | setSizeIncrement(const QSize &) |
void | setSizeIncrement(intw, inth) |
void | setSizePolicy(QSizePolicy) |
void | setSizePolicy(QSizePolicy::Policyhorizontal, QSizePolicy::Policyvertical) |
void | setStatusTip(const QString &) |
void | setStyle(QStyle*style) |
void | setTabletTracking(boolenable) |
無効 | setToolTip(const QString &) |
void | setToolTipDuration(intmsec) |
無効 | setUpdatesEnabled(boolenable) |
無効 | setWhatsThis(const QString &) |
void | setWindowFilePath(const QString&filePath) |
void | setWindowFlag(Qt::WindowTypeflag, boolon= true) |
void | setWindowFlags(Qt::WindowFlagstype) |
void | setWindowIcon(const QIcon&icon) |
void | setWindowModality(Qt::WindowModalitywindowModality) |
void | setWindowOpacity(qreallevel) |
void | setWindowRole(const QString&role) |
void | setWindowState(Qt::WindowStateswindowState) |
void | setupUi(QWidget*widget) |
QSize | size() const |
仮想 QSize | sizeHint() const |
QSize | sizeIncrement() const |
QSizePolicy | sizePolicy() const |
void | stackUnder(QWidget*w) |
QString | statusTip() const |
QStyle *. | style() const |
QString | styleSheet() const |
ブール | testAttribute(Qt::WidgetAttributeattribute) const |
QString | toolTip() const |
int | toolTipDuration() const |
ブール | underMouse() const |
void | ungrabGesture(Qt::GestureTypegesture) |
void | unsetCursor() |
void | unsetLayoutDirection() |
void | unsetLocale() |
void | update(const QRect&rect) |
void | update(const QRegion&rgn) |
void | update(intx, inty, intw, inth) |
void | updateGeometry() |
ブール | updatesEnabled() const |
QRegion | visibleRegion() const |
QString | whatsThis() const |
int | width() const |
WId | winId() const |
QWidget *. | window() const |
QString | windowFilePath() const |
Qt::WindowFlags | windowFlags() const |
QWindow *. | windowHandle() const |
QIcon | windowIcon() const |
Qt::WindowModality | windowModality() const |
qreal | windowOpacity() const |
QString | windowRole() const |
Qt::WindowStates | windowState() const |
QString | windowTitle() const |
Qt::WindowType | windowType() const |
int | x() const |
int | y() const |
再実装パブリック関数
virtual QPaintEngine * | paintEngine() const override |
パブリックスロット
bool | close() |
void | hide() |
void | lower() |
void | raise() |
void | repaint() |
void | setDisabled(bool disable) |
void | setEnabled(bool) |
void | setFocus() |
void | setHidden(bool hidden) |
void | setStyleSheet(const QString &styleSheet) |
virtual void | setVisible(bool visible) |
void | setWindowModified(bool) |
void | setWindowTitle(const QString &) |
void | show() |
void | showFullScreen() |
void | showMaximized() |
void | showMinimized() |
void | showNormal() |
void | update() |
シグナル
void | customContextMenuRequested(const QPoint &pos) |
void | windowIconChanged(const QIcon &icon) |
void | windowTitleChanged(const QString &title) |
静的パブリックメンバ
QWidget * | createWindowContainer(QWindow *window, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()) |
QWidget * | find(WId id) |
QWidget * | keyboardGrabber() |
QWidget * | mouseGrabber() |
void | setTabOrder(QWidget *first, QWidget *second) |
(since 6.6) void | setTabOrder(std::initializer_list<QWidget *> widgets) |
保護された関数
virtual void | actionEvent(QActionEvent *event) |
virtual void | changeEvent(QEvent *event) |
virtual void | closeEvent(QCloseEvent *event) |
virtual void | contextMenuEvent(QContextMenuEvent *event) |
void | create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true) |
void | destroy(bool destroyWindow = true, bool destroySubWindows = true) |
virtual void | dragEnterEvent(QDragEnterEvent *event) |
virtual void | dragLeaveEvent(QDragLeaveEvent *event) |
virtual void | dragMoveEvent(QDragMoveEvent *event) |
virtual void | dropEvent(QDropEvent *event) |
virtual void | enterEvent(QEnterEvent *event) |
virtual void | focusInEvent(QFocusEvent *event) |
bool | focusNextChild() |
virtual bool | focusNextPrevChild(bool next) |
virtual void | focusOutEvent(QFocusEvent *event) |
bool | focusPreviousChild() |
virtual void | hideEvent(QHideEvent *event) |
virtual void | inputMethodEvent(QInputMethodEvent *event) |
virtual void | keyPressEvent(QKeyEvent *event) |
virtual void | keyReleaseEvent(QKeyEvent *event) |
virtual void | leaveEvent(QEvent *event) |
virtual void | mouseDoubleClickEvent(QMouseEvent *event) |
virtual void | mouseMoveEvent(QMouseEvent *event) |
virtual void | mousePressEvent(QMouseEvent *event) |
virtual void | mouseReleaseEvent(QMouseEvent *event) |
virtual void | moveEvent(QMoveEvent *event) |
virtual bool | nativeEvent(const QByteArray &eventType, void *message, qintptr *result) |
virtual void | paintEvent(QPaintEvent *event) |
virtual void | resizeEvent(QResizeEvent *event) |
virtual void | showEvent(QShowEvent *event) |
virtual void | tabletEvent(QTabletEvent *event) |
virtual void | wheelEvent(QWheelEvent *event) |
再実装された保護された関数
仮想ブール | event(QEvent*event) オーバーライド |
仮想空白 | initPainter(QPainter*painter) const override |
仮想 int | metric(QPaintDevice::PaintDeviceMetricm) const override |
保護されたスロット
void | updateMicroFocus(Qt::InputMethodQuery query = Qt::ImQueryAll) |
マクロ
詳しい説明
ウィジェットはユーザーインターフェースの原子であり、ウィンドウシステムからマウス、キーボード、その他のイベントを受け取り、それ自身の表現をスクリーンに描画します。すべてのウィジェットは長方形で、Zオーダーでソートされます。ウィジェットは、その親とその前のウィジェットによってクリップされます。
親ウィジェットに埋め込まれていないウィジェットはウィンドウと呼ばれる.通常、ウィンドウにはフレームとタイトルバーがありますが、適切なwindow flags を使用することで、そのような装飾のないウィンドウを作成することも可能です。Qt では、QMainWindow と、QDialog の様々なサブクラスが、最も一般的なウィンドウ・タイプです。
すべてのウィジェットのコンストラクタは、1つまたは2つの標準引数を受け取ります:
QWidget *parent = nullptr
は新しいウィジェットの親です。これが (デフォルト)の場合、新しいウィジェットはウィンドウになります。そうでない場合、nullptr
parentの子となり、parentのジオメトリに制約されます(ウィンドウ・フラグとして を指定しない限り)。Qt::WindowQt::WindowFlags f = { }
(利用可能な場合) は、ウィンドウフラグを設定します。デフォルトは、ほとんどのウィジェットに適していますが、例えば、ウィンドウシステムフレームのないウィンドウを取得するには、特別なフラグを使用する必要があります。
QWidgetには多くのメンバ関数がありますが、直接の機能はほとんどありません。例えば、QWidgetにはフォント・プロパティがありますが、これ自体を使用することはありません。QLabel,QPushButton,QListWidget,QTabWidget など、実際の機能を提供する多くのサブクラスがあります。
トップレベルと子ウィジェット
親ウィジェットを持たないウィジェットは、常に独立したウィンドウ(トップ・レベル・ウィジェット)です。これらのウィジェットでは、setWindowTitle() とsetWindowIcon() が、それぞれタイトル・バーとアイコンを設定します。
ウィンドウ以外のウィジェットは子ウィジェットで、親ウィジェットの中に表示されます。Qt のほとんどのウィジェットは、主に子ウィジェットとして役立ちます。例えば、ボタンをトップレベル・ウィンドウとして表示することは可能ですが、ほとんどの人はQDialog のような他のウィジェットの中にボタンを置くことを好みます。
上図は、QGridLayout が提供するレイアウトで、QGroupBox ウィジェットがさまざまな子ウィジェットを保持するために使用されている様子を示しています。QLabel の子ウィジェットは、フル・サイズを示すためにアウトライン化されています。
QWidgetを使用して子ウィジェットを保持する場合、通常は親QWidgetにレイアウトを追加します。詳細はレイアウト管理を参照してください。
複合ウィジェット
子ウィジェットをグループ化するコンテナとしてウィジェットを使用する場合、複合ウィジェットとして知られています。コンポジット・ウィジェットは、必要なビジュアル・プロパティを持つウィジェット(QFrame など)を作成し、通常レイアウトで管理される子ウィジェットを追加することで作成できます。
複合ウィジェットは、QWidget やQFrame などの標準ウィジェットをサブクラス化し、サブクラスのコンストラクタで必要なレイアウトと子ウィジェットを追加することによっても作成できます。Qt で提供されている多くの例ではこの方法を使用しており、QtWidgets Tutorial でもこの方法を説明しています。
カスタムウィジェットとペイント
QWidget はQPaintDevice のサブクラスなので、サブクラスを使用して、QPainter クラスのインスタンスで一連のペイント操作を使用して構成されるカスタムコンテンツを表示することができます。このアプローチは、アプリケーションによってアイテムがシーンに追加され、フレームワーク自体によってレンダリングされる、グラフィックス・ビュー・フレームワークによって使用されるキャンバス・スタイルのアプローチとは対照的です。
各ウィジェットは、paintEvent() 関数内からすべてのペイント操作を実行します。この関数は、外部からの変更やアプリケーションからの要求によって、ウィジェットの再描画が必要になったときに呼び出されます。
アナログ時計の例では、単純なウィジェットがペイントイベントを処理する方法を示しています。
サイズヒントとサイズポリシー
新しいウィジェットを実装する場合、ほとんどの場合、sizeHint() を再実装して、ウィジェットの妥当なデフォルト・サイズを提供し、setSizePolicy() で正しいサイズ・ポリシーを設定すると便利です。
デフォルトでは、サイズ・ヒントを提供しない複合ウィジェットは、子ウィジェットのスペース要件に従ってサイズが設定されます。
サイズ・ポリシーによって、レイアウト管理システムのデフォルトの動作を適切に設定することができます。デフォルトのサイズポリシーは、サイズヒントがウィジェットの好ましいサイズを表すことを示し、多くのウィジェットではこれで十分なことが多いです。
注意: トップレベルウィジェットのサイズは、デスクトップの縦横の2/3に制限されます。これらの境界が不十分な場合、手動でウィジェットをresize() することができます。
イベント
ウィジェットは、通常ユーザのアクションによって発生するイベントに反応します。Qt は、各イベントに関する情報を含むQEvent サブクラスのインスタンスで特定のイベントハンドラ関数を呼び出すことで、イベントをウィジェットに配信します。
ウィジェットに子ウィジェットしか含まれていない場合、イベントハンドラを実装する必要はないでしょう。子ウィジェットでマウス・クリックを検出したい場合は、子ウィジェットのunderMouse() 関数をウィジェットのmousePressEvent() の内部で呼び出します。
Scribbleの例では、マウスの移動、ボタンの押下、ウィンドウのリサイズを処理するために、より広範なイベント・セットを実装しています。
あなた自身のウィジェットの動作と内容を提供する必要がありますが、ここでは、QWidgetに関連するイベントの簡単な概要を、最も一般的なものから説明します:
- paintEvent() は、ウィジェットを再描画する必要があるときに呼び出されます。カスタムコンテンツを表示するすべてのウィジェットは、これを実装する必要があります。QPainter を使用したペイントは、paintEvent() か、paintEvent() によって呼び出される関数の中でしか実行できません。
- resizeEvent() は、ウィジェットのサイズが変更されたときに呼び出されます。
- mousePressEvent() は、マウスカーソルがウィジェット内にあるときにマウスボタンが押されたとき、またはgrabMouse() を使用してウィジェットがマウスをつかんだときに呼び出されます。マウスを離さずに押すことは、実質的にgrabMouse() を呼び出すことと同じです。
- mouseReleaseEvent() は、マウスボタンが離されたときに呼び出されます。ウィジェットがマウス・リリース・イベントを受け取るのは、対応するマウス・プレス・イベントを受け取ったときです。つまり、ユーザがウィジェットの内部でマウスを押した後、マウスボタンを離す前にマウスを他の場所にドラッグすると、ウィジェットはリリース・イベントを受け取ります。1つ例外があります。マウスボタンを押したままにしている間にポップアップメニューが表示された場合、このポップアップはマウスイベントを即座に奪います。
- mouseDoubleClickEvent() は,ユーザがウィジェットをダブルクリックしたときに呼び出されます.ユーザがダブルクリックすると、ウィジェットはマウス押下イベント、マウスリリース・イベント、(マウスクリック・イベント、)2回目のマウス押下イベント、このイベント、そして最後に2回目のマウスリリース・イベントを受信します。(この操作中にマウスが固定されていない場合、いくつかのマウス移動イベントも受信することがある)。2回目のクリックが来るまで、クリックとダブルクリックを区別することはできません。(ほとんどのGUIの本が、ダブルクリックは別のアクションをトリガーするのではなく、シングルクリックの延長であることを推奨している理由の1つです)。
キーボード入力を受け付けるウィジェットでは、さらにいくつかのイベント・ハンドラを再実装する必要がある:
- keyPressEvent()は、キーが押されるたびに呼び出され、キーが自動リピートされるのに十分な時間押されたときに再度呼び出されます。Tab とShift+Tab のキーは、フォーカス・チェンジ・メカニズムで使用されない場合のみ、ウィジェットに渡されます。これらのキーを強制的にウィジェットで処理するには、QWidget::event() を再実装する必要があります。
- focusInEvent() は、ウィジェットがキーボード・フォーカスを得たときに呼び出されます(setFocusPolicy() を呼び出したと仮定します)。お行儀の良いウィジェットは、キーボード・フォーカスが自分のものであることを、はっきりと、しかし目立たない方法で示します。
- focusOutEvent() は、ウィジェットがキーボード・フォーカスを失ったときに呼び出されます。
あまり一般的でないイベント・ハンドラも再実装する必要があるかもしれません:
- mouseMoveEvent() は、マウスボタンを押したままマウスが動くたびに呼び出されます。これは、ドラッグ・アンド・ドロップ操作時に便利です。setMouseTracking(true)を呼び出すと、ボタンが押されていないときでもマウスの移動イベントが発生します。(ドラッグ・アンド・ドロップのガイドも参照してください)。
- keyReleaseEvent()は、キーが離されるときと、キーが押されたままであるとき(キーが自動繰り返しの場合)に呼び出されます。この場合、ウィジェットは、繰り返しのたびに、キーリリースとキー押下のイベントを受信します。Tab とShift+Tab キーがウィジェットに渡されるのは、フォーカスチェンジメカニズムで使用されない場合だけです。これらのキーを強制的にウィジェットで処理するには、QWidget::event() を再実装する必要があります。
- wheelEvent() は、ウィジェットにフォーカスがあるときにユーザがマウスホイールを回すと、いつでも呼び出されます。
- enterEvent() は、マウスがウィジェットのスクリーンスペースに入ると呼び出されます。(これは、ウィジェットの子ウィジェットが所有する画面空間を除きます)。
- leaveEvent() は、マウスがウィジェットの画面空間から離れるときに呼び出される。マウスが子ウィジェットに入った場合、leaveEvent() は発生しない。
- moveEvent() は、ウィジェットが親ウィジェットに対して相対的に移動したときに呼び出されます。
- closeEvent() は、ユーザがウィジェットを閉じたとき(またはclose() が呼び出されたとき)に呼び出されます。
また、QEvent::Type のドキュメントで説明されている、かなり曖昧なイベントもあります。これらのイベントを処理するには、event() を直接実装し直す必要があります。
event() のデフォルト実装では、Tab とShift+Tab (キーボード・フォーカスの移動) を処理し、その他のイベントのほとんどは、上記の特殊なハンドラのいずれかに渡します。
イベントとそのメカニズムについては、「イベント・システム」を参照してください。
関数とプロパティのグループ
ウィジェットスタイルシート
各プラットフォームの標準ウィジェットスタイルに加えて、ウィジェットはスタイルシートで指定されたルールに従ってスタイルを設定することもできます。この機能により、特定のウィジェットの外観をカスタマイズして、その目的をユーザーに視覚的に示すことができます。例えば、ボタンが破壊的なアクションを実行することを示すために、特定の方法でスタイルを設定することができます。
ウィジェットのスタイルシートの使い方については、Qt Style Sheetsドキュメントで詳しく説明しています。
透過とダブルバッファリング
QWidget は自動的にダブルバッファリングされるので、paintEvent() でダブルバッファリングのコードを書いてちらつきを避ける必要はありません。
親ウィジェットの内容は、Qt::WA_PaintOnScreen が設定されていない限り、デフォルトで各子ウィジェットに伝搬されます。不規則な領域を更新したり(長方形でない子ウィジェットを作成する)、アルファ成分が完全でない色でペイントしたりすることで、この機能を利用するカスタムウィジェットを書くことができます。次の図は、カスタムウィジェットの属性とプロパティをどのように微調整して、さまざまな効果を得られるかを示しています。
上の図では、領域が削除された半透明の矩形子ウィジェットが作成され、親ウィジェット(pixmapを示すQLabel )に追加されています。そして、異なる効果を得るために、異なるプロパティとウィジェットの属性が設定されます:
- 左のウィジェットには、追加のプロパティやウィジェット属性は設定されていません。このデフォルトの状態は、透明度があったり、不規則な形をしていたり、不透明なブラシで全領域をペイントしないカスタムウィジェットのほとんどに適しています。
- 中央のウィジェットには、autoFillBackground プロパティが設定されています。このプロパティは、ウィジェットがデフォルトの背景を提供することに依存し、不透明なブラシでその領域全体をペイントしないカスタムウィジェットで使用されます。
- 右のウィジェットには、Qt::WA_OpaquePaintEvent ウィジェット属性が設定されています。これは、ウィジェットがその領域全体を不透明色で塗ることを示します。ウィジェットの領域は、最初は初期化されておらず、図では、オーバーペイント領域を通して輝く赤い斜めのグリッドパターンで表されています。
リアルタイムのプロット・ウィジェットやグラフ・ウィジェットなど、単純な背景色を持つカスタム・ウィジェットを高速に更新するには、適切な背景色を定義し(QPalette::Window ロールでsetBackgroundRole() を使用)、autoFillBackground プロパティを設定し、必要な描画機能のみをウィジェットのpaintEvent() で実装する方がよいでしょう。
例えば、ビデオ・ストリーミング・ウィジェットのように、その領域全体を常に不透明なコンテンツでペイントするカスタム・ウィジェットを迅速に更新するには、ウィジェットの背景を再ペイントすることに関連する不要なオーバーヘッドを避けるために、ウィジェットのQt::WA_OpaquePaintEvent を設定する方が良いでしょう。
ウィジェットにQt::WA_OpaquePaintEvent ウィジェット属性と autoFillBackground プロパティの両方が設定されている場合、Qt::WA_OpaquePaintEvent 属性が優先されます。要件に応じて、どちらかを選択する必要があります。
親ウィジェットの内容は、標準 Qt ウィジェットにも伝わります。下図に示すように、親ウィジェットが非標準的な方法で装飾されている場合、予期しない結果を招くことがあります。
標準 Qt ウィジェットの描画動作をサブクラス化することなくカスタマイズできる範囲は、カスタムウィジェットに比べて若干狭くなります。通常、標準ウィジェットの外観は、autoFillBackground プロパティを設定することで実現できます。
半透明ウィンドウの作成
合成をサポートするウィンドウ・システムでは、半透明領域を持つウィンドウを作成できます。
トップレベルのウィジェットでこの機能を有効にするには、Qt::WA_TranslucentBackground 属性をsetAttribute() で設定し、部分的に透明にしたい領域で背景が不透明でない色で塗られていることを確認します。
プラットフォームに関する注意事項
- X11: この機能は、ARGBビジュアルと合成ウィンドウマネージャをサポートするXサーバーの使用に依存します。
- Windows:半透明が機能するためには、ウィジェットにQt::FramelessWindowHint windowフラグが設定されている必要があります。
- macOS: 半透明を動作させるには、ウィジェットにQt::FramelessWindowHint ウィンドウフラグを設定する必要があります。
ネイティブ・ウィジェット vs エイリアン・ウィジェット
エイリアンウィジェットは、ウィンドウシステムにとって未知のウィジェットです。これらのウィジェットには、ネイティブ・ウィンドウ・ハンドルが関連付けられていません。この機能により、ウィジェットのペイントやリサイズが大幅に高速化され、ちらつきがなくなります。
ネイティブ・ウィンドウでの古い動作を必要とする場合は、以下のオプションのいずれかを選択してください:
- お使いの環境で
QT_USE_NATIVE_WINDOWS=1
を使用する。 - アプリケーションにQt::AA_NativeWindows 属性を設定します。すべてのウィジェットがネイティブ・ウィジェットになります。
- ウィジェットにQt::WA_NativeWindow 属性を設定します:ウィジェット自身とそのすべての祖先がネイティブになります(Qt::WA_DontCreateNativeAncestors が設定されていない場合)。
- QWidget::winId を呼び出して、ネイティブ・ウィンドウを強制します (これは 3 を意味します)。
- ネイティブ・ウィンドウを強制するためにQt::WA_PaintOnScreen 属性を設定します (これは 3 を意味します)。
QEvent 、QPainter 、QGridLayout 、QBoxLayoutも参照 。
メンバ型ドキュメント
enum QWidget::RenderFlag
flags QWidget::RenderFlags
この列挙型は、QWidget::render() を呼び出すときにウィジェットをレンダリングする方法を記述します。
定数 | 値 | 説明 |
---|---|---|
QWidget::DrawWindowBackground | 0x1 | このオプションを有効にすると、autoFillBackground が設定されていなくても、ウィジェットの背景がターゲットにレンダリングされます。デフォルトでは、このオプションは有効です。 |
QWidget::DrawChildren | 0x2 | このオプションを有効にすると、ウィジェットの子はターゲットに再帰的にレンダリングされる。デフォルトでは、このオプションは有効である。 |
QWidget::IgnoreMask | 0x4 | このオプションを有効にすると、ターゲットへのレンダリング時にウィジェットのQWidget::mask() は無視される。デフォルトでは、このオプションは無効です。 |
RenderFlags型はQFlags<RenderFlag>のtypedefです。RenderFlag の値の OR の組み合わせを格納します。
プロパティの説明
acceptDrops : bool
このプロパティは、このウィジェットでドロップイベントが有効かどうかを保持する。
このプロパティをtrueに設定すると、このウィジェットがドロップ・イベントを受け付けることができることをシステムに通知します。
ウィジェットがデスクトップ (windowType() ==Qt::Desktop) の場合、他のアプリケーションがデスクトップを使用していると、これは失敗する可能性があります; acceptDrops() を呼び出して、これが発生するかどうかをテストできます。
警告 警告: ドラッグ・アンド・ドロップ・イベント・ハンドラでこのプロパティを変更しないでください。
デフォルトでは、このプロパティはfalse
です。
関数にアクセスします:
bool | acceptDrops() const |
void | setAcceptDrops(bool on) |
ドラッグ&ドロップも参照してください 。
accessibleDescription : QString
このプロパティは、支援技術から見たウィジェットの説明を保持する。
ウィジェットのアクセシブルな説明は、ウィジェットが何をするかを伝える必要があります。accessibleName 、短く簡潔な文字列(例:Save)であるべきですが、説明は、現在のドキュメントを保存するなど、より多くのコンテキストを与えるべきです。
このプロパティはローカライズする必要があります。
デフォルトでは、このプロパティには空の文字列が含まれ、Qtはこの情報を提供するためにツールチップを使用することに戻ります。
アクセス関数:
QString | accessibleDescription() const |
void | setAccessibleDescription(const QString &description) |
QWidget::accessibleName とQAccessibleInterface::text()も参照してください 。
accessibleName : QString
このプロパティは、支援技術によって見られるウィジェットの名前を保持する。
これは、スクリーン・リーダーなどの支援技術がこのウィジェットを通知する主な名前です。ほとんどのウィジェットでは、このプロパティを設定する必要はありません。例えば、QPushButton の場合、ボタンのテキストが使用されます。
ウィジェットがテキストを提供しない場合、このプロパティを設定することが重要です。例えば、アイコンのみを含むボタンは、スクリーン・リーダーに対応するために、このプロパティを設定する必要があります。名前は短く、ウィジェットによって伝達される視覚情報と同等でなければならない。
このプロパティは、ローカライズされなければならない。
デフォルトでは、このプロパティは空文字列を含む。
アクセス関数:
QString | accessibleName() const |
void | setAccessibleName(const QString &name) |
QWidget::accessibleDescription およびQAccessibleInterface::text()も参照のこと 。
autoFillBackground : bool
このプロパティは、ウィジェットの背景が自動的に塗りつぶされるかどうかを保持します。
このプロパティを有効にすると、Qt は paint イベントを呼び出す前にウィジェットの背景を塗りつぶします。使用される色は、ウィジェットのpalette からQPalette::Window 色の役割によって定義されます。
さらに、WA_OpaquePaintEvent または WA_NoSystemBackground 属性が設定されていない限り、Windows は常にQPalette::Window で塗りつぶされます。
ウィジェットの親がその背景に静的なグラデーションを持つ場合、このプロパティをオフにする(つまり、falseに設定する)ことはできません。
警告 このプロパティは、Qt スタイル・シートとの併用に注意してください。ウィジェットが有効な背景またはボーダーイメージを持つスタイルシートを持つ場合、このプロパティは自動的に無効になります。
デフォルトでは、このプロパティはfalse
です。
アクセス関数です:
bool | autoFillBackground() const |
void | setAutoFillBackground(bool enabled) |
Qt::WA_OpaquePaintEvent,Qt::WA_NoSystemBackground,Transparency and Double Bufferingも参照してください 。
baseSize : QSize
このプロパティは、ウィジェットのベースサイズを保持する。
ベースサイズは、ウィジェットがsizeIncrement() を定義する場合、適切なウィジェットサイズを計算するために使用されます。
デフォルトでは、新しく作成されたウィジェットの場合、このプロパティは、幅と高さがゼロのサイズを含みます。
アクセス関数:
QSize | baseSize() const |
void | setBaseSize(const QSize &) |
void | setBaseSize(int basew, int baseh) |
setSizeIncrement()も参照してください 。
[read-only]
childrenRect : const QRect
このプロパティは、ウィジェットの子の外接矩形を保持する。
非表示の子は除外されます。
デフォルトでは、子ウィジェットがない場合、このプロパティは原点に位置する幅と高さがゼロの矩形を含みます。
アクセス関数:
QRect | childrenRect() const |
childrenRegion() およびgeometry()も参照 。
[read-only]
childrenRegion : const QRegion
このプロパティは、ウィジェットの子プロパティが占める結合領域を保持する。
非表示の子は除外されます。
デフォルトでは、子ウィジェットがない場合、このプロパティは空の領域を含みます。
アクセス関数:
QRegion | childrenRegion() const |
childrenRect(),geometry(),mask()も参照 。
contextMenuPolicy : Qt::ContextMenuPolicy
ウィジェットがコンテキストメニューを表示する方法
このプロパティのデフォルト値はQt::DefaultContextMenu で、これはcontextMenuEvent() ハンドラが呼び出されることを意味します。他の値は、Qt::NoContextMenu 、Qt::PreventContextMenu 、Qt::ActionsContextMenu 、Qt::CustomContextMenu です。Qt::CustomContextMenu を指定すると、シグナルcustomContextMenuRequested() が発信されます。
アクセス関数:
Qt::ContextMenuPolicy | contextMenuPolicy() const |
void | setContextMenuPolicy(Qt::ContextMenuPolicy policy) |
contextMenuEvent()、customContextMenuRequested()、actions()も参照 。
cursor : QCursor
このプロパティは、このウィジェットのカーソル形状を保持します。
マウスカーソルがこのウィジェットの上にあるとき、マウスカーソルはこの形状になります。便利な形状はlist of predefined cursor objects を参照してください。
エディタウィジェットは、Iビームカーソルを使用するかもしれません:
setCursor(Qt::IBeamCursor);
カーソルが設定されていない場合、またはunsetCursor()を呼び出した後は、親のカーソルが使用されます。
デフォルトでは、このプロパティはQt::ArrowCursor 形状のカーソルを含みます。
いくつかの基本的なウィンドウの実装では、マウスがつかまれても、カーソルがウィジェットを離れるとリセットされます。ウィンドウの外でもすべてのウィジェットにカーソルを設定したい場合は、QGuiApplication::setOverrideCursor() を検討してください。
アクセス関数:
QCursor | cursor() const |
void | setCursor(const QCursor &) |
void | unsetCursor() |
QGuiApplication::setOverrideCursor()も参照してください 。
enabled : bool
このプロパティは、ウィジェットが有効かどうかを保持する。
一般的に、有効なウィジェットはキーボードとマウスイベントを処理し、無効なウィジェットは処理しません。ただし、QAbstractButton は例外です。
いくつかのウィジェットは、無効化されているとき、それ自身を異なるように表示します。例えば、ボタンはラベルが灰色で表示されます。ウィジェットが有効または無効になるタイミングを知る必要がある場合、QEvent::EnabledChange 型でchangeEvent() を使用できます。
ウィジェットを無効にすると、そのすべての子ウィジェットが暗黙的に無効になります。それぞれを有効にすると、明示的に無効化されていない限り、すべての子ウィジェットが有効になります。親ウィジェットが無効のまま、ウィンドウでない子ウィジェットを明示的に有効にすることはできません。
デフォルトでは、このプロパティはtrue
です。
アクセス関数です:
bool | isEnabled() const |
void | setEnabled(bool) |
isEnabledTo(),QKeyEvent,QMouseEvent,changeEvent()も参照のこと 。
[read-only]
focus : const bool
このプロパティは、このウィジェット(またはそのフォーカスプロキシ)がキーボード入力フォーカスを持つかどうかを保持する。
デフォルトでは、このプロパティはfalse
である。
注意: ウィジェットに対してこのプロパティの値を取得することは、実質的にQApplication::focusWidget() がウィジェットを参照しているかどうかをチェックすることと同じである。
アクセス関数:
bool | hasFocus() const |
setFocus()、clearFocus()、setFocusPolicy()、QApplication::focusWidget()も参照 。
focusPolicy : Qt::FocusPolicy
このプロパティは、ウィジェットがキーボードフォーカスを受け入れる方法を保持する。
ポリシーは、ウィジェットがタブ操作でキーボードフォーカスを受け入れる場合はQt::TabFocus 、クリック操作でフォーカスを受け入れる場合はQt::ClickFocus 、両方を受け入れる場合はQt::StrongFocus 、全くフォーカスを受け入れない場合はQt::NoFocus (デフォルト) です。
キーボード・イベントを処理する場合、ウィジェットのキーボード・フォーカスを有効にする必要があります。これは通常、ウィジェットのコンストラクタで行います。例えば、QLineEdit コンストラクタは setFocusPolicy(Qt::StrongFocus) を呼び出します。
ウィジェットにフォーカス・プロキシがある場合、フォーカス・ポリシーはそのプロキシに伝搬されます。
アクセス関数:
Qt::FocusPolicy | focusPolicy() const |
void | setFocusPolicy(Qt::FocusPolicy policy) |
focusInEvent(),focusOutEvent(),keyPressEvent(),keyReleaseEvent(),enabledも参照してください 。
font : QFont
このプロパティは、ウィジェットに現在設定されているフォントを保持する。
このプロパティは、ウィジェットの要求されたフォントを記述します。フォントは、標準コンポーネントをレンダリングするときにウィジェットのスタイルによって使用され、カスタムウィジェットがネイティブプラットフォームのルックアンドフィールとの一貫性を維持できるようにする手段として利用できます。プラットフォームやスタイルが異なると、アプリケーションのフォントも異なることがよくあります。
新しいフォントをウィジェットに割り当てると、このフォントのプロパティがウィジェットのデフォルトフォントと組み合わされて、ウィジェットの最終的なフォントになります。fontInfo() を呼び出すと、ウィジェットの最終フォントのコピーを取得できます。この最終フォントは、QPainter のフォントを初期化する際にも使用されます。
デフォルトはシステム環境に依存します。QApplication は、すべてのウィジェットのデフォルトとなるシステム/テーマ・フォントを保持します。また、ウィジェットの種類によっては、特別なフォントがデフォルトになることもあります。カスタムフォントとウィジェット名をQApplication::setFont() に渡すことで、ウィジェット用のデフォルトフォントを自分で定義することもできます。最後に、フォントは Qt のフォントデータベースと照合され、最適なものが見つかります。
QWidget は、明示的なフォントプロパティを親から子へ伝搬します。フォントの特定のプロパティを変更し、そのフォントをウィジェットに割り当てると、そのプロパティはすべてのウィジェットの子に伝わり、そのプロパティのシステムデフォルトを上書きします。デフォルトでは、 属性が有効になっていない限り、フォントはウィンドウに伝播しないことに注意してください( () を参照)。Qt::WA_WindowPropagation isWindow
QWidgetフォントの伝播はパレットの伝播と似ています。
すべての標準 Qt ウィジェットのコンテンツをレンダリングするために使用される現在のスタイルは、ウィジェットのフォントを使用するかどうかを自由に選択できます。特に、GTKスタイル、Macスタイル、Windows Vistaスタイルのような特定のスタイルは、プラットフォームのネイティブなルック&フィールに合わせるために、ウィジェットフォントに特別な修正を適用します。このため、ウィジェットのフォントにプロパティを割り当てても、ウィジェットの外観が変わるとは限りません。代わりに、スタイルシートを適用することができます。
注意: Qt スタイルシートがsetFont() と同じウィジェットで使用されている場合、設定が衝突するとスタイルシートが優先されます。
関数にアクセスしてください:
const QFont & | font() const |
void | setFont(const QFont &) |
fontInfo() およびfontMetrics()も参照してください 。
[read-only]
frameGeometry : const QRect
ウィンドウ・フレームを含む親ウィジェットに対するウィジェットのジオメトリ
ウィンドウのジオメトリの概要については、ウィンドウのジオメトリのドキュメントを参照してください。
デフォルトでは、このプロパティは、ユーザのプラットフォームと画面のジオメトリに依存する値を含んでいます。
アクセス関数:
QRect | frameGeometry() const |
geometry()、x()、y()、pos()も参照してください 。
[read-only]
frameSize : const QSize
このプロパティは、ウィンドウフレームを含むウィジェットのサイズを保持します。
デフォルトでは、このプロパティには、ユーザのプラットフォームとスクリーン形状に依存する値が格納されます。
アクセス関数
QSize | frameSize() const |
[read-only]
fullScreen : const bool
このプロパティは、ウィジェットがフルスクリーンモードで表示されるかどうかを保持する。
フルスクリーンモードのウィジェットは、スクリーン領域全体を占有し、タイトルバーなどのウィンドウ装飾を表示しない。
デフォルトでは、このプロパティはfalse
です。
アクセス関数です:
bool | isFullScreen() const |
windowState()、minimized 、maximizedも参照 。
geometry : QRect
このプロパティは、ウィジェットの親に対する相対的なジオメトリを保持し、ウィンドウフレームを除きます。
ジオメトリを変更するとき、ウィジェットが表示されていれば、移動イベント (moveEvent()) および/またはサイズ変更イベント (resizeEvent()) を直ちに受け取ります。ウィジェットが現在表示されていない場合、表示される前に適切なイベントを受け取ることが保証されます。
サイズ・コンポーネントは、minimumSize() とmaximumSize() で定義された範囲外にある場合、調整されます。
警告 resizeEvent() またはmoveEvent() の内部で setGeometry() を呼び出すと、 無限再帰になる可能性があります。
ウィンドウのジオメトリに関する問題の概要については、ウィンドウのジオメトリのドキュメントを参照してください。
デフォルトでは、このプロパティには、ユーザーのプラットフォームと画面のジオメトリに依存する値が格納されます。
アクセス関数:
const QRect & | geometry() const |
void | setGeometry(int x, int y, int w, int h) |
void | setGeometry(const QRect &) |
frameGeometry()、rect()、move()、resize()、moveEvent()、resizeEvent()、minimumSize()、maximumSize()も 参照のこと。
[read-only]
height : const int
このプロパティは、ウィンドウフレームを除いたウィジェットの高さを保持します。
ウィンドウのジオメトリの概要については、ウィンドウのジオメトリのドキュメントを参照してください。
デフォルトでは、このプロパティには、ユーザのプラットフォームとscreen geometry に依存する値が格納されます。
アクセス関数:
int | height() const |
geometry,width,sizeも参照してください 。
inputMethodHints : Qt::InputMethodHints
ウィジェットが持つ入力メソッド固有のヒント。
これは入力ウィジェットにのみ関連します。入力メソッドがどのように動作するかのヒントを取得するために使用されます。例えば、Qt::ImhFormattedNumbersOnly フラグが設定されている場合、入力メソッドは数値のみを入力できるように視覚コンポーネントを変更します。
警告 ウィジェットの中には、意図したとおりに動作するために特定のフラグを必要とするものがあります。フラグを設定するには、w->setInputMethodHints(f)
の代わりにw->setInputMethodHints(w->inputMethodHints()|f)
を実行してください。
注意: フラグはヒントに過ぎないので、特定の入力メソッドの実装がフラグを無視するのは自由です。特定の種類の文字が確実に入力されるようにしたい場合は、ウィジェットにQValidator も設定してください。
デフォルト値はQt::ImhNone です。
アクセス関数:
Qt::InputMethodHints | inputMethodHints() const |
void | setInputMethodHints(Qt::InputMethodHints hints) |
inputMethodQuery()も参照してください 。
[read-only]
isActiveWindow : const bool
このプロパティは、このウィジェットのウィンドウがアクティブウィンドウであるかどうかを保持します。
アクティブ・ウィンドウとは、キーボード・フォーカスを持つウィジェットを含むウィンドウのことです(ウィンドウにウィジェットがない場合や、ウィジェットのどれにもキーボード・フォーカスがない場合でも、フォーカスがある場合があります)。
ポップアップ・ウィンドウが表示されている場合、このプロパティはアクティブ・ウィンドウとポップアップの両方に対してtrue
。
デフォルトでは、このプロパティはfalse
です。
アクセス関数:
bool | isActiveWindow() const |
activateWindow() およびQApplication::activeWindow()も参照してください 。
layoutDirection : Qt::LayoutDirection
このプロパティは、このウィジェットのレイアウト方向を保持します。
注意: Qt 4.7 以降、このメソッドはテキストのレイアウト方向に影響しなくなりました。
デフォルトでは、このプロパティはQt::LeftToRight に設定されています。
ウィジェットにレイアウト方向が設定されると、ウィジェットの子ウィジェットに伝搬されますが、ウィンドウである子ウィジェットや、setLayoutDirection() が明示的に呼び出された子ウィジェットには伝搬されません。また、親ウィジェットに対して setLayoutDirection() が呼び出された後に追加された子ウィジェットは、親のレイアウト方向を継承しません。
アクセス関数:
Qt::LayoutDirection | layoutDirection() const |
void | setLayoutDirection(Qt::LayoutDirection direction) |
void | unsetLayoutDirection() |
QApplication::layoutDirectionも参照してください 。
locale : QLocale
このプロパティは、ウィジェットのロケールを保持します。
特別なロケールが設定されていない限り、これは親のロケールか(このウィジェットがトップレベルのウィジェットの場合)デフォルトのロケールです。
ウィジェットが日付や数値を表示する場合、これらはウィジェットのロケールを使ってフォーマットされなければなりません。
アクセス関数:
QLocale | locale() const |
void | setLocale(const QLocale &locale) |
void | unsetLocale() |
QLocale とQLocale::setDefault()も参照してください 。
[read-only]
maximized : const bool
このプロパティは、このウィジェットが最大化されているかどうかを保持する。
このプロパティはウィンドウにのみ関連します。
注意: ウィンドウシステムによっては制限があるため、このプロパティが期待される結果を報告するとは限りません(例えば、X11 のユーザがウィンドウマネージャ経由でウィンドウを最大化した場合、Qt はこれを他のサイズ変更と区別する方法がありません)。これは、ウィンドウ・マネージャのプロトコルが進化するにつれて改善されることが期待されます。
デフォルトでは、このプロパティはfalse
です。
アクセス関数です:
bool | isMaximized() const |
windowState(),showMaximized(),visible,show(),hide(),showNormal(),minimizedも参照して ください。
maximumHeight : int
このプロパティは、ウィジェットの最大高さをピクセル単位で保持する。
このプロパティは、maximumSize プロパティによって保持される高さに対応します。
デフォルトでは、このプロパティは16777215の値を含んでいます。
注: QWIDGETSIZE_MAX
マクロの定義により、ウィジェットの最大サイズが制限されます。
アクセス関数:
int | maximumHeight() const |
void | setMaximumHeight(int maxh) |
maximumSize およびmaximumWidthも参照してください 。
maximumSize : QSize
このプロパティは、ウィジェットの最大サイズをピクセル単位で保持します。
ウィジェットは、ウィジェットの最大サイズより大きなサイズにリサイズすることはできません。
デフォルトでは、このプロパティはwidthとheightの両方が16777215の値を持つサイズを含む。
注: QWIDGETSIZE_MAX
マクロの定義により、ウィジェットの最大サイズが制限されます。
アクセス関数:
QSize | maximumSize() const |
void | setMaximumSize(const QSize &) |
void | setMaximumSize(int maxw, int maxh) |
maximumWidth 、maximumHeight 、minimumSize 、sizeIncrementも参照のこと 。
maximumWidth : int
このプロパティは、ウィジェットの最大幅をピクセル単位で保持する。
このプロパティは、maximumSize プロパティによって保持される幅に対応します。
デフォルトでは、このプロパティは16777215の値を含んでいます。
注: QWIDGETSIZE_MAX
マクロの定義により、ウィジェットの最大サイズが制限されます。
アクセス関数:
int | maximumWidth() const |
void | setMaximumWidth(int maxw) |
maximumSize およびmaximumHeightも参照してください 。
[read-only]
minimized : const bool
このプロパティは、このウィジェットが最小化(アイコン化)されているかどうかを保持する。
このプロパティはウィンドウにのみ関係する。
デフォルトでは、このプロパティはfalse
です。
アクセス関数:
bool | isMinimized() const |
showMinimized(),visible,show(),hide(),showNormal(),maximizedも参照 。
minimumHeight : int
このプロパティは、ウィジェットの最小高さをピクセル単位で保持する。
このプロパティは、minimumSize プロパティによって保持される高さに対応します。
デフォルトでは、このプロパティの値は0です。
アクセス関数:
int | minimumHeight() const |
void | setMinimumHeight(int minh) |
minimumSize およびminimumWidthも参照のこと 。
minimumSize : QSize
このプロパティは、ウィジェットの最小サイズを保持します。
ウィジェットは、ウィジェットの最小サイズより小さいサイズにリサイズすることはできません。現在のサイズの方が小さい場合、ウィジェットのサイズは強制的に最小サイズになります。
この関数によって設定された最小サイズは、QLayout によって定義された最小サイズを上書きします。最小サイズの設定を解除するには、QSize(0, 0)
の値を使用します。
デフォルトでは、このプロパティは幅と高さがゼロのサイズを含みます。
アクセス関数:
QSize | minimumSize() const |
void | setMinimumSize(const QSize &) |
void | setMinimumSize(int minw, int minh) |
minimumWidth 、minimumHeight 、maximumSize 、sizeIncrementも参照 。
[read-only]
minimumSizeHint : const QSize
このプロパティは、ウィジェットの推奨最小サイズを保持する。
このプロパティの値が無効なサイズの場合、推奨される最小サイズはありません。
minimumSizeHint() のデフォルト実装は、このウィジェットのレイアウトがない場合は無効なサイズを返し、そうでない場合はレイアウトの最小サイズを返します。ほとんどの組み込みウィジェットは、minimumSizeHint() を再実装します。
QLayout minimumSize() が設定されているか、サイズ・ポリシーが QSizePolicy::Ignore に設定されていない限り、最小サイズ・ヒントより小さいサイズにウィジェットをリサイズすることはありません。 () が設定されている場合、最小サイズのヒントは無視されます。minimumSize
アクセス関数:
virtual QSize | minimumSizeHint() const |
QSize::isValid()、resize()、setMinimumSize()、sizePolicy()も参照してください 。
minimumWidth : int
このプロパティは、ウィジェットの最小幅をピクセル単位で保持する。
このプロパティは、minimumSize プロパティによって保持される幅に対応する。
デフォルトでは、このプロパティの値は 0 です。
アクセス関数:
int | minimumWidth() const |
void | setMinimumWidth(int minw) |
minimumSize およびminimumHeightも参照のこと 。
[read-only]
modal : const bool
このプロパティは、ウィジェットがモーダルウィジェットであるかどうかを保持します。
このプロパティは、ウィンドウに対してのみ意味を持ちます。モーダルウィジェットは、他のすべてのウィンドウのウィジェットが入力を取得するのを防ぎます。
デフォルトでは、このプロパティはfalse
です。
アクセス関数:
bool | isModal() const |
isWindow(),windowModality,QDialogも参照してください 。
mouseTracking : bool
このプロパティは、ウィジェットに対してマウストラッキングが有効であるかどうかを保持する。
マウストラッキングが無効(デフォルト)の場合、マウスが移動している間に少なくとも1つのマウスボタンが押されたときのみ、ウィジェットはマウス移動イベントを受け取る。
マウストラッキングが有効な場合、ボタンが押されていなくても、ウィジェットはマウス移動イベントを受信します。
アクセス関数:
bool | hasMouseTracking() const |
void | setMouseTracking(bool enable) |
mouseMoveEvent()も参照してください 。
[read-only]
normalGeometry : const QRect
このプロパティは、通常の(最大化またはフルスクリーンではない)トップレベルウィジェットとして表示されるときのウィジェットのジオメトリを保持します。
ウィジェットが既にこの状態にある場合、通常のジオメトリはウィジェットの現在のgeometry() を反映します。
子ウィジェットの場合、このプロパティは常に空の矩形を保持します。
デフォルトでは、このプロパティは空の矩形を含みます。
アクセス関数:
QRect | normalGeometry() const |
QWidget::windowState() およびQWidget::geometryも参照してください 。
palette : QPalette
このプロパティは、ウィジェットのパレットを保持する
このプロパティは、ウィジェットのパレットを記述します。パレットは、標準コンポーネントをレンダリングするときにウィジェットのスタイルによって使用され、カスタムウィジェットがネイティブプラットフォームのルックアンドフィールとの一貫性を維持できるようにする手段として利用できます。プラットフォームやスタイルによってパレットが異なることはよくあります。
ウィジェットに新しいパレットを割り当てると、このパレットからのカラーロールがウィジェットのデフォルトパレットと組み合わされて、ウィジェットの最終パレットが形成されます。ウィジェットの背景ロールのパレットエントリは、ウィジェットの背景を塗りつぶすために使用され(QWidget::autoFillBackground を参照)、前景ロールはQPainter のペンを初期化します。
デフォルトはシステム環境に依存します。QApplication は、すべてのウィジェットのデフォルトとなるシステム/テーマパレットを維持します。また、特定のタイプのウィジェットには、特別なデフォルト・パレットがあるかもしれません(例えば、Windows Vistaでは、QMenuBar から派生するすべてのクラスは、特別なデフォルト・パレットを持っています)。QApplication::setPalette() にカスタムパレットとウィジェットの名前を渡すことで、ウィジェットのデフォルトパレットを自分で定義することもできます。最後に、スタイルには常に、割り当てられたパレットを磨くオプションがあります (QStyle::polish() を参照)。
QWidget は、明示的なパレットの役割を親から子へ伝達します。ブラシや色をパレットの特定のロールに割り当て、そのパレットをウィジェットに割り当てると、そのロールはすべてのウィジェットの子に伝わり、そのロールのシステムデフォルトを上書きします。デフォルトでは、 属性が有効になっていない限り、パレットはウィンドウに伝播しないことに注意してください( () を参照)。Qt::WA_WindowPropagation isWindow
QWidgetパレットの伝播はフォントの伝播と似ています。
すべての標準 Qt ウィジェットのコンテンツをレンダリングするために使用される現在のスタイルは、ウィジェットのパレットから色とブラシを自由に選択できます。特に、GTKスタイル、Macスタイル、Windows Vistaスタイルのような特定のスタイルは、ウィジェットのコンテンツをレンダリングするためにサードパーティのAPIに依存しており、これらのスタイルは通常パレットに従いません。このため、ウィジェットのパレットにロールを割り当てても、ウィジェットの外観が変更される保証はありません。代わりに、スタイルシートを適用することができます。
警告 この関数はQt スタイルシートと併用しないでください。スタイルシートを使用する場合、"color"、"background-color"、"selection-color"、"selection-background-color"、"alternate-background-color "を使用して、ウィジェットのパレットをカスタマイズすることができます。
アクセス関数:
const QPalette & | palette() const |
void | setPalette(const QPalette &) |
QGuiApplication::palette(),QWidget::font(),Qt Style Sheetsも参照してください 。
pos : QPoint
このプロパティは、親ウィジェット内のウィジェットの位置を保持する。
ウィジェットがウィンドウの場合、位置はデスクトップ上のウィジェットの位置となり、そのフレームも含まれます。
位置を変更するとき、ウィジェットが表示されていれば、すぐに移動イベント (moveEvent()) を受け取ります。ウィジェットが現在表示されていない場合、表示される前にイベントを受け取ることが保証されます。
デフォルトでは、このプロパティは原点を参照する位置を含みます。
警告 moveEvent() の内部で move() またはsetGeometry() を呼び出すと、無限再帰になる可能性があります。
ウィンドウのジオメトリに関する問題の概要については、ウィンドウのジオメトリに関するドキュメントを参照してください。
注意: すべてのウィンドウ・システムがトップ・レベルのウィンドウ位置の設定や問い合わせをサポートしているわけではありません。そのようなシステムでは、プログラムでウィンドウを動かしても効果がない場合があり、QPoint(0, 0)
のような人工的な値が現在の位置に返されることがあります。
アクセス関数:
QPoint | pos() const |
void | move(int x, int y) |
void | move(const QPoint &) |
frameGeometry 、size 、x()、y()も参照のこと 。
[read-only]
rect : const QRect
このプロパティは、ウィンドウフレームを除いたウィジェットの内部ジオメトリを保持する。
rect プロパティはQRect(0, 0,width(),height()) に等しい。
ウィンドウのジオメトリの概要については、ウィンドウのジオメトリのドキュメントを参照してください。
デフォルトでは、このプロパティは、ユーザーのプラットフォームとスクリーンのジオメトリに依存する値を含んでいます。
アクセス関数:
QRect | rect() const |
sizeも参照してください 。
size : QSize
このプロパティは、ウィンドウフレームを除いたウィジェットのサイズを保持します。
ウィジェットがリサイズされているときに表示されている場合、すぐにリサイズ・イベント (resizeEvent()) を受け取ります。ウィジェットが現在表示されていない場合、表示される前にイベントを受け取ることが保証されます。
サイズは、minimumSize() とmaximumSize() で定義された範囲外にある場合に調整されます。
デフォルトでは、このプロパティは、ユーザのプラットフォームとスクリーン形状に依存する値を含みます。
警告 resizeEvent() の内部で resize() またはsetGeometry() を呼び出すと、無限再帰になることがあります。
注意 : サイズをQSize(0, 0)
に設定すると、ウィジェットが画面に表示されなくなります。これはウィンドウにも適用されます。
アクセス関数:
QSize | size() const |
void | resize(int w, int h) |
void | resize(const QSize &) |
pos 、geometry 、minimumSize 、maximumSize 、resizeEvent ()、adjustSize ()も参照 。
[read-only]
sizeHint : const QSize
このプロパティは、ウィジェットの推奨サイズを保持する。
このプロパティの値が無効なサイズの場合、推奨されるサイズはありません。
sizeHint() のデフォルト実装は、このウィジェットのレイアウトがない場合は無効なサイズを返し、そうでない場合はレイアウトの推奨サイズを返します。
アクセス関数:
virtual QSize | sizeHint() const |
QSize::isValid(),minimumSizeHint(),sizePolicy(),setMinimumSize(),updateGeometry()も参照 。
sizeIncrement : QSize
このプロパティは、ウィジェットのサイズ増分を保持します。
baseSizeユーザがウィンドウのサイズを変更するとき、サイズは横方向に sizeIncrement().width() ピクセルのステップで移動し、縦方向に sizeIncrement.height() ピクセルのステップで移動します。望ましいウィジェットのサイズは、非負の整数iと jです:
width = baseSize().width() + i * sizeIncrement().width(); height = baseSize().height() + j * sizeIncrement().height();
すべてのウィジェットに対してサイズの増分を設定できますが、ウィンドウにしか影響しないことに注意してください。
デフォルトでは、このプロパティは幅と高さがゼロのサイズを含みます。
警告 サイズの増分はWindowsでは効果がなく、X11ではウィンドウ・マネージャによって無視される可能性があります。
アクセス関数:
QSize | sizeIncrement() const |
void | setSizeIncrement(const QSize &) |
void | setSizeIncrement(int w, int h) |
size 、minimumSize 、maximumSizeも参照のこと 。
sizePolicy : QSizePolicy
このプロパティは、ウィジェットのデフォルトのレイアウト動作を保持します。
このウィジェットの子を管理するQLayout が存在する場合、そのレイアウトによって指定されたサイズ・ポリシーが使用されます。そのようなQLayout がない場合、この関数の結果が使用される。
デフォルトのポリシーは Preferred/Preferred で、ウィジェットは自由にサイズ変更できますが、sizeHint() が返すサイズを優先します。ボタンのようなウィジェットは、水平方向には伸ばしてもよいが、垂直方向には固定であることを指定するために、サイズポリシーを設定します。同じことが、lineeditコントロール(QLineEdit 、QSpinBox 、編集可能なQComboBox )や、その他の水平方向のウィジェット(QProgressBar )にも当てはまります。QToolButton'sは通常正方形なので、両方向に成長することができます。異なる方向をサポートするウィジェット (QSlider,QScrollBar または QHeader など) は、それぞれの方向にのみ伸縮を指定します。スクロールバーを提供できるウィジェット(通常はQScrollArea のサブクラス)は、追加のスペースを使用できることを指定する傾向があり、sizeHint() より少ないスペースでやりくりできることを指定します。
アクセス関数:
QSizePolicy | sizePolicy() const |
void | setSizePolicy(QSizePolicy) |
void | setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical) |
sizeHint()、QLayout 、QSizePolicy 、updateGeometry()も参照 。
statusTip : QString
このプロパティは、ウィジェットの状態を保持する。
デフォルトでは、このプロパティは空の文字列を含みます。
アクセス関数:
QString | statusTip() const |
void | setStatusTip(const QString &) |
toolTip およびwhatsThisも参照してください 。
styleSheet : QString
このプロパティは、ウィジェットのスタイルシートを保持します。
スタイルシートには、Qt Style Sheetsドキュメントで説明されているように、ウィジェットのスタイルに対するカスタマイズのテキスト記述が含まれています。
Qt 4.5 以降、Qt スタイルシートは macOS を完全にサポートしています。
警告 Qtスタイルシートは現在、QStyle のカスタムサブクラスには対応していません。将来のリリースで対応する予定です。
アクセス関数:
QString | styleSheet() const |
void | setStyleSheet(const QString &styleSheet) |
setStyle(),QApplication::styleSheet,Qt Style Sheetsも参照してください 。
tabletTracking : bool
このプロパティは、ウィジェットでタブレットトラッキングが有効かどうかを保持します。
タブレットトラッキングが無効(デフォルト)の場合、スタイラスがタブレットに接触しているか、少なくとも1つのスタイラスボタンが押され、スタイラスが移動している時のみ、ウィジェットはタブレット移動イベントを受信します。
タブレットトラッキングが有効な場合、ウィジェットは近接ホバリング中でもタブレット移動イベントを受信します。これは、位置だけでなく、回転や傾きなどの補助プロパティを監視し、UIでフィードバックを提供するのに便利です。
アクセス関数:
bool | hasTabletTracking() const |
void | setTabletTracking(bool enable) |
tabletEvent()も参照してください 。
toolTip : QString
このプロパティは、ウィジェットのツールチップを保持します。
デフォルトでは、ツールチップはアクティブなウィンドウの子ウィジェットにのみ表示されます。この動作は、ツールチップを持つウィジェットではなく、ウィンドウに属性Qt::WA_AlwaysShowToolTips を設定することで変更できます。
ツールチップの動作を制御したい場合は、event() 関数をインターセプトして、QEvent::ToolTip イベントをキャッチします(ツールチップを表示する領域をカスタマイズしたい場合など)。
デフォルトでは、このプロパティは空の文字列を含んでいます。
アクセス関数:
QString | toolTip() const |
void | setToolTip(const QString &) |
QToolTip 、statusTip 、whatsThisも参照してください 。
toolTipDuration : int
このプロパティは、ウィジェットのツールチップ表示時間を保持します。
ツールチップが表示される時間をミリ秒で指定します。値が -1 (デフォルト) の場合、持続時間はツールチップの長さに応じて計算されます。
アクセス関数:
int | toolTipDuration() const |
void | setToolTipDuration(int msec) |
toolTipも参照してください 。
updatesEnabled : bool
このプロパティは、更新が有効かどうかを保持する。
更新が有効なウィジェットは、ペイントイベントを受け取り、システム背景を持つ。これはまた、更新が無効な場合にupdate() とrepaint() を呼び出しても効果がないことを意味する。
デフォルトでは、このプロパティはtrue
です。
setUpdatesEnabled()は通常、短時間の更新を無効にするために使用されます。例えば、大きな変更時に画面がちらつくのを避けるためです。Qt では、ウィジェットは通常、画面のちらつきを発生させませんが、X11 では、ウィジェットが非表示になると、他のウィジェットに置き換わる前に、サーバーが画面上の領域を消してしまうことがあります。アップデートを無効にすることで、これを解決できます。
例
setUpdatesEnabled(false); bigVisualChanges(); setUpdatesEnabled(true);
ウィジェットを無効にすると、暗黙的にその子ウィジェットもすべて無効になります。ウィジェットを有効にすると、トップレベルのウィジェットまたは明示的に無効にされたウィジェットを除くすべての子ウィジェットが有効になります。更新を再度有効にすると、暗黙的にウィジェットでupdate() が呼び出されます。
関数にアクセスします:
bool | updatesEnabled() const |
void | setUpdatesEnabled(bool enable) |
paintEvent()も参照してください 。
visible : bool
このプロパティは、ウィジェットが可視であるかどうかを保持します。
setVisible(true) またはshow() を呼び出すと、ウィンドウまでのすべての親ウィジェットが表示されている場合、ウィジェットは可視状態に設定されます。祖先が表示されていない場合、すべての祖先が表示されるまで、ウィジェットは表示されません。サイズや位置が変更された場合、Qt はウィジェットが表示される直前に移動イベントとサイズ変更イベントを受け取ることを保証します。ウィジェットのサイズがまだ変更されていない場合、Qt はadjustSize() を使用して、ウィジェットのサイズをデフォルトの便利なサイズに調整します。
setVisible(false) またはhide() を呼び出すと、ウィジェットは明示的に非表示になります。明示的に非表示にされたウィジェットは、表示しない限り、すべての祖先が表示されるようになっても、表示されるようになることはありません。
ウィジェットは、その可視ステータスが変更されると、showイベントとhideイベントを受け取ります。非表示イベントと表示イベントの間に、CPUサイクルを浪費して情報を準備したり、ユーザーに表示したりする必要はありません。例えば、ビデオ・アプリケーションでは、新しいフレームの生成を停止するだけでよい。
画面上の他のウィンドウに隠されているウィジェットは、表示されているとみなされます。アイコン化されたウィンドウや、別の仮想デスクトップ上に存在するウィンドウも同様です(この概念をサポートするプラットフォーム上)。ウィジェットは、そのマッピングステータスがウィンドウシステムによって変更されると、自発的な表示イベントと非表示イベントを受け取ります。例えば、ユーザーがウィンドウを最小化すると自発的な非表示イベントが発生し、ウィンドウが再び復元されると自発的な表示イベントが発生します。
setVisible()関数を再実装する必要はほとんどありません。ウィジェットを表示する前に何らかの設定を変更する必要がある場合は、代わりにshowEvent() を使用してください。遅延初期化を行う必要がある場合は、event() 関数に配信される Polish イベントを使用してください。
アクセス関数:
bool | isVisible() const |
virtual void | setVisible(bool visible) |
show(),hide(),isHidden(),isVisibleTo(),isMinimized(),showEvent(),hideEvent()も参照 。
whatsThis : QString
このプロパティは、ウィジェットのWhat's Thisヘルプテキストを保持します。
デフォルトでは、このプロパティは空の文字列を含みます。
アクセス関数:
QString | whatsThis() const |
void | setWhatsThis(const QString &) |
QWhatsThis 、QWidget::toolTip 、QWidget::statusTipも参照してください 。
[read-only]
width : const int
このプロパティは、ウィンドウフレームを除いたウィジェットの幅を保持します。
ウィンドウのジオメトリの概要については、ウィンドウのジオメトリのドキュメントを参照してください。
注意: マルチスクリーンデスクトップ上のスクリーンの幅を求めるためにこの関数を使用しないでください。詳細については、QScreen を参照してください。
デフォルトでは、このプロパティには、ユーザーのプラットフォームと画面のジオメトリに依存する値が含まれます。
アクセス関数:
int | width() const |
geometry 、height 、sizeも参照してください 。
windowFilePath : QString
このプロパティは、ウィジェットに関連するファイルパスを保持します。
このプロパティはウィンドウに対してのみ意味を持つ。これは、ファイルパスをウィンドウに関連付けます。ファイルパスを設定し、ウィンドウタイトルを設定していない場合、Qt はウィンドウタイトルをQFileInfo::fileName() を使用して取得した、指定されたパスのファイル名に設定します。
ウィンドウタイトルが設定されている場合、ウィンドウタイトルが優先され、ファイルパス文字列の代わりに表示されます。
さらにmacOSでは、ファイルパスが存在すると仮定して、ウィンドウのプロキシアイコンを設定するという利点もある。
ファイルパスが設定されていない場合、このプロパティは空の文字列を含みます。
デフォルトでは、このプロパティは空の文字列を含みます。
アクセス関数:
QString | windowFilePath() const |
void | setWindowFilePath(const QString &filePath) |
windowTitle およびwindowIconも参照のこと 。
windowFlags : Qt::WindowFlags
ウィンドウフラグは、タイプ(例:Qt::Dialog )と、ウィンドウシステムに対する0個以上のヒント(例:Qt::FramelessWindowHint )の組み合わせである。
ウィジェットのタイプがQt::Widget またはQt::SubWindow で、ウィンドウ(Qt::Window,Qt::Dialog など)になった場合、デスクトップ上の位置(0, 0)に置かれる。ウィジェットがウィンドウで、Qt::Widget またはQt::SubWindow になった場合、親ウィジェットからの相対位置 (0, 0) に置かれる。
アクセス関数:
Qt::WindowFlags | windowFlags() const |
void | setWindowFlags(Qt::WindowFlags type) |
アクセス関数:windowType()、setWindowFlag()、Window Flags の例も参照 。
windowIcon : QIcon
このプロパティは、ウィジェットのアイコンを保持します。
このプロパティは、ウィンドウに対してのみ意味を持ちます。アイコンが設定されていない場合、windowIcon() はアプリケーション・アイコン (QApplication::windowIcon()) を返します。
注意: macOSでは、ウィンドウ・アイコンはアクティブなドキュメントを表し、setWindowFilePath を使用してファイル・パスも設定されていない限り表示されません。
アクセス関数:
QIcon | windowIcon() const |
void | setWindowIcon(const QIcon &icon) |
Notifierシグナル:
void | windowIconChanged(const QIcon &icon) |
windowTitle およびsetWindowFilePathも参照のこと 。
windowModality : Qt::WindowModality
このプロパティは、モーダルウィジェットによってブロックされるウィンドウを保持します。
このプロパティは、ウィンドウに対してのみ意味を持ちます。モーダルウィジェットは、他のウィンドウのウィジェットが入力を取得するのを妨げます。このプロパティの値は、ウィジェットが表示されているときにブロックされるウィンドウを制御します。ウィンドウが表示されている間にこのプロパティを変更しても効果はありません。まず、ウィジェットをhide() してから、show() し直す必要があります。
デフォルトでは、このプロパティはQt::NonModal である。
アクセス関数:
Qt::WindowModality | windowModality() const |
void | setWindowModality(Qt::WindowModality windowModality) |
isWindow()、QWidget::modal 、およびQDialogも参照してください 。
windowModified : bool
このプロパティは、ウィンドウに表示されているドキュメントに未保存の変更があるかどうかを保持します。
変更されたウィンドウとは、内容が変更されたがディスクに保存されていないウィンドウのことです。このフラグはプラットフォームによって異なる効果を持ちます。macOSではクローズボタンが変更された外観になり、他のプラットフォームではウィンドウタイトルに'*'(アスタリスク)が付きます。
ウィンドウ・タイトルには"[*]"プレースホルダーが含まれていなければならない。通常はファイル名の直後に表示されます(例:"document1.txt[*] - Text Editor")。ウィンドウが変更されなければ、プレースホルダは単に削除されます。
ウィジェットが修正されたものとして設定されると、そのすべての祖先も修正されたものとして設定されることに注意してください。ただし、ウィジェットでsetWindowModified(false)
を呼び出した場合、親の他の子ウィジェットが変更されている可能性があるため、その親ウィジェットには反映されません。
アクセス関数:
bool | isWindowModified() const |
void | setWindowModified(bool) |
windowTitleも参照してください 。
windowOpacity : double
このプロパティは、ウィンドウの不透明度を保持する。
不透明度の有効範囲は1.0(完全に不透明)から0.0(完全に透明)である。
デフォルトでは、このプロパティの値は1.0です。
この機能は、CompositeエクステンションをサポートするEmbedded Linux、macOS、Windows、X11プラットフォームで使用できます。
注意: X11では、コンポジット・マネージャが動作している必要があり、X11固有の_NET_WM_WINDOW_OPACITYアトムが、使用しているウィンドウ・マネージャによってサポートされている必要があります。
警告 警告:このプロパティを不透明から透明に変更すると、ウィンドウが正しく表示される前に処理する必要があるペイントイベントが発行される可能性があります。これは主にQScreen::grabWindow() の使用に影響します。また、半透明のウィンドウは不透明なウィンドウよりも更新とサイズ変更が著しく遅いことに注意してください。
アクセス関数:
qreal | windowOpacity() const |
void | setWindowOpacity(qreal level) |
setMask()も参照のこと 。
windowTitle : QString
このプロパティは、ウィンドウのタイトル(キャプション)を保持します。
このプロパティは、ウィンドウやダイアログなどのトップレベルのウィジェットに対してのみ意味を持ちます。キャプションが設定されていない場合、タイトルはwindowFilePath 。 どちらも設定されていない場合、タイトルは空の文字列になります。
windowModified メカニズムを使用する場合、ウィンドウタイトルには"[*]"プレースホルダを含める必要があります。通常は、ファイル名の直後に表示されます(例:"document1.txt[*] - Text Editor")。windowModified プロパティがfalse
(デフォルト)の場合、プレースホルダは単に削除されます。
Windows や Unix を含む) い く つかのデス ク ト ッ ププ ラ ッ ト フ ォーム上では、 アプ リ ケーシ ョ ン名 (QGuiApplication::applicationDisplayName のもの) が設定 さ れていれば、 ウ ィ ン ド ウ タ イ ト ルの末尾に追加 さ れます。こ れは QPA プ ラ グ イ ンに よ っ て実行 さ れ る ので、 ユーザーに表示 さ れますが、windowTitle 文字列の一部ではあ り ません。
アクセス関数
QString | windowTitle() const |
void | setWindowTitle(const QString &) |
Notifier シグナル:
void | windowTitleChanged(const QString &title) |
windowIcon 、windowModified 、およびwindowFilePathも参照してください 。
[read-only]
x : const int
このプロパティは、ウィジェットの x 座標を保持します。
ウィンドウのジオメトリの概要については、ウィンドウのジオメトリのドキュメントを参照してください。
デフォルトでは、このプロパティの値は0です。
アクセス関数:
int | x() const |
frameGeometry,y,posも参照してください 。
[read-only]
y : const int
このプロパティは、ウィジェットの親からの相対的なy座標を保持します。
ウィンドウのジオメトリの概要については、ウィンドウのジオメトリのドキュメントを参照してください。
デフォルトでは、このプロパティの値は0です。
アクセス関数:
int | y() const |
frameGeometry 、x 、posも参照してください 。
メンバ関数のドキュメント
[since 6.3]
QAction *QWidget::addAction(const QIcon &icon, const QString &text)
[since 6.3]
QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut)
[since 6.3]
QAction *QWidget::addAction(const QString &text)
[since 6.3]
QAction *QWidget::addAction(const QString &text, const QKeySequence &shortcut)
これらの便利な関数は、テキストtext 、アイコンicon 、ショートカットshortcut があれば、それを持つ新しいアクションを作成します。
関数は、新しく作成されたアクションをウィジェットのアクションリストに追加し、それを返します。
QWidget は、返された の所有権を取ります。QAction
この関数はQt 6.3で導入されました。
[since 6.3]
QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)
[since 6.3]
QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)
[since 6.3]
QAction *QWidget::addAction(const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)
[since 6.3]
QAction *QWidget::addAction(const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)
これはオーバーロードされた関数である。
この便利な関数は、テキストtext 、アイコンicon 、ショートカットshortcut があれば、それを持つ新しいアクションを作成します。
アクションのtriggered() シグナルは、receiver のmember スロットに接続されます。この関数は、新しく作成したアクションをウィジェットのアクションリストに追加して返します。
QWidget この関数は、返された の所有権を取ります。QAction
この関数は Qt 6.3 で導入されました。
[since 6.3]
template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QIcon &icon, const QString &text, Args &&... args)
[since 6.3]
template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, Args &&... args)
[since 6.3]
template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QString &text, Args &&... args)
[since 6.3]
template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QString &text, const QKeySequence &shortcut, Args &&... args)
これはオーバーロードされた関数である。
これらの便利な関数は、テキストtext 、アイコンicon 、ショートカットshortcut があれば、それを持つ新しいアクションを作成します。
アクションのtriggered() シグナルは、あたかもQObject::connect(action, &QAction::triggered, args...)の呼び出しによって接続され、可能なQt::ConnectionType を含むargs を完全に転送します。
この関数は、新しく作成されたアクションをウィジェットのアクションリストに追加し、それを返します。
QWidget は、返された の所有権を取ります。QAction
この関数はQt 6.3で導入されました。
[explicit]
QWidget::QWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
ウィジェットフラグをf に設定して、parent の子ウィジェットを構築する。
parent がnullptr
の場合、新しいウィジェットはウィンドウになる。parent が別のウィジェットの場合、このウィジェットはparent 内の子ウィンドウになります。新しいウィジェットは、parent が削除されると削除される。
ウィジェット・フラグ引数f は、通常は0であるが、ウィンドウのフレームをカスタマイズするために設定することができる(すなわち、parent は、nullptr
でなければならない)。フレームをカスタマイズするには、window flags のいずれかのビット OR で構成される値を使用します。
すでに表示されているウィジェットに子ウィジェットを追加する場合は、明示的に子ウィジェットを表示して表示させる必要があります。
X11 バージョンの Qt は、すべてのシステムでスタイルフラグのすべての組み合わせを提供できるとは限りません。これは、X11 では Qt はウィンドウマネージャにしか問い合わせることができず、ウィンドウマネージャはアプリケーションの設定を上書きすることができるためです。Windowsでは、Qtは好きなフラグを設定できます。
windowFlagsも参照してください 。
[virtual noexcept]
QWidget::~QWidget()
ウィジェットを破棄します。
このウィジェットのすべての子ウィジェットが最初に削除されます。このウィジェットがメイン・ウィジェットの場合、アプリケーションは終了します。
[virtual protected]
void QWidget::actionEvent(QActionEvent *event)
このイベントハンドラは、ウィジェットのアクションが変更されるたびに、指定されたevent で呼び出されます。
addAction(),insertAction(),removeAction(),actions(),QActionEventも参照 。
QList<QAction *> QWidget::actions() const
このウィジェットのアクションの(おそらく空の)リストを返します。
contextMenuPolicy,insertAction(),removeAction()も参照してください 。
void QWidget::activateWindow()
このウィジェットを含むトップレベル・ウィジェットをアクティブ・ウィンドウに設定します。
アクティブウィンドウとは、キーボード入力フォーカスを持つ可視のトップレベルウィンドウのことである。
この関数は、トップレベルウィンドウのタイトルバーをマウスでクリックするのと同じ操作を行う。X11では、結果はウィンドウ・マネージャに依存する。ウィンドウが最上位にスタックされていることを確認したい場合は、raise() も呼び出す必要があります。ウィンドウが表示されていないと、 activateWindow()の効果はない。
Windowsの場合、アプリケーションが現在アクティブでないときにこれを呼んでも、アクティブ・ウィンドウにはなりません。ウィンドウが何らかの方法で変更されたことを示すために、タスクバーエントリーの色が変更されます。これは、マイクロソフトが、ユーザーが現在別のアプリケーションで行っていることを、アプリケーションが中断することを許可していないためです。
isActiveWindow ()、window ()、show ()も参照の こと。
void QWidget::addAction(QAction *action)
アクションaction をこのウィジェットのアクションリストに追加します。
すべての QWidgets は、QActionのリストを持っています。しかし、それらはさまざまな方法でグラフィカルに表現できます。QAction リスト(actions() によって返される)のデフォルトの使用法は、コンテキストQMenu を作成することです。
QWidget は各アクションを1つだけ持つべきで、すでに持っているアクションを追加しても、同じアクションが2度ウィジェットに入ることはありません。
action の所有権は、このQWidget には移譲されません。
removeAction(),insertAction(),actions(),QMenuも参照のこと 。
void QWidget::addActions(const QList<QAction *> &actions)
アクションactions をこのウィジェットのアクションリストに追加します。
removeAction(),QMenu,addAction()も参照 。
void QWidget::adjustSize()
内容に合わせてウィジェットのサイズを調整する。
この関数は、sizeHint() が有効な場合、つまり、サイズヒントの幅と高さが >= 0 の場合に使用します。そうでない場合は、すべての子ウィジェットをカバーする子ウィジェットの矩形(すべての子ウィジェットの矩形の和)にサイズを設定します。
ウィンドウの場合、スクリーンサイズも考慮されます。sizeHint() が (200, 100) より小さく、サイズ・ポリシーがexpanding の場合、ウィンドウは少なくとも (200, 100) になります。ウィンドウの最大サイズは、画面の幅と高さの2/3です。
sizeHint() およびchildrenRect()も参照のこと 。
QPalette::ColorRole QWidget::backgroundRole() const
ウィジェットの背景ロールを返します。
背景の役割は、背景をレンダリングするために使用されるウィジェットのpalette からのブラシを定義します。
明示的な背景ロールが設定されていない場合、ウィジェットは親ウィジェットの背景ロールを継承します。
setBackgroundRole() とforegroundRole()も参照してください 。
QBackingStore *QWidget::backingStore() const
このウィジェットが描画されるQBackingStore を返します。
[virtual protected]
void QWidget::changeEvent(QEvent *event)
このイベント・ハンドラを再実装することで、ステートの変更を扱うことができる。
このイベントで変更される状態は、event から取得できる。
変更イベントには以下が含まれる:QEvent::ToolBarChange QEvent::ActivationChange,QEvent::EnabledChange,QEvent::FontChange,QEvent::StyleChange,QEvent::PaletteChange,QEvent::WindowTitleChange,QEvent::IconTextChange,QEvent::ModifiedChange,QEvent::MouseTrackingChange,QEvent::ParentChange,QEvent::WindowStateChange,QEvent::LanguageChange,QEvent::LocaleChange,QEvent::LayoutDirectionChange,QEvent::ReadOnlyChange.
QWidget *QWidget::childAt(int x, int y) const
ウィジェットの座標系における位置 (x,y) にある可視子ウィジェットを返す。指定された位置に可視子ウィジェットがない場合、この関数はnullptr
を返します。
QWidget *QWidget::childAt(const QPoint &p) const
これはオーバーロードされた関数です。
ウィジェット自身の座標系で点p にある可視子ウィジェットを返します。
[since 6.8]
QWidget *QWidget::childAt(const QPointF &p) const
これはオーバーロードされた関数です。
ウィジェット自身の座標系で点p にある可視子ウィジェットを返します。
この関数は Qt 6.8 で導入されました。
void QWidget::clearFocus()
ウィジェットからキーボード入力フォーカスを取る。
ウィジェットがアクティブなフォーカスを持つ場合、focus out event がこのウィジェットに送られ、フォーカスを失ったことを伝えます。
このウィジェットは、キーボード入力フォーカスを取得するために、フォーカス設定を有効にする必要がある; つまり、setFocusPolicy() を呼び出す必要がある。
hasFocus()、setFocus()、focusInEvent()、focusOutEvent()、setFocusPolicy()、QApplication::focusWidget()も参照のこと 。
void QWidget::clearMask()
setMask() によって設定されたマスクをすべて削除する。
setMask()も参照 。
[slot]
bool QWidget::close()
このウィジェットを閉じる。ウィジェットが閉じられた場合はtrue
を返し、そうでない場合はfalse
を返します。
まず、ウィジェットにQCloseEvent を送ります。ウィジェットは、accepts close イベントがあれば、hidden 。イベントがignores であれば、何も起こりません。QWidget::closeEvent() のデフォルト実装は、close イベントを受け付ける。
ウィジェットがQt::WA_DeleteOnClose フラグを持つ場合、ウィジェットも削除されます。closeイベントは、ウィジェットが表示されているかどうかに関係なく、ウィジェットに配信されます。
QGuiApplication::lastWindowClosed() シグナルは、Qt::WA_QuitOnClose 属性が設定された、最後に表示されたプライマリ・ウィンドウ(つまり、親を持たないウィンドウ)が閉じられたときに発行されます。デフォルトでは、この属性は、スプラッシュ・スクリーン、ツール・ウィンドウ、ポップアップ・メニューなどの一時的なウィンドウを除くすべてのウィジェットに設定されています。
[virtual protected]
void QWidget::closeEvent(QCloseEvent *event)
このイベントハンドラは、Qt がウィンドウシステムからトップレベルウィジェットのウィンドウクローズ要求を受け取ると、与えられたevent で呼び出されます。
デフォルトでは、イベントは受け付けられ、ウィジェットは閉じられます。ウィジェットがウィンドウを閉じる要求に応答する方法を変更するために、この関数を再実装することができます。例えば、すべてのイベントに対してignore() を呼び出すことで、ウィンドウが閉じないようにすることができます。
メイン・ウィンドウ・アプリケーションは通常、この関数の再実装を使用して、ユーザーの作業が保存されたかどうかをチェックし、閉じる前に許可を求めます。
event()、hide()、close()、QCloseEventも参照して ください。
QMargins QWidget::contentsMargins() const
contentsMargins関数は、ウィジェットのコンテンツのマージンを返します。
setContentsMargins() およびcontentsRect()も参照してください 。
QRect QWidget::contentsRect() const
ウィジェットのマージン内の領域を返します。
setContentsMargins() およびcontentsMargins()も参照してください 。
[virtual protected]
void QWidget::contextMenuEvent(QContextMenuEvent *event)
このイベント・ハンドラは、イベントevent 、ウィジェットのコンテキスト・メニュー・イベントを受け取るために、サブクラスで再実装することができます。
このハンドラは、ウィジェットのcontextMenuPolicy がQt::DefaultContextMenu になったときに呼び出されます。
デフォルトの実装では、コンテキストイベントは無視されます。詳細はQContextMenuEvent のドキュメントを参照してください。
event(),QContextMenuEvent,customContextMenuRequested()も参照してください 。
[protected]
void QWidget::create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true)
新しいウィジェット・ウィンドウを作成します。
パラメータwindow,initializeWindow,destroyOldWindow は Qt 5 では無視されます。QWindow::fromWinId()を使用して、QWindow をラップする外部ウィンドウを作成し、代わりにそれをQWidget::createWindowContainer() に渡してください。
createWindowContainer() およびQWindow::fromWinId()も参照してください 。
[static]
QWidget *QWidget::createWindowContainer(QWindow *window, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
QWidget ベースのアプリケーションにwindow を組み込むことを可能にするQWidget を作成する。
ウィンドウコンテナはparent の子として作成され、ウィンドウフラグflags を持つ。
ウィンドウがコンテナに埋め込まれると、コンテナはウィンドウのジオメトリと可視性を制御する。埋め込まれたウィンドウでQWindow::setGeometry()、QWindow::show()、QWindow::hide() を明示的に呼び出すことは推奨されない。
コンテナは、window の所有権を引き継ぐ。 ウィンドウは、QWindow::setParent() を呼び出すことで、ウィンドウコンテナから削除できる。
ウィンドウ・コンテナは、その子であるトップレベル・ウィンドウに ネイティブの子ウィンドウとしてアタッチされる。ウィンドウコンテナがQAbstractScrollArea またはQMdiArea の子として使用される場合、このユースケースで適切なスタックとクリッピングを可能にするために、親チェーン内のすべてのウィジェットに対してnative window が作成されます。ウィンドウコンテナのネイティブウィンドウを作成することでも、適切なスタックとクリッピングが可能になります。これは、ウィンドウ・コンテナを表示する前に行う必要があります。多くのネイティブ子ウィンドウを持つアプリケーションは、パフォーマンスの問題に悩まされる可能性があります。
ウィンドウコンテナにはいくつかの既知の制限があります:
- スタック順序; 組み込みウィンドウは、不透明なボックスとしてウィジェット階層の上にスタックします。複数のウィンドウ コンテナ インスタンスが重なった場合のスタック順序は未定義です。
- レンダリングの統合; ウィンドウ コンテナは、QGraphicsProxyWidget 、QWidget::render() または同様の機能とは相互運用しません。
- フォーカス処理; ウィンドウコンテナインスタンスに任意のフォーカスポリシーを持たせることが可能であり、QWindow::requestActivate() の呼び出しによってウィンドウにフォーカスを委譲する。ただし、QWindow インスタンスから通常のフォーカス チェーンに戻るかどうかは、QWindow インスタンスの実装次第です。例えば、Qt Quick をベースとしたウィンドウにタブフォーカスを持ったまま入ると、それ以上タブを押してもQMLアプリケーションの中でしか循環しない可能性が高いです。また、QWindow::requestActivate()が実際にウィンドウにフォーカスを与えるかどうかはプラットフォームに依存します。
- QWidget ベースのアプリケーションで多数のウィンドウコンテナを使用すると、 アプリケーション全体のパフォーマンスが大きく低下する可能性があります。
- 6.7以降では、window がウィジェットに属している場合(つまり、windowHandle ()を呼び出してwindow を受け取った場合)、コンテナは作成されません。parentコンテナは作成されないので、flags は無視される。言い換えると、window がウィジェットに属している場合、この関数を使用する代わりに、そのウィジェットをparent に再ペアレントすることを考えてください。
[signal]
void QWidget::customContextMenuRequested(const QPoint &pos)
このシグナルは、ウィジェットのcontextMenuPolicy がQt::CustomContextMenu で、ユーザがウィジェットのコンテキストメニューを要求したときに発行される。位置pos は、ウィジェットが受け取るコンテキストメニューイベントの位置です。通常、これはウィジェットの座標になります。このルールの例外は、QAbstractScrollArea とそのサブクラスで、コンテキスト・メニュー・イベントをviewport() の座標にマッピングします。
mapToGlobal()、QMenu 、contextMenuPolicyも参照してください 。
[protected]
void QWidget::destroy(bool destroyWindow = true, bool destroySubWindows = true)
ウィンドウ・システム・リソースを解放する。destroyWindow が真の場合、ウィジェット・ウィンドウを破棄する。
destroy()は、destroyWindow パラメータにdestroySubWindows を渡して、すべての子ウィジェットに対して自身を再帰的に呼び出します。サブウィジェットの破棄をより制御するには、最初にサブウィジェットを選択的に破棄します。
この関数は通常、QWidget デストラクタから呼び出されます。
[virtual protected]
void QWidget::dragEnterEvent(QDragEnterEvent *event)
このイベントハンドラは、ドラッグ中にマウスがこのウィジェットに入ると呼び出されます。イベントはevent パラメータに渡されます。
イベントを無視すると、ウィジェットはdrag move events を受信しません。
アプリケーションでドラッグ・アンド・ドロップを提供する方法の概要については、ドラッグ・アンド・ドロップのドキュメントを参照してください。
QDrag およびQDragEnterEventも参照して ください。
[virtual protected]
void QWidget::dragLeaveEvent(QDragLeaveEvent *event)
このイベントハンドラは、ドラッグ中にマウスがこのウィジェットから離れると呼び出されます。イベントはevent パラメータに渡されます。
アプリケーションでドラッグ&ドロップを提供する方法の概要については、ドラッグ&ドロップのドキュメントを参照してください。
QDrag およびQDragLeaveEventも参照して ください。
[virtual protected]
void QWidget::dragMoveEvent(QDragMoveEvent *event)
カーソルがこのウィジェットに入ったとき、カーソルがこのウィジェット内で移動したとき、このウィジェットにフォーカスがあるときにキーボードで修飾キーが押されたときです。イベントはevent パラメータで渡されます。
アプリケーションでドラッグ・アンド・ドロップを提供する方法の概要については、ドラッグ・アンド・ドロップのドキュメントを参照してください。
QDrag およびQDragMoveEventも参照して ください。
[virtual protected]
void QWidget::dropEvent(QDropEvent *event)
このイベントハンドラは、ドラッグがこのウィジェットにドロップされたときに呼び出されます。イベントはevent パラメータに渡されます。
アプリケーションでドラッグ&ドロップを提供する方法の概要については、ドラッグ&ドロップのドキュメントを参照してください。
QDrag およびQDropEventも参照して ください。
WId QWidget::effectiveWinId() const
ウィジェットの有効なウィンドウシステム識別子、つまりネイティブの親のウィンドウシステム識別子を返す。
ウィジェットがネイティブの場合、この関数はネイティブウィジェットIDを返す。そうでない場合は、最初のネイティブ親ウィジェット、つまりこのウィジェットを含むトップレベルウィジェットのウィンドウIDが返されます。
注意: 実行時に変更される可能性があるため、この値を保存しないことを推奨します。
nativeParentWidget()も参照してください 。
void QWidget::ensurePolished() const
ウィジェットとその子ウィジェットがQStyle (すなわち、適切なフォントとパレットを持っている)によって磨かれたことを確認します。
QWidget この関数は、ウィジェットが完全に構築された後、最初に表示される前に呼び出されます。例えば、ウィジェットの () の再実装で正しいフォント・サイズが必要な場合など、操作を行う前にウィジェットが磨かれていることを確認したい場合に、この関数を呼び出すことができます。この関数は、 () のデフォルト実装から呼び出さsizeHint sizeHintれることに注意してください。
研磨は、すべてのコンストラクタ(基底クラスからもサブクラスからも)が呼び出された後に行わなければならない最終的な初期化に便利です。
ウィジェットが研磨されたときに何らかの設定を変更する必要がある場合は、event() を再実装して、QEvent::Polish イベント・タイプを処理します。
注意:この関数は、他の const 関数(たとえば、sizeHint())から呼び出せるように、const で宣言されています。
event()も参照してください 。
[virtual protected]
void QWidget::enterEvent(QEnterEvent *event)
このイベント・ハンドラは、event パラメータで渡されるウィジェット入力イベントを受け取るために、サブクラスで再実装することができます。
マウスカーソルがウィジェットに入ると、イベントがウィジェットに送られます。
leaveEvent(),mouseMoveEvent(),event()も参照してください 。
[override virtual protected]
bool QWidget::event(QEvent *event)
再インプリメント:QObject::event(QEvent *e)。
これはメインのイベント・ハンドラで、イベントevent を処理します。この関数をサブクラスで再実装することもできますが、代わりに特殊なイベント・ハンドラを使用することをお勧めします。
event()はTabとShift+Tabをチェックし、フォーカスを適切に移動させようとします。フォーカスを移動するウィジェットがない場合(またはキーが Tab または Shift+Tab でない場合)、event() はkeyPressEvent() を呼び出します。
マウスとタブレットのイベント処理も少し特殊で、ウィジェットがenabled のときだけ、event() はmousePressEvent() のような特殊なハンドラを呼び出します。
この関数は、イベントが認識された場合はtrue
を返し、そうでない場合はfalse
を返します。認識されたイベントが受け入れられた場合(QEvent::accepted を参照)、親ウィジェットへのイベント伝搬など、それ以降の処理は停止します。
closeEvent(),focusInEvent(),focusOutEvent(),enterEvent(),keyPressEvent(),keyReleaseEvent(),leaveEvent(),mouseDoubleClickEvent(),mouseMoveEvent(),mousePressEvent(),mouseReleaseEvent(),moveEvent(),paintEvent(),resizeEvent(),QObject::event(),QObject::timerEvent()も参照 。
[static]
QWidget *QWidget::find(WId id)
ウィンドウ識別子/ハンドルid を持つウィジェットへのポインタを返します。
ウィンドウ識別子のタイプは、基礎となるウィンドウ・システムに依存します。実際の定義についてはqwindowdefs.h
を参照してください。この識別子を持つウィジェットがない場合は、nullptr
。
[virtual protected]
void QWidget::focusInEvent(QFocusEvent *event)
このイベントハンドラは、ウィジェットのキーボードフォーカスイベント(フォーカス受信)を受け取るために、サブクラスで再実装することができます。イベントはevent パラメータで渡されます。
ウィジェットは通常、フォーカス・イベントを受け取るために、Qt::NoFocus 以外にsetFocusPolicy() を指定する必要があります。(アプリケーション・プログラマは、通常はフォーカスを受け取らないウィジェットでも、setFocus()を呼び出すことができることに注意してください)。
デフォルトの実装では、ウィジェットが更新されます (focusPolicy() を指定しないウィンドウを除く)。
focusOutEvent()、setFocusPolicy()、keyPressEvent()、keyReleaseEvent()、event()、QFocusEventも参照のこと 。
[protected]
bool QWidget::focusNextChild()
キーボード・フォーカスを与える新しいウィジェットをTab に応じて探し、新しいウィジェットが見つかればtrue
を返し、見つからなければ false を返します。
focusPreviousChild()も参照してください 。
[virtual protected]
bool QWidget::focusNextPrevChild(bool next)
TabとShift+Tabに適切なように、キーボード・フォーカスを与える新しいウィジェットを探し、新しいウィジェットが見つかればtrue
、見つからなければfalseを返す。
next が真なら、この関数は前方を検索し、next が偽なら、後方を検索する。
この関数を再実装したい場合もあるでしょう。たとえば、ウェブ・ブラウザはこの関数を再実装して、"現在のアクティブなリンク "を前方または後方に移動し、"ページ "上の最後のリンクまたは最初のリンクに到達したときだけfocusNextPrevChild()を呼び出すことができます。
子ウィジェットは親ウィジェットで focusNextPrevChild() を呼び出しますが、フォーカスをどこに移すかは、子ウィジェットを含むウィンドウだけが決定します。オブジェクトに対してこの関数を再実装することで、すべての子ウィジェットのフォーカスのトラバーサルを制御できるようになります。
focusNextChild() およびfocusPreviousChild()も参照してください 。
[virtual protected]
void QWidget::focusOutEvent(QFocusEvent *event)
このイベント・ハンドラは、ウィジェットのキーボード・フォーカス・イベント(フォーカスが失われた)を受け取るために、サブクラスで再実装することができる。イベントはevent パラメータに渡されます。
ウィジェットは通常、Qt::NoFocus 以外にsetFocusPolicy() を指定して、フォーカス・イベントを受け取らなければなりません。(アプリケーション・プログラマは、通常はフォーカスを受け付けないウィジェットであっても、どのウィジェットでもsetFocus() を呼び出すことができることに注意してください)。
デフォルトの実装では、ウィジェットが更新されます (focusPolicy() を指定しないウィンドウを除く)。
focusInEvent()、setFocusPolicy()、keyPressEvent()、keyReleaseEvent()、event()、QFocusEventも参照のこと 。
[protected]
bool QWidget::focusPreviousChild()
キーボード・フォーカスを与える新しいウィジェットをShift+Tab に応じて探し、新しいウィジェットが見つかればtrue
を返し、見つからなければ false を返します。
focusNextChild()も参照してください 。
QWidget *QWidget::focusProxy() const
フォーカスプロキシがない場合はnullptr
を返します。
setFocusProxy()も参照 。
QWidget *QWidget::focusWidget() const
setFocus が呼び出された、このウィジェットの最後の子を返します。トップレベルのウィジェットでは、このウィンドウがアクティブになったときにフォーカスを得るウィジェットになります。
これは、現在アクティブなウィンドウのフォーカスウィジェットを返すQApplication::focusWidget() とは異なります。
QFontInfo QWidget::fontInfo() const
ウィジェットの現在のフォントのフォント情報を返します。QFontInfo(widget->font())
と同等。
font(),fontMetrics(),setFont()も参照 。
QFontMetrics QWidget::fontMetrics() const
ウィジェットの現在のフォントのフォント・メトリクスを返します。QFontMetrics(widget->font())
に相当します。
font(),fontInfo(),setFont()も参照 。
QPalette::ColorRole QWidget::foregroundRole() const
前景の役割を返します。
前景の役割は、ウィジェットのpalette 、前景を描画するために使用される色を定義します。
前景ロールが明示的に設定されていない場合、この関数は背景ロールと対照的なロールを返します。
setForegroundRole() およびbackgroundRole()も参照してください 。
[invokable]
QPixmap QWidget::grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1)))
与えられたrectangle で制限された pixmap にウィジェットをレンダリングします。ウィジェットに子ウィジェットがある場合、それらも適切な位置に描画されます。
無効なサイズの矩形が指定された場合(デフォルト)、ウィジェット全体が描画されます。
注意: この関数はメタオブジェクトシステムや QML から呼び出すことができます。Q_INVOKABLE を参照してください。
render() およびQPixmapも参照して ください。
void QWidget::grabGesture(Qt::GestureType gesture, Qt::GestureFlags flags = Qt::GestureFlags())
ウィジェットを特定のflags で指定されたgesture にサブスクライブする。
ungrabGesture() およびQGestureEventも参照してください 。
void QWidget::grabKeyboard()
キーボード入力を取得します。
このウィジェットは、releaseKeyboard() が呼び出されるまで、すべてのキーボードイベントを受け取ります。他のウィジェットは、キーボードイベントをまったく受け取りません。マウスイベントは影響を受けません。マウス・イベントを取得したい場合は、grabMouse() を使用してください。
フォーカス・ウィジェットは、キーボード・イベントを受け取らないことを除いて、影響を受けません。setFocus() は通常通りフォーカスを移動させますが、新しいフォーカス・ウィジェットはreleaseKeyboard() が呼ばれた後にのみキーボード・イベントを受け取ります。
別のウィジェットが現在キーボード入力を掴んでいる場合、そのウィジェットの掴みは最初に解放されます。
releaseKeyboard()、grabMouse()、releaseMouse()、focusWidget()も参照してください 。
void QWidget::grabMouse()
マウス入力を取得します。
このウィジェットは、releaseMouse() が呼び出されるまで、すべてのマウスイベントを受け取ります。他のウィジェットは、マウスイベントをまったく受け取りません。キーボードイベントは影響を受けません。キーボードイベントを取得したい場合は、grabKeyboard() を使用してください。
警告 マウスをつかむアプリケーションのバグにより、端末がロックされることがよくあります。この関数は細心の注意を払って使用し、デバッグ中は-nograb
コマンドラインオプションの使用を検討してください。
Qt は感覚的にマウスを掴んだり離したりするので、Qt を使うときにマウスを掴む必要はめったにありません。特に、Qt はマウスボタンが押されるとマウスを掴み、最後のボタンが離されるまで掴み続けます。
注意: マウスの入力をつかむことができるのは、表示されているウィジェットだけです。あるウィジェットに対してisVisible() がfalse
を返した場合、そのウィジェットは grabMouse() を呼び出すことができません。
注意 : Windowsでは、grabMouse()はマウスがプロセスの所有するウィンドウ内にある場合にのみ動作します。macOSでは、grabMouse()は、マウスがそのウィジェットのフレーム内にあるときのみ動作します。
releaseMouse(),grabKeyboard(),releaseKeyboard()も参照してください 。
void QWidget::grabMouse(const QCursor &cursor)
この関数は grabMouse() をオーバーロードする。
マウス入力をつかみ、カーソルの形状を変更する。
カーソルは(マウスフォーカスがつかまれている間)cursor の形状になり、releaseMouse() が呼び出される()まで、このウィジェットだけがマウスイベントを受け取ります。
警告 マウスをつかむとターミナルがロックされる可能性があります。
注釈: QWidget::grabMouse() の注釈を参照してください。
releaseMouse()、grabKeyboard()、releaseKeyboard()、setCursor()も参照して ください。
int QWidget::grabShortcut(const QKeySequence &key, Qt::ShortcutContext context = Qt::WindowShortcut)
Qt のショートカットシステムに、指定されたcontext で指定されたkey のシーケンスを監視するショートカットを追加します。context がQt::ApplicationShortcut の場合、ショートカットはアプリケーション全体に適用されます。そうでない場合、このウィジェット、Qt::WidgetShortcut 、またはウィンドウ自体、Qt::WindowShortcut にローカルに適用されます。
同じkey シーケンスが複数のウィジェットでつかまれている場合、key シーケンスが発生すると、QEvent::Shortcut イベントが適用されるすべてのウィジェットに非決定的な順序で送られますが、``ambiguous'' フラグが true に設定されています。
警告 その代わりに、(同等のメニューオプションやツールバーボタンが必要な場合は)必要なショートカットキーシーケンスでQActionを作成するか、キーシーケンスだけが必要な場合はQShortcutを作成してください。QAction とQShortcut は、すべてのイベント・フィルタリングを処理し、ユーザーがキー・シーケンスをトリガーしたときにトリガーされるシグナルを提供します。
releaseShortcut() およびsetShortcutEnabled()も参照の こと。
QGraphicsEffect *QWidget::graphicsEffect() const
graphicsEffect 関数は、ウィジェットのグラフィック効果へのポインタを返します。
ウィジェットにグラフィック効果がない場合は、nullptr
が返されます。
setGraphicsEffect()も参照してください 。
QGraphicsProxyWidget *QWidget::graphicsProxyWidget() const
グラフィックスビューの対応する埋め込みウィジェットのプロキシウィジェットを返します。そうでない場合はnullptr
を返します。
QGraphicsProxyWidget::createProxyForChildWidget() およびQGraphicsScene::addWidget()も参照してください 。
bool QWidget::hasEditFocus() const
このウィジェットが現在編集フォーカスを持っている場合はtrue
を返し、そうでない場合は false を返します。
この機能は Qt for Embedded Linux でのみ利用可能です。
setEditFocus() およびQApplication::navigationMode()も参照してください 。
[virtual]
bool QWidget::hasHeightForWidth() const
ウィジェットの好ましい高さがその幅に依存する場合はtrue
を返し、そうでない場合はfalse
を返します。
[virtual]
int QWidget::heightForWidth(int w) const
widthw を指定すると、このウィジェットの優先高さを返します。
このウィジェットにレイアウトがある場合、デフォルトの実装は、レイアウトの優先的な高さを返します。レイアウトがない場合、デフォルトの実装は、優先的な高さが幅に依存しないことを示す -1 を返します。
[slot]
void QWidget::hide()
ウィジェットを隠す。この関数はsetVisible(false)と同等です。
hideEvent()、isHidden()、show()、setVisible()、isVisible()、close()も参照してください 。
[virtual protected]
void QWidget::hideEvent(QHideEvent *event)
このイベントハンドラは、ウィジェットの非表示イベントを受け取るために、サブクラスで再実装することができます。イベントはevent パラメータで渡されます。
非表示イベントは、非表示になった直後にウィジェットに送られます。
例えば、ユーザがウィンドウを最小化すると非表示イベントが発生し、ウィンドウが再び復元されると表示イベントが発生します。自発的非表示イベントを受信した後も、ウィジェットはisVisible() の意味で可視とみなされます。
visible 、event()、QHideEventも参照してください 。
[override virtual protected]
void QWidget::initPainter(QPainter *painter) const
painter ペン、背景、フォントを指定されたウィジェットのものと同じに初期化します。この関数は、ペインターがQWidget で開かれたときに自動的に呼び出されます。
[virtual protected]
void QWidget::inputMethodEvent(QInputMethodEvent *event)
このイベントハンドラは、イベントevent 、入力メソッド合成イベントを受け取るためにサブクラスで再実装することができます。このハンドラは、入力メソッドの状態が変更されたときに呼び出されます。
カスタム・テキスト編集ウィジェットを作成する場合、入力メソッド・イベントを受け取るためには、Qt::WA_InputMethodEnabled window属性を明示的に(setAttribute ()関数を使用して)設定する必要があることに注意してください。
デフォルトの実装では、event->ignore()を呼び出し、Input Methodイベントを拒否します。詳細はQInputMethodEvent のドキュメントを参照してください。
event() およびQInputMethodEventも参照して ください。
[virtual]
QVariant QWidget::inputMethodQuery(Qt::InputMethodQuery query) const
このメソッドは入力ウィジェットにのみ関連する。囲みテキストと再変換のサポートとして複雑な入力メソッド操作をサポートできるように、ウィジェットのプロパティのセットを照会するために input メソッドによって使用されます。
query は、照会されるプロパティを指定します。
inputMethodEvent(),QInputMethodEvent,QInputMethodQueryEvent,inputMethodHintsも参照のこと 。
void QWidget::insertAction(QAction *before, QAction *action)
アクションbefore の前に、アクションaction をこのウィジェットのアクションリストに挿入する。before がnullptr
であるか、before がこのウィジェットの有効なアクションでない場合、アクションを追加します。
QWidget は、各アクションを1つだけ持つべきです。
removeAction(),addAction(),QMenu,contextMenuPolicy,actions()も参照 。
void QWidget::insertActions(QAction *before, const QList<QAction *> &actions)
アクションbefore の前に、アクションactions をこのウィジェットのアクションリストに挿入する。before がnullptr
であるか、before がこのウィジェットの有効なアクションでない場合、アクションを追加します。
QWidget は、各アクションを最大1つまで持つことができます。
removeAction()、QMenu 、insertAction()、contextMenuPolicyも参照のこと 。
bool QWidget::isAncestorOf(const QWidget *child) const
このウィジェットが、指定されたchild の親(または祖父母など、任意のレベル)であり、両方のウィジェットが同じウィンドウ内にある場合、true
を返します。そうでない場合、false
を返します。
bool QWidget::isEnabledTo(const QWidget *ancestor) const
ancestor が有効な場合、このウィジェットが有効になる場合はtrue
を返し、そうでない場合はfalse
を返す。
これは、ウィジェット自体も、ancestor を除くすべての親も、明示的に無効化されていない場合である。
isEnabledTo(0)は、このウィジェットまたはその祖先が明示的に無効化されている場合、falseを返す。
ここでの祖先とは、同じウィンドウ内の親ウィジェットを意味します。
したがって、isEnabledTo(0) は、親ウィンドウも考慮するisEnabled() とは異なり、このウィジェットのウィンドウで停止します。
setEnabled() とenabledも参照して ください。
bool QWidget::isHidden() const
ウィジェットが非表示の場合はtrue
を返し、そうでない場合はfalse
を返す。
非表示のウィジェットは、show() が呼び出されたときのみ表示されます。親が表示されたときに自動的に表示されることはありません。
可視性をチェックするには、代わりに !isVisible() を使用します(感嘆符に注目)。
isHidden()は、!isVisible()を意味しますが、ウィジェットは非表示と非表示を同時に指定できます。これは、非表示ウィジェットの子ウィジェットの場合です。
以下の場合、ウィジェットは非表示になります:
- 独立したウィンドウとして作成された場合、
- 可視ウィジェットの子ウィジェットとして作成された場合、
- hide() またはsetVisible(false) が呼び出された場合、ウィジェットは非表示になります。
bool QWidget::isVisibleTo(const QWidget *ancestor) const
ancestor が表示されるとこのウィジェットが可視になる場合はtrue
を返し、そうでない場合はfalse
を返す。
真の場合は、ウィジェット自体も、ancestor までの親も、明示的に非表示にされていない場合に発生する。
この関数は、ウィジェットが画面上の他のウィンドウによって隠されている場合でも真を返します。
isVisibleTo(0) はisVisible() と同じです。
show()、hide()、isVisible()も参照 。
bool QWidget::isWindow() const
ウィジェットが独立したウィンドウであればtrue
を返し、そうでなければfalse
を返す。
ウィンドウは、視覚的に他のウィジェットの子ではないウィジェットで、通常フレームとwindow title を持ちます。
parent widgetウィンドウは親とグループ化され、親が削除されると削除され、親が最小化されると最小化されます。ウィンドウマネージャがサポートしていれば、親と共通のタスクバーエントリを持つこともできます。
QDialog また、 ウィジェットは、コンストラクタで親ウィジェットが指定されていても、デフォルトではウィンドウです。この動作は フラグで指定します。QMainWindow Qt::Window
window(),isModal(),parentWidget()も参照 。
[virtual protected]
void QWidget::keyPressEvent(QKeyEvent *event)
このイベント・ハンドラは、イベントevent 、ウィジェットのキー押下イベントを受け取るために、サブクラスで再実装することができます。
ウィジェットは、キー押下イベントを受け取るために、setFocusPolicy() を呼び出して、最初にフォーカスを受け入れ、フォーカスを持たなければなりません。
このハンドラを再実装する場合、キーに反応しない場合はベースクラスの実装を呼び出すことが非常に重要です。
デフォルトの実装では、ユーザがQKeySequence::Cancel のキーシーケンス(通常は Escape キー)を押した場合、ポップアップ・ウィジェットを閉じます。それ以外の場合、イベントは無視され、ウィジェットの親がイベントを解釈できるようになります。
QKeyEvent は isAccepted() == true で始まるので、QKeyEvent::accept() を呼び出す必要はありません。
keyReleaseEvent()、setFocusPolicy()、focusInEvent()、focusOutEvent()、event()、QKeyEventも参照 。
[virtual protected]
void QWidget::keyReleaseEvent(QKeyEvent *event)
このイベント・ハンドラは、イベントevent 、ウィジェットのキー・リリース・イベントを受け取るために、サブクラスで再実装することができる。
ウィジェットは、キー・リリース・イベントを受け取るために、accept focus とhave focus を初期化する必要があります。
このハンドラを再実装する場合、キーに対応しない場合は、ベース・クラスの実装を呼び出すことが非常に重要です。
デフォルトの実装は、ウィジェットの親がイベントを解釈できるように、イベントを無視します。
QKeyEvent は isAccepted() == true で始まるので、QKeyEvent::accept() を呼び出す必要はありません。
keyPressEvent()、QEvent::ignore()、setFocusPolicy()、focusInEvent()、focusOutEvent()、event()、QKeyEventも参照 。
[static]
QWidget *QWidget::keyboardGrabber()
現在キーボード入力を取得しているウィジェットを返します。
このアプリケーションに現在キーボードをつかんでいるウィジェットがない場合は、nullptr
が返されます。
grabMouse() およびmouseGrabber()も参照してください 。
QLayout *QWidget::layout() const
このウィジェットにインストールされているレイアウトマネージャを返し、レイアウトマネージャがインストールされていない場合はnullptr
を返します。
レイアウトマネージャは、レイアウトに追加されたウィジェットの子のジオメトリを設定します。
setLayout(),sizePolicy(),レイアウト管理も参照してください 。
[virtual protected]
void QWidget::leaveEvent(QEvent *event)
このイベントハンドラは、event パラメータで渡されるウィジェットの離脱イベントを受け取るために、サブクラスで再実装することができます。
マウスカーソルがウィジェットから離れると、leave イベントがウィジェットに送られます。
enterEvent(),mouseMoveEvent(),event()も参照してください 。
[slot]
void QWidget::lower()
ウィジェットを親ウィジェットのスタックの一番下に下げます。
この呼び出しの後、ウィジェットは、オーバーラップしている兄弟ウィジェットの視覚的な後ろになります(したがって、ウィジェットは見えなくなります)。
raise() とstackUnder()も参照してください 。
[since 6.0]
QPointF QWidget::mapFrom(const QWidget *parent, const QPointF &pos) const
ウィジェット座標pos をparent の座標系からこのウィジェットの座標系に変換する。parent はnullptr
であってはならず、呼び出し元のウィジェットの親でなければなりません。
この関数は Qt 6.0 で導入されました。
mapTo(),mapFromParent(),mapFromGlobal(),underMouse()も参照してください 。
QPoint QWidget::mapFrom(const QWidget *parent, const QPoint &pos) const
これはオーバーロードされた関数である。
[since 6.0]
QPointF QWidget::mapFromGlobal(const QPointF &pos) const
グローバルスクリーン座標pos をウィジェット座標に変換します。
この関数は Qt 6.0 で導入されました。
mapToGlobal(),mapFrom(),mapFromParent()も参照してください 。
QPoint QWidget::mapFromGlobal(const QPoint &pos) const
これはオーバーロードされた関数である。
[since 6.0]
QPointF QWidget::mapFromParent(const QPointF &pos) const
親ウィジェットの座標pos をウィジェットの座標に変換します。
ウィジェットに親がない場合はmapFromGlobal() と同じです。
この関数は Qt 6.0 で導入されました。
mapToParent(),mapFrom(),mapFromGlobal(),underMouse()も参照してください 。
QPoint QWidget::mapFromParent(const QPoint &pos) const
これはオーバーロードされた関数である。
[since 6.0]
QPointF QWidget::mapTo(const QWidget *parent, const QPointF &pos) const
ウィジェットの座標pos をparent の座標系に変換します。parent はnullptr
であってはならず、呼び出し元のウィジェットの親でなければなりません。
この関数は Qt 6.0 で導入されました。
mapFrom(),mapToParent(),mapToGlobal(),underMouse()も参照してください 。
QPoint QWidget::mapTo(const QWidget *parent, const QPoint &pos) const
これはオーバーロードされた関数である。
[since 6.0]
QPointF QWidget::mapToGlobal(const QPointF &pos) const
ウィジェットの座標pos をグローバルスクリーン座標に変換する。例えば、mapToGlobal(QPointF(0,0))
は、ウィジェットの左上ピクセルのグローバル座標を与えます。
この関数は Qt 6.0 で導入されました。
mapFromGlobal(),mapTo(),mapToParent()も参照してください 。
QPoint QWidget::mapToGlobal(const QPoint &pos) const
これはオーバーロードされた関数である。
[since 6.0]
QPointF QWidget::mapToParent(const QPointF &pos) const
ウィジェットの座標pos を親ウィジェットの座標に変換する。
ウィジェットに親がない場合は、mapToGlobal() と同じです。
この関数は Qt 6.0 で導入されました。
mapFromParent(),mapTo(),mapToGlobal(),underMouse()も参照してください 。
QPoint QWidget::mapToParent(const QPoint &pos) const
これはオーバーロードされた関数である。
QRegion QWidget::mask() const
ウィジェットに現在設定されているマスクを返します。マスクが設定されていない場合、戻り値は空の領域になります。
setMask(),clearMask(),QRegion::isEmpty()も参照 。
[override virtual protected]
int QWidget::metric(QPaintDevice::PaintDeviceMetric m) const
再実装:QPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const.
virtualQPaintDevice::metric() 関数の内部実装。
m は取得するメトリックです。
[virtual protected]
void QWidget::mouseDoubleClickEvent(QMouseEvent *event)
このイベント・ハンドラは、イベントevent 、ウィジェットのマウス・ダブル・クリック・イベントを受け取るために、サブクラスで再実装することができる。
デフォルトの実装はmousePressEvent() を呼び出します。
注意: ウィジェットは、ダブルクリックイベントに加えて、マウスプレスとマウスリリースイベントも受信します。また、このウィジェットに重なる別のウィジェットが、押下イベントやリリースイベントに応じて消える場合、このウィジェットはダブルクリックイベントだけを受け取ります。アプリケーションがこれらのイベントを正しく解釈するかどうかは、開発者次第です。
mousePressEvent(),mouseReleaseEvent(),mouseMoveEvent(),event(),QMouseEventも参照してください 。
[static]
QWidget *QWidget::mouseGrabber()
現在マウス入力をつかんでいるウィジェットを返します。
このアプリケーションに現在マウスをつかんでいるウィジェットがない場合は、nullptr
が返されます。
grabMouse() およびkeyboardGrabber()も参照してください 。
[virtual protected]
void QWidget::mouseMoveEvent(QMouseEvent *event)
このイベントハンドラは、イベントevent 、ウィジェットのマウス移動イベントを受け取るためにサブクラスで再実装することができる。
マウストラッキングがオフの場合、マウス移動イベントは、マウスが移動している間にマウスボタンが押された場合にのみ発生します。マウストラッキングがオンの場合、マウスボタンが押されていなくてもマウス移動イベントが発生します。
QMouseEvent::pos() は、このウィジェットからの相対的なマウスカーソルの位置を報告します。押したり離したりするイベントの場合、位置は通常、最後のマウス移動イベントの位置と同じです。これは Qt ではなく、基本的なウィンドウ・システムの機能です。
マウスが動いている間、すぐにツールチップを表示したい場合(例えば、QMouseEvent::pos()でマウス座標を取得し、それをツールチップとして表示したい場合)、まず、上記のようにマウストラッキングを有効にする必要があります。それから、ツールチップが直ちに更新されるようにするために、mouseMoveEvent() の実装でsetToolTip() の代わりにQToolTip::showText() を呼び出す必要があります。
setMouseTracking()、mousePressEvent()、mouseReleaseEvent()、mouseDoubleClickEvent()、event()、QMouseEvent 、およびScribble の例も参照してください 。
[virtual protected]
void QWidget::mousePressEvent(QMouseEvent *event)
このイベント・ハンドラは、イベントevent 、ウィジェットのマウス・プレス・イベントを受け取るために、サブクラスで再実装することができます。
mousePressEvent()で新しいウィジェットを作成する場合、mouseReleaseEvent()は期待した場所に配置されないかもしれません。これは、基本的なウィンドウ・システム(またはX11ウィンドウ・マネージャ)、ウィジェットの位置、およびその他に依存します。
デフォルトの実装では、ウィンドウの外側をクリックするとポップアップ・ウィジェットが閉じます。他のタイプのウィジェットでは何もしません。
mouseReleaseEvent(),mouseDoubleClickEvent(),mouseMoveEvent(),event(),QMouseEvent, およびScribble Exampleも参照してください 。
[virtual protected]
void QWidget::mouseReleaseEvent(QMouseEvent *event)
このイベントハンドラは、イベントevent 、ウィジェットのマウスリリースイベントを受け取るために、サブクラスで再実装することができます。
mousePressEvent(),mouseDoubleClickEvent(),mouseMoveEvent(),event(),QMouseEvent, およびScribble Exampleも参照してください 。
void QWidget::move(int x, int y)
これはオーバーロードされた関数である。
これは move(QPoint(x,y)) に対応する。
注: プロパティpos のセッター関数です。
[virtual protected]
void QWidget::moveEvent(QMoveEvent *event)
このイベントハンドラは、event パラメータで渡されるウィジェット移動イベントを受け取るために、サブクラスで再実装することができます。ウィジェットがこのイベントを受け取るとき、ウィジェットはすでに新しい位置にいます。
古い位置にはQMoveEvent::oldPos() からアクセスできます。
resizeEvent(),event(),move(),QMoveEventも参照のこと 。
[virtual protected]
bool QWidget::nativeEvent(const QByteArray &eventType, void *message, qintptr *result)
この特別なイベントハンドラをサブクラスで再実装することで、message パラメータで渡されるeventType で識別されるネイティブプラットフォームイベントを受け取ることができます。
この関数を再実装する際、Qt が処理するイベントを停止したい場合は、true を返し、result を設定します。result パラメータは Windows でのみ意味を持ちます。false を返すと、このネイティブ・イベントは Qt に引き渡され、Qt はイベントを Qt イベントに変換してウィジェットに送信します。
注意: イベントがこのイベントハンドラに送られるのは、ウィジェットにネイティブウィンドウハンドルがある場合だけです。
注意 : この関数は、Qt 4 のイベントフィルタ関数 x11Event()、winEvent()、macEvent() をスーパーシードしています。
プラットフォーム | イベントタイプ識別子 | メッセージタイプ | 結果タイプ |
---|---|---|---|
ウィンドウズ | "windows_generic_MSG" | MSG | LRESULT |
macOS | "NSEvent" | NSEvent * LESULT | |
XCB | "xcb_generic_event_t" | xcb_generic_event_t * を参照してください。 |
QAbstractNativeEventFilterも参照 。
QWidget *QWidget::nativeParentWidget() const
このウィジェットのネイティブペアレント、つまりシステム識別子を持つ次の祖先ウィジェットを返します。ネイティブペアレントがない場合はnullptr
を返します。
effectiveWinId()も参照してください 。
QWidget *QWidget::nextInFocusChain() const
このウィジェットのフォーカスチェーンの次のウィジェットを返します。
previousInFocusChain()も参照してください 。
void QWidget::overrideWindowFlags(Qt::WindowFlags flags)
ウィジェットのウィンドウフラグをflags に設定します。
警告 この関数は、自分が何をしているのか本当にわかっている場合以外は、呼び出さないでください。
setWindowFlags()も参照のこと 。
[override virtual]
QPaintEngine *QWidget::paintEngine() const
再実装:QPaintDevice::paintEngine() const.
ウィジェットのペイントエンジンを返します。
この関数は再実装のためだけのものなので、ユーザが明示的に呼び出してはいけないことに注意してください。この関数は内部的に Qt によって呼び出され、デフォルトの実装では必ずしも有効なポインタが返されるとは限りません。
[virtual protected]
void QWidget::paintEvent(QPaintEvent *event)
このイベント・ハンドラは、event で渡されるペイント・イベントを受け取るために、サブクラスで再実装することができる。
ペイント・イベントは、ウィジェットの全部または一部を再ペイントする要求です。以下のいずれかの理由で発生します:
多くのウィジェットは、要求があれば表面全体を再描画しますが、低速なウィジェットでは、要求された領域のみを描画することで最適化する必要があります:QPaintEvent::region()。QListView やQTableView などはそうなっています。
Qt はまた、複数のペイントイベントを 1 つにまとめることで、ペイントの高速化を試みています。update() が複数回呼び出された場合や、ウィンドウシステムが複数のペイントイベントを送信した場合、Qt はこれらのイベントをより大きな領域を持つ 1 つのイベントに統合します(QRegion::united() を参照)。repaint() 関数はこの最適化を許さないので、可能な限りupdate() を使用することをお勧めします。
paint イベントが発生すると、通常、更新領域は消去されているので、ウィジェットの背景にペイントすることになります。
背景はsetBackgroundRole() とsetPalette() で設定できます。
Qt 4.0 以降、QWidget は自動的にペイントをダブルバッファリングするので、フリッカを避けるために paintEvent() でダブルバッファリングのコードを書く必要はありません。
注意: 一般的に、paintEvent()内で update ()やrepaint ()を呼び出すのは控えるべきです。たとえば、paintEvent() の内部で子オブジェクトに対してupdate() やrepaint() を呼び出すと、未定義の動作になります。
警告 警告: Qt のバッキングストアを使用しないカスタムペイントエンジンを使用している場合、Qt::WA_PaintOnScreen を設定する必要があります。そうしないと、QWidget::paintEngine() が呼び出されることはなく、代わりにバッキングストアが使用されます。
event(),repaint(),update(),QPainter,QPixmap,QPaintEvent, およびAnalog Clockも参照してください 。
QWidget *QWidget::parentWidget() const
このウィジェットの親ウィジェットを返します。親ウィジェットがない場合はnullptr
を返します。
QWidget *QWidget::previousInFocusChain() const
previousInFocusChain 関数は、このウィジェットのフォーカスチェーン内の前のウィジェットを返します。
nextInFocusChain()も参照してください 。
[slot]
void QWidget::raise()
このウィジェットを親ウィジェットのスタックの先頭に上げます。
この呼び出しの後、ウィジェットは、重なっている兄弟ウィジェットの前に表示されます。
注意: activateWindow() を使用する場合、この関数を呼び出すことで、ウィンドウが一番上にスタックされるようにすることができます。
lower() およびstackUnder()も参照してください 。
void QWidget::releaseKeyboard()
キーボードのグラブを解除する。
grabKeyboard(),grabMouse(),releaseMouse()も参照 。
void QWidget::releaseMouse()
マウス・グラブを解除する。
grabMouse(),grabKeyboard(),releaseKeyboard()も参照 。
void QWidget::releaseShortcut(int id)
Qt のショートカットシステムから、指定されたid のショートカットを削除します。ウィジェットは、(同じキーシーケンスを持つ他のショートカットがない限り)そのショートカットのキーシーケンスのQEvent::Shortcut イベントを受け取らなくなります。
警告 Qt のショートカットシステムは、親ウィジェットが破棄されると自動的にショートカットを削除するので、通常はこの関数を使用する必要はありません。この低レベル関数よりも使いやすいので、QAction やQShortcut を使ってショートカットを処理するのがベストです。また、これは高価な操作であることにも注意してください。
grabShortcut() とsetShortcutEnabled()も参照して ください。
void QWidget::removeAction(QAction *action)
このウィジェットのアクションリストからアクションaction を削除します。
insertAction(),actions(),insertAction()も参照してください 。
void QWidget::render(QPaintDevice *target, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))
このウィジェットのsourceRegion を、renderFlags を使ってtarget にレンダリングします。レンダリングはtarget のtargetOffset から始まる:
QPixmap pixmap(widget->size()); widget->render(&pixmap);
sourceRegion が NULL 領域の場合、この関数はQWidget::rect() を領域として、つまりウィジェット全体として使用する。
レンダリングする前に、target デバイスのアクティブなペインター(もしあれば)に対してQPainter::end() を呼び出すようにしてください。例えば
QPainter painter(this); ... painter.end(); myWidget->render(this);
注: QOpenGLWidget の内容を取得するには、代わりにQOpenGLWidget::grabFramebuffer() を使用してください。
void QWidget::render(QPainter *painter, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))
これはオーバーロードされた関数です。
ウィジェットをpainter のQPainter::device() にレンダリングします。
painter に適用された変換と設定は、レンダリング時に使用されます。
注意: painter はアクティブでなければなりません。macOS では、ウィジェットはQPixmap にレンダリングされ、painter によって描画されます。
QPainter::device()も参照してください 。
[slot]
void QWidget::repaint()
更新が無効になっているか、ウィジェットが非表示になっていない限り、paintEvent() を即座に呼び出して、ウィジェットを直接再描画します。
repaint() を使用するのは、アニメーション中など、即時の再描画が必要な場合のみにしてください。ほとんどの場合、update() を使用した方が Qt の処理速度を最適化し、ちらつきを抑えることができます。
警告 paintEvent() から呼び出される可能性のある関数の中で repaint() を呼び出すと、無限再帰が発生する可能性があります。update() 関数が再帰を引き起こすことはありません。
update()、paintEvent()、setUpdatesEnabled()も参照 。
void QWidget::repaint(const QRect &rect)
これはオーバーロードされた関数です。
このバージョンは、ウィジェット内の矩形rect を再描画します。
void QWidget::repaint(const QRegion &rgn)
これはオーバーロードされた関数である。
このバージョンは、ウィジェット内の領域rgn を再描画します。
void QWidget::repaint(int x, int y, int w, int h)
これはオーバーロードされた関数である。
このバージョンは、ウィジェット内の矩形 (x,y,w,h) を再描画します。
w が負の場合、それはwidth() - x
に置き換えられ、h が負の場合、それはheight() - y
の幅に置き換えられます。
void QWidget::resize(int w, int h)
これはオーバーロードされた関数である。
これは resize(QSize(w,h)) に対応する。
注: プロパティsize のセッター関数です。
[virtual protected]
void QWidget::resizeEvent(QResizeEvent *event)
このイベント・ハンドラは、event パラメータで渡されるウィジェットのリサイズ・イベントを受け取るために、サブクラスで再実装することができます。resizeEvent() が呼び出されたとき、ウィジェットはすでに新しいジオメトリを持っています。古いサイズはQResizeEvent::oldSize() からアクセスできます。
ウィジェットは、リサイズ・イベントを処理した直後に消去され、ペイント・イベントを受け取ります。このハンドラの内部で描画を行う必要はありません。
moveEvent(),event(),resize(),QResizeEvent,paintEvent(),Scribble Exampleも参照してください 。
bool QWidget::restoreGeometry(const QByteArray &geometry)
バイト配列geometry に格納されているトップレベルウィジェットのジオメトリと状態を復元します。成功した場合はtrue
を返し、そうでない場合はfalse
を返す。
リストアされたジオメトリが画面外にある場合は、使用可能な画面ジオメトリ内に収まるように修正されます。
QSettings を使用して保存されたジオメトリを復元するには、次のようなコードを使用できます:
QSettings settings("MyCompany", "MyApp"); myWidget->restoreGeometry(settings.value("myWidget/geometry").toByteArray());
ウィンドウのジオメトリに関する問題の概要については、ウィンドウのジオメトリのドキュメントを参照してください。
QMainWindow::restoreState() を使用して、ジオメトリとツールバーおよびドックウィジェットの状態を復元します。
saveGeometry()、QSettings 、QMainWindow::saveState()、QMainWindow::restoreState()も参照して ください。
QByteArray QWidget::saveGeometry() const
トップレベルウィジェットの現在のジオメトリと状態を保存します。
ウィンドウが閉じたときにジオメトリを保存するには、このように close イベントを実装します:
void MyWidget::closeEvent(QCloseEvent *event) { QSettings settings("MyCompany", "MyApp"); settings.setValue("geometry", saveGeometry()); QWidget::closeEvent(event); }
ウィンドウのジオメトリに関する概要については、ウィンドウのジオメトリに関するドキュメントを参照してください。
ジオメトリとツールバーおよびドックウィジェットの状態を保存するには、QMainWindow::saveState() を使用します。
restoreGeometry()、QMainWindow::saveState()、QMainWindow::restoreState()も参照して ください。
QScreen *QWidget::screen() const
ウィジェットが表示されている画面を返します。
setScreen() およびwindowHandle()も参照してください 。
void QWidget::scroll(int dx, int dy)
dx ピクセルを右に、dy を下にスクロールする。dx とdy の両方が負になることがあります。
スクロール後、ウィジェットは再描画が必要な部分のペイントイベントを受け取ります。Qt が不透明であると認識しているウィジェットでは、新たに露出された部分のみが対象となります。例えば、不透明なウィジェットが左に 8 ピクセルスクロールされると、右端の 8 ピクセル幅のストライプだけが更新されます。
ウィジェットはデフォルトで親の内容を伝播するので、ウィジェットを不透明にするには、autoFillBackground プロパティを設定するか、setAttribute() を使用してQt::WA_OpaquePaintEvent 属性を設定する必要があります。
コンテンツ伝搬を使用するウィジェットでは、スクロールによってスクロール領域全体が更新されます。
Transparency and Double Bufferingも参照してください 。
void QWidget::scroll(int dx, int dy, const QRect &r)
これはオーバーロードされた関数である。
このバージョンは、r スクロールするだけで、ウィジェットの子を移動しません。
r が空または無効な場合、結果は未定義です。
QScrollAreaも参照してください 。
void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on = true)
on が true の場合、このウィジェットに属性attribute を設定します。そうでない場合、属性はクリアされます。
testAttribute()も参照してください 。
void QWidget::setBackgroundRole(QPalette::ColorRole role)
ウィジェットの背景の役割をrole に設定します。
背景ロールは、背景のレンダリングに使用されるウィジェットのpalette からのブラシを定義します。
role がQPalette::NoRole の場合、ウィジェットは親の背景の役割を継承します。
スタイルは、パレットから自由に色を選択できることに注意してください。setBackgroundRole()で望む結果が得られない場合は、パレットを変更したり、スタイル・シートを設定することができます。
backgroundRole() およびforegroundRole()も参照してください 。
void QWidget::setBaseSize(int basew, int baseh)
これはオーバーロードされた関数である。
これは setBaseSize(QSize(basew,baseh)) に対応します。ウィジェットの基本サイズを幅basew と高さbaseh に設定します。
注意: プロパティbaseSize のセッター関数です。
void QWidget::setContentsMargins(int left, int top, int right, int bottom)
ウィジェットのコンテンツの周りのマージンをleft,top,right,bottom のサイズに設定します。マージンはレイアウト・システムによって使用され、サブクラスによって描画領域を指定するために使用されます(例えば、フレームを除く)。
マージンを変更すると、resizeEvent() がトリガーされます。
contentsRect() およびcontentsMargins()も参照して ください。
void QWidget::setContentsMargins(const QMargins &margins)
これはオーバーロードされた関数である。
setContentsMargins関数は、ウィジェットのコンテンツの周りのマージンを設定します。
margins によって決定されたサイズを持つように、ウィジェットのコンテンツの周りのマージンを設定します。マージンは、レイアウトシステムによって使用され、サブクラスによって(例えば、フレームを除く)描画領域を指定するために使用されるかもしれません。
マージンを変更すると、resizeEvent() がトリガーされます。
contentsRect() およびcontentsMargins()も参照して ください。
[slot]
void QWidget::setDisabled(bool disable)
disable が true ならウィジェットの入力イベントを無効にし、そうでなければ入力イベントを有効にする。
enabled それ以外の場合は入力イベントを有効にする。
isEnabledTo(),QKeyEvent,QMouseEvent,changeEvent()も参照のこと 。
void QWidget::setEditFocus(bool enable)
enable が true の場合、このウィジェットに編集フォーカスを持たせます。この場合、Qt::Key_Up とQt::Key_Down は通常通りウィジェットに配信されます。そうでない場合、Qt::Key_Up とQt::Key_Down がフォーカスの変更に使用されます。
この機能は Qt for Embedded Linux でのみ利用可能です。
hasEditFocus() とQApplication::navigationMode()も参照してください 。
void QWidget::setFixedHeight(int h)
幅を変更せずに、ウィジェットの高さの最小値と最大値の両方をh に設定します。便宜上提供される。
sizeHint(),minimumSize(),maximumSize(),setFixedSize()も参照 。
void QWidget::setFixedSize(const QSize &s)
ウィジェットの最小サイズと最大サイズの両方をs に設定することで、ウィジェットが大きくなったり小さくなったりすることを防ぎます。
これにより、QLayout で設定されたデフォルトのサイズ制約が上書きされます。
制約を削除するには、サイズをQWIDGETSIZE_MAX に設定します。
また、ウィジェットの内容に応じてサイズを固定したい場合は、QLayout::setSizeConstraint(QLayout::SetFixedSize) を呼び出します;
maximumSize およびminimumSizeも参照してください 。
void QWidget::setFixedSize(int w, int h)
これはオーバーロードされた関数である。
ウィジェットの幅をw に、高さをh に設定します。
void QWidget::setFixedWidth(int w)
高さを変更せずに、ウィジェットの最小幅と最大幅の両方をw に設定します。便宜上提供される。
sizeHint(),minimumSize(),maximumSize(),setFixedSize()も参照 。
void QWidget::setFocus(Qt::FocusReason reason)
このウィジェットまたはその親のいずれかがactive window である場合、このウィジェット(またはそのフォーカスプロキシ)にキーボード入力フォーカスを与えます。reason 引数は、この関数から送信されるフォーカスイベントに渡されます。これは、ウィジェットがフォーカスを得た原因の説明を与えるために使用されます。ウィンドウがアクティブでない場合、ウィンドウがアクティブになると、ウィジェットにフォーカスが与えられます。
まず、focus about to changeイベントがフォーカスウィジェット(もしあれば)に送られ、フォーカスが失われようとしていることを伝えます。そして、フォーカスが変更されると、前のフォーカス・アイテムに focus out イベントが送られ、新しいアイテムに focus in イベントが送られ、フォーカスを受け取ったことを伝えます。(フォーカス・インとフォーカス・アウトのウィジェットが同じ場合は、何も起こりません)。
注意: 組み込みプラットフォームでは、setFocus() によって input メソッドで入力パネルが開かれることはありません。これを発生させたい場合は、自分でウィジェットにQEvent::RequestSoftwareInputPanel イベントを送信する必要があります。
setFocus() は、フォーカス・ポリシーに関係なくウィジェットにフォーカスを与えますが、キーボード・グラブはクリアしません(grabKeyboard() を参照)。
ウィジェットが非表示の場合、表示されるまでフォーカスを受け付けないことに注意してください。
警告 focusOutEvent() またはfocusInEvent() から呼び出される可能性のある関数内で setFocus() を呼び出すと、無限再帰が発生する可能性があります。
hasFocus()、clearFocus()、focusInEvent()、focusOutEvent()、setFocusPolicy()、focusWidget()、QApplication::focusWidget()、grabKeyboard()、grabMouse()、ウィジェットのキーボード・フォーカス、QEvent::RequestSoftwareInputPanelも参照して ください。
[slot]
void QWidget::setFocus()
これはオーバーロードされた関数です。
このウィジェットまたはその親のいずれかがactive window である場合、このウィジェット(またはそのフォーカスプロキシ)にキーボード入力フォーカスを与えます。
void QWidget::setFocusProxy(QWidget *w)
ウィジェットのフォーカスプロキシをウィジェットw に設定する。w がnullptr
の場合、この関数はこのウィジェットをリセットし、フォーカス・プロキシがない状態にします。
一部のウィジェットは、"フォーカスを持つ "ことができますが、QLineEdit のような子ウィジェットを作成して、実際にフォーカスを処理します。この場合、ウィジェットは行編集をそのフォーカス・プロキシに設定できます。
setFocusProxy()は、"このウィジェット "がフォーカスを取得したときに、実際にフォーカスを取得するウィジェットを設定します。フォーカス・プロキシがある場合、setFocus() とhasFocus() は、フォーカス・プロキシに対して動作します。このウィジェット "がフォーカス・ウィジェットである場合、 setFocusProxy() は新しいフォーカス・プロキシにフォーカスを移動する。
focusProxy()も参照してください 。
void QWidget::setForegroundRole(QPalette::ColorRole role)
ウィジェットの前景の役割をrole に設定します。
前景ロールは、前景の描画に使用されるウィジェットのpalette の色を定義します。
role がQPalette::NoRole の場合、ウィジェットは背景の役割と対照的な前景の役割を使用します。
スタイルは、パレットから自由に色を選択できることに注意してください。setForegroundRole()で望む結果が得られない場合は、パレットを変更したり、スタイル・シートを設定することができます。
foregroundRole() およびbackgroundRole()も参照してください 。
void QWidget::setGeometry(int x, int y, int w, int h)
これはオーバーロードされた関数である。
これは setGeometry(QRect(x,y,w,h)) に対応します。
注意: プロパティgeometry のセッター関数です。
void QWidget::setGraphicsEffect(QGraphicsEffect *effect)
setGraphicsEffect関数は、ウィジェットのグラフィック効果を設定します。
ウィジェットのエフェクトとしてeffect を設定します。このウィジェットに既にエフェクトがインストールされている場合、QWidget は、新しいeffect をインストールする前に、既存のエフェクトを削除します。
effect が別のウィジェットにインストールされているエフェクトの場合、setGraphicsEffect() は、そのウィジェットからエフェクトを削除し、このウィジェットにインストールします。
QWidget は の所有権を取得します。effect
注意: この関数は、それ自身とそのすべての子に効果を適用します。
注意: グラフィックス効果は、QGLWidget、QOpenGLWidget 、QQuickWidget などの OpenGL ベースのウィジェットではサポートされていません。
graphicsEffect()も参照してください 。
[slot]
void QWidget::setHidden(bool hidden)
setVisible(!hidden) と同等の便利関数。
isHidden()も参照 。
void QWidget::setLayout(QLayout *layout)
このウィジェットのレイアウトマネージャをlayout に設定します。
このウィジェットに既にレイアウト・マネージャがインストールされている場合、QWidget は別のレイアウト・マネージャをインストールさせません。新しいレイアウトでsetLayout()を呼び出す前に、まず既存のレイアウト・マネージャを削除する必要があります(layout()によって返されます)。
layout が別のウィジェットのレイアウトマネージャである場合、setLayout() はレイアウトを再保存し、このウィジェットのレイアウトマネージャにします。
例
QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(formWidget); setLayout(layout);
例:この関数を呼び出す代わりに、このウィジェットをレイアウトのコンストラクタに渡すこともできます。
QWidget はlayout の所有権を取得します。
layout() およびレイアウト管理も参照してください 。
void QWidget::setMask(const QBitmap &bitmap)
bitmap が対応する1ビットを持つウィジェットのピクセルのみが見えるようにする。領域がウィジェットのrect()の外側のピクセルを含む場合、その領域のウィンドウ・システム・コントロールは、プラットフォームによって表示されたりされなかったりする。
領域が特に複雑な場合、この効果は遅くなる可能性があることに注意してください。
次のコードは、アルファ・チャンネルを持つ画像を使用して、ウィジェットのマスクを生成する方法を示しています:
QLabel topLevelLabel; QPixmap pixmap(":/images/tux.png"); topLevelLabel.setPixmap(pixmap); topLevelLabel.setMask(pixmap.mask());
このコードで表示されるラベルは、含まれている画像を使ってマスクされ、不規則な形の画像が直接画面に描画されているように見えます。
マスクされたウィジェットは、その可視部分にのみマウスイベントを受け取ります。
mask(),clearMask(),windowOpacity()も参照してください 。
void QWidget::setMask(const QRegion ®ion)
これはオーバーロードされた関数です。
region に重なるウィジェットの部分のみが見えるようにする。領域がウィジェットのrect() の外側のピクセルを含む場合、その領域のウィンドウシステムコントロールは、プラットフォームによって表示されたりされなかったりします。
QRegion では、任意に複雑な領域を作成することができるので、ウィジェットのマスクは、最も型破りな形状のウィンドウに合わせて作成することができ、ウィジェットに穴を開けて表示することもできます。領域が特に複雑な場合、この効果は遅くなる可能性があることに注意してください。
ウィジェット・マスクは、アプリケーションがマスクの外側の領域のマウス・イベントを望まないことをウィンドウ・システムに示唆するために使われる。ほとんどのシステムでは、マスクは粗いビジュアルクリッピングをもたらします。滑らかなウィンドウ・エッジを得るには、半透明の背景の例で示すように、代わりに半透明の背景とアンチエイリアスのペイントを使用してください。
windowOpacityも参照してください 。
void QWidget::setMaximumSize(int maxw, int maxh)
これはオーバーロードされた関数である。
この関数は setMaximumSize(QSize(maxw,maxh)) に対応する。最大幅をmaxw に、最大高さをmaxh に設定します。
注意: プロパティmaximumSize のセッター関数です。
void QWidget::setMinimumSize(int minw, int minh)
これはオーバーロードされた関数である。
この関数は setMinimumSize(QSize(minw, minh)) に相当する。最小幅をminw に、最小高さをminh に設定します。
注意: プロパティminimumSize のセッター関数です。
void QWidget::setParent(QWidget *parent)
ウィジェットの親をparent に設定し、ウィンドウフラグをリセットする。ウィジェットは新しい親の位置 (0, 0) に移動する。
新しい親ウィジェットが別のウィンドウにある場合、再ペアレントされたウィジェットとその子ウィジェットは、以前と同じ内部順序で、新しい親ウィジェットのtab chain の最後に追加される。移動したウィジェットのいずれかがキーボード・フォーカスを持っていた場合、setParent() はそのウィジェットのclearFocus() を呼び出します。
新しい親ウィジェットが古い親ウィジェットと同じウィンドウにある場合、親を設定してもタブの順序やキーボード・フォーカスは変わりません。
新しい」親ウィジェットが古い親ウィジェットである場合、この関数は何もしません。
注意: 親を変更すると、それまで表示されていたウィジェットも非表示になります。ウィジェットを再び表示するには、show()を呼び出す必要があります。
警告 この関数が必要になることはほとんどないでしょう。動的に内容を変更するウィジェットがある場合は、QStackedWidget を使う方がはるかに簡単です。
setWindowFlags()も参照のこと 。
void QWidget::setParent(QWidget *parent, Qt::WindowFlags f)
これはオーバーロードされた関数である。
この関数は、ウィジェットフラグf も引数として受け取ります。
void QWidget::setScreen(QScreen *screen)
ウィジェットを表示するスクリーンをscreen に設定します。
スクリーンの設定は、ウィンドウに対してのみ意味を持ちます。必要に応じて、ウィジェットのウィンドウはscreen に再作成されます。
注意: スクリーンが複数のスクリーンからなる仮想デスクトップの一部である場合、ウィンドウは自動的にscreen に移動しません。 スクリーンに相対的にウィンドウを配置するには、スクリーンの topLeft() 位置を使用します。
screen() およびQWindow::setScreen()も参照して ください。
void QWidget::setShortcutAutoRepeat(int id, bool enable = true)
enable が true の場合、与えられたid のショートカットの自動繰り返しが有効になり、そうでない場合は無効になる。
grabShortcut() およびreleaseShortcut()も参照してください 。
void QWidget::setShortcutEnabled(int id, bool enable = true)
enable が真の場合、与えられたid を持つショートカットが有効になり、そうでない場合、そのショートカットは無効になります。
警告 Qt のショートカットシステムは、ウィジェットが隠されたり現れたり、フォーカスが当たったり当たらなくなったりすると、自動的にショートカットを有効/無効にするので、通常はこの関数を使う必要はありません。この低レベル関数よりも使いやすいので、QAction やQShortcut を使ってショートカットを処理するのがベストです。
grabShortcut() とreleaseShortcut()も参照して ください。
void QWidget::setSizeIncrement(int w, int h)
これはオーバーロードされた関数である。
x(幅)サイズのインクリメントをw に、y(高さ)サイズのインクリメントをh に設定します。
注意: プロパティsizeIncrement のセッター関数です。
void QWidget::setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)
これはオーバーロードされた関数です。
ウィジェットのサイズポリシーをhorizontal とvertical に設定します。
注: プロパティsizePolicy のセッター関数です。
QSizePolicy::QSizePolicy()も参照してください 。
void QWidget::setStyle(QStyle *style)
ウィジェットのGUIスタイルをstyle に設定します。 スタイルオブジェクトの所有権は移譲されません。
スタイルが設定されていない場合、ウィジェットはアプリケーションのスタイルQApplication::style() を代わりに使用します。
ウィジェットのスタイルを設定しても、既存の子ウィジェットや将来の子ウィジェットには影響しません。
警告 この関数は、Qt のスタイル設定機能を見せたい場合に特に便利です。実際のアプリケーションではこの関数を使用せず、一貫した GUI スタイルを使用してください。
警告 Qt スタイルシートは、現在のところQStyle のカスタムサブクラスには対応していません。将来のリリースで対応する予定です。
style(),QStyle,QApplication::style(),QApplication::setStyle()も参照してください 。
[static]
void QWidget::setTabOrder(QWidget *first, QWidget *second)
first ウィジェットの後にsecond ウィジェットを置く。
これは事実上、second ウィジェットをフォーカス・チェーンから削除し、first ウィジェットの後に挿入します。
second ウィジェットのタブ・オーダーが変更されるので、次のようにチェーンをオーダーする必要があることに注意してください:
setTabOrder(a, b); // a to b setTabOrder(b, c); // a to b to c setTabOrder(c, d); // a to b to c to d
このような順序ではありません:
// WRONG setTabOrder(c, d); // c to d setTabOrder(a, b); // a to b AND c to d setTabOrder(b, c); // a to b to c, but not c to d
first またはsecond にフォーカス・プロキシがある場合、setTabOrder() はプロキシを正しく置換します。
注意: Qt 5.10 以降では、子ウィジェットをフォーカス・プロキシとして持つウィジェットは複合ウィジェットとして理解されます。1つまたは2つの複合ウィジェット間でタブ順序を設定する場合、それぞれの内部でのローカルなタブ順序は保持されます。つまり、両方のウィジェットが複合ウィジェットである場合、結果のタブ順序はfirst 内の最後の子からsecond 内の最初の子になります。
setFocusPolicy()、setFocusProxy()、およびウィジェットのキーボード・フォーカスも参照してください 。
[static, since 6.6]
void QWidget::setTabOrder(std::initializer_list<QWidget *> widgets)
これはオーバーロードされた関数です。
QWidget::setTabOrder(QWidget *, QWidget *) をウィジェットの連続するペアごとに呼び出すことで、widgets リスト内のウィジェットのタブ順序を設定します。
このように各ペアを手動で設定する代わりに
setTabOrder(a, b); // a to b setTabOrder(b, c); // a to b to c setTabOrder(c, d); // a to b to c to d
を呼び出すことができます:
setTabOrder({a, b, c, d}); // a to b to c to d
この呼び出しは、閉じたタブ・フォーカスのループを作成しません。Qt::TabFocus フォーカスポリシーを持つウィジェットがさらにある場合、d
でタブ操作すると、フォーカスはa
に戻らず、それらのウィジェットの 1 つに移動します。
この関数は Qt 6.6 で導入されました。
setFocusPolicy()、setFocusProxy()、およびウィジェットのキーボード・フォーカスも参照してください 。
void QWidget::setWindowFlag(Qt::WindowType flag, bool on = true)
on が true の場合、このウィジェットにウィンドウフラグflag を設定します。
setWindowFlags(),windowFlags(),windowType()も参照 。
void QWidget::setWindowRole(const QString &role)
ウィンドウの役割をrole に設定する。 これはX11上のウィンドウに対してのみ意味がある。
windowRole()も参照のこと 。
void QWidget::setWindowState(Qt::WindowStates windowState)
ウィンドウの状態をwindowState に設定する。 ウィンドウの状態は、Qt::WindowState :Qt::WindowMinimized Qt::WindowMaximized Qt::WindowFullScreen Qt::WindowActive の組み合わせである。
ウィンドウが表示されていない場合(すなわち、isVisible() がfalse
を返す場合)、ウィンドウの状態はshow() が呼び出されたときに有効になる。可視ウィンドウの場合、変更は即座に行われる。たとえば、フルスクリーンと通常モードを切り替えるには、次のコードを使用します:
w->setWindowState(w->windowState() ^ Qt::WindowFullScreen);
最小化されたウィンドウを(最大化および/またはフルスクリーンの状態を維持したまま)復元してアクティブにするには、次のようにします:
w->setWindowState((w->windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);
この関数を呼び出すと、ウィジェットが非表示になります。ウィジェットを再び表示するには、show()を呼び出す必要があります。
注意: いくつかのウィンドウ・システムでは、Qt::WindowActive は即時ではなく、場合によっては無視されることがある。
ウィンドウの状態が変化すると、ウィジェットはQEvent::WindowStateChange 型のchangeEvent() を受け取る。
Qt::WindowState とwindowState()も参照してください 。
void QWidget::setupUi(QWidget *widget)
指定されたwidget のユーザインタフェースを設定します。
注: この関数は、uic を使用して作成されたユーザー インターフェイス記述から派生したウィジェットで使用できます。
アプリケーションでデザイナ UI ファイルを使用する」も参照してください 。
[slot]
void QWidget::show()
ウィジェットとその子ウィジェットを表示する。
子ウィンドウの場合、これはsetVisible(true)を呼び出すのと同じである。そうでない場合は、showFullScreen(),showMaximized(),setVisible(true)を呼び出すのと同じである。これは、ウィンドウ・フラグに対するプラットフォームのデフォルト動作に依存する。
raise()、showEvent()、hide()、setVisible()、showMinimized()、showMaximized()、showNormal()、isVisible()、windowFlags()も参照 。
[virtual protected]
void QWidget::showEvent(QShowEvent *event)
このイベントハンドラは、event パラメータで渡されるウィジェット表示イベントを受け取るために、サブクラスで再実装することができます。
非自発的なショーイベントは、ウィジェットが表示される直前に送られます。ウィンドウの自発的な表示イベントは、その後に配信されます。
注意: ウィジェットは、そのマッピング・ステータスがウィンドウ・システムによって変更されると、自発的な表示イベントと非表示イベントを受け取ります。例えば、ユーザーがウィンドウを最小化すると自発的な非表示イベントが発生し、ウィンドウが再び復元されると自発的な表示イベントが発生します。自発的非表示イベントを受信した後も、ウィジェットはisVisible() の意味で可視とみなされます。
visible 、event()、QShowEventも参照してください 。
[slot]
void QWidget::showFullScreen()
ウィジェットをフルスクリーンモードで表示する。
この関数を呼び出すと、windows にのみ影響する。
フルスクリーンモードから戻るには、showNormal() またはclose() を呼び出す。
注: フルスクリーンモードはWindowsでは問題なく動作しますが、Xでは特定の問題があります。これらの問題は、X11クライアントとウィンドウ・マネージャ間の通信を指定するICCCMプロトコルの制限によるものです。ICCCMは単に非装飾フルスクリーンウィンドウの概念を理解していないだけです。したがって、できることは、ボーダーレス・ウィンドウを要求し、それを画面いっぱいに配置し、サイズを変更することです。ウィンドウ・マネージャーによって、これはうまくいく場合といかない場合があります。ボーダーレスウィンドウはMOTIFヒントを使用して要求されますが、これは事実上すべての最新のウィンドウマネージャで少なくとも部分的にサポートされています。
別の方法として、ウィンドウマネージャを完全にバイパスして、Qt::X11BypassWindowManagerHint フラグでウィンドウを作成することもできます。しかし、これにはキーボードフォーカスが壊れたり、デスクトップが変更されたり、ユーザーが他のウィンドウを立ち上げたりしたときに非常に奇妙な影響が出るなど、深刻な問題があります。
最新のICCCM以降の仕様に従ったX11ウィンドウ・マネージャーは、フルスクリーン・モードを適切にサポートしています。
macOSでは、ウィンドウをフルスクリーン表示すると、アプリケーション全体がフルスクリーンモードになり、専用のデスクトップが提供されます。アプリケーションがフルスクリーンモードで動作している間に別のウィンドウを表示すると、そのウィンドウも自動的にフルスクリーンになる場合があります。これを防ぐには、別のウィンドウを表示する前に、showNormal() を呼び出すか、フルスクリーンウィンドウでclose() を呼び出して、フルスクリーンモードを終了する。
showNormal()、showMaximized()、show()、isVisible()、close()も参照のこと 。
[slot]
void QWidget::showMaximized()
ウィジェットを最大化して表示する。
この関数を呼び出すと、windows にのみ影響します。
X11では、この関数は特定のウィンドウマネージャで正しく動作しない場合があります。説明についてはウィンドウのジオメトリのドキュメントを参照してください。
setWindowState(),showNormal(),showMinimized(),show(),hide(),isVisible()も参照 。
[slot]
void QWidget::showMinimized()
最小化されたウィジェットをアイコンで表示する。
この関数の呼び出しは、windows にのみ影響する。
showNormal(),showMaximized(),show(),hide(),isVisible(),isMinimized()も参照 。
[slot]
void QWidget::showNormal()
最大化または最小化されたウィジェットを復元する。
この関数の呼び出しは、windows にのみ影響する。
setWindowState(),showMinimized(),showMaximized(),show(),hide(),isVisible()も参照 。
void QWidget::stackUnder(QWidget *w)
親ウィジェットのスタック内のw の下にウィジェットを配置します。
これを動作させるには、ウィジェット自身とw が兄弟でなければなりません。
QStyle *QWidget::style() const
QWidget::setStyle ()、QApplication::setStyle ()、QApplication::style ()も参照のこと 。
[virtual protected]
void QWidget::tabletEvent(QTabletEvent *event)
このイベント・ハンドラは、イベントevent 、ウィジェットのタブレット・イベントを受け取るために、サブクラスで再実装することができます。
このハンドラを再実装する場合、ウィジェットの親がイベントを解釈できるように、イベントを処理しない場合はignore() することが非常に重要です。
デフォルトの実装では、イベントは無視されます。
タブレットトラッキングがオフの場合、タブレット移動イベントは、スタイラスがタブレットに接触しているか、スタイラスの移動中にスタイラスボタンが 1 つ以上押されている場合にのみ発生します。タブレットトラッキングがオンの場合、スタイラスがタブレットの近くにあり、ボタンが押されていなくても、タブレット移動イベントが発生します。
QEvent::ignore(),QEvent::accept(),event(),setTabletTracking(),QTabletEventも参照してください 。
bool QWidget::testAttribute(Qt::WidgetAttribute attribute) const
属性attribute がこのウィジェットに設定されている場合はtrue
を返し、そうでない場合はfalse
を返します。
setAttribute()も参照 。
bool QWidget::underMouse() const
ウィジェットがマウスカーソルの下にある場合はtrue
を返し、そうでない場合はfalse
を返します。
ドラッグ・アンド・ドロップ操作の間、この値は正しく更新されません。
enterEvent() およびleaveEvent()も参照してください 。
void QWidget::ungrabGesture(Qt::GestureType gesture)
指定されたgesture タイプからウィジェットの購読を解除する。
grabGesture() およびQGestureEventも参照してください 。
[slot]
void QWidget::update()
更新が無効になっているか、ウィジェットが非表示になっていない限り、ウィジェットを更新します。
この関数は即座に再描画を行うのではなく、Qt がメイン・イベント・ループに戻ったときに処理されるように、ペイント・イベントをスケジュールします。これにより Qt は、repaint() を呼び出すよりも高速でちらつきの少ない最適化を行うことができます。
通常、update() を数回呼び出すと、paintEvent() を 1 回呼び出すだけです。
Qt は通常、paintEvent() 呼び出しの前にウィジェットの領域を消去します。Qt::WA_OpaquePaintEvent ウィジェット属性が設定されている場合、ウィジェットはそのすべてのピクセルを不透明色で塗る責任があります。
repaint(),paintEvent(),setUpdatesEnabled(),アナログ時計も参照してください 。
void QWidget::update(const QRect &rect)
これはオーバーロードされた関数である。
このバージョンは、ウィジェット内の矩形rect を更新します。
void QWidget::update(const QRegion &rgn)
これはオーバーロードされた関数である。
このバージョンは、ウィジェット内の領域rgn を再描画します。
void QWidget::update(int x, int y, int w, int h)
これはオーバーロードされた関数である。
このバージョンは、ウィジェット内の矩形 (x,y,w,h) を更新します。
void QWidget::updateGeometry()
このウィジェットが変更され、ジオメトリを変更する必要があるかもしれないことをレイアウトシステムに通知する。
sizeHint() またはsizePolicy() が変更された場合、この関数を呼び出します。
明示的に非表示にされたウィジェットの場合、updateGeometry() は省略できません。ウィジェットが表示されると、レイアウトシステムに通知されます。
[protected slot]
void QWidget::updateMicroFocus(Qt::InputMethodQuery query = Qt::ImQueryAll)
ウィジェットのマイクロフォーカスを更新し、query で指定された状態が変更されたことを入力メソッドに通知します。
QRegion QWidget::visibleRegion() const
ペイントイベントが発生する、遮蔽されていない領域を返します。
可視ウィジェットの場合、これは他のウィジェットに覆われていない領域の近似値であり、そうでない場合、これは空の領域です。
repaint() 関数は必要に応じてこの関数を呼び出すので、通常は呼び出す必要はありません。
[virtual protected]
void QWidget::wheelEvent(QWheelEvent *event)
このイベント・ハンドラは、イベントevent 、ウィジェットのホイール・イベントを受け取るためにサブクラスで再実装することができます。
このハンドラを再実装する場合、ウィジェットの親がイベントを解釈できるように、イベントを処理しない場合はignore() することが非常に重要です。
デフォルトの実装では、イベントは無視されます。
QEvent::ignore(),QEvent::accept(),event(),QWheelEventも参照してください 。
WId QWidget::winId() const
ウィジェットのウィンドウシステム識別子を返します。
原理的にはポータブルですが、これを使うとポータブルでないことをしようとしている可能性があります。注意してください。
ウィジェットが非ネイティブ(エイリアン)であり、winId()が呼び出された場合、そのウィジェットにはネイティブハンドルが提供されます。
この値は実行時に変更される可能性があります。ウィンドウシステム識別子が変更されると、QEvent::WinIdChange タイプのイベントがウィジェットに送られます。
find()も参照 。
QWidget *QWidget::window() const
このウィジェットのウィンドウ、つまり、ウィンドウシステムフレームを持つ(または持つ可能性のある)次の祖先ウィジェットを返します。
ウィジェットがウィンドウの場合、ウィジェット自体が返されます。
典型的な使用法は、ウィンドウのタイトルを変更することです:
aWidget->window()->setWindowTitle("New Window Title");
isWindow()も参照してください 。
QWindow *QWidget::windowHandle() const
これがネイティブ・ウィジェットの場合、関連するQWindow を返します。そうでない場合は null を返します。
ネイティブ・ウィジェットには、トップレベル・ウィジェット、QGLWidget、およびwinId() が呼び出された子ウィジェットが含まれます。
winId() およびscreen()も参照してください 。
[signal]
void QWidget::windowIconChanged(const QIcon &icon)
このシグナルは、ウィンドウのアイコンが変更されたときに、新しいicon を引数として発行される。
注: windowIcon プロパティ用のノーティファイア・シグナルです。
QString QWidget::windowRole() const
ウィンドウの役割、または空の文字列を返します。
setWindowRole()、windowIcon 、およびwindowTitleも参照してください 。
Qt::WindowStates QWidget::windowState() const
現在のウィンドウの状態を返す。ウィンドウの状態は、Qt::WindowState :Qt::WindowMinimized Qt::WindowMaximized Qt::WindowFullScreen Qt::WindowActive の組み合わせである。
Qt::WindowState およびsetWindowState()も参照の こと。
[signal]
void QWidget::windowTitleChanged(const QString &title)
このシグナルは、ウィンドウのタイトルが変更されたときに、新しいtitle を引数として発行される。
注意: windowTitle プロパティ用のノーティファイア・シグナルです。
Qt::WindowType QWidget::windowType() const
このウィジェットのウィンドウタイプを返す。これはwindowFlags() とQt::WindowType_Mask と同じです。
windowFlagsも参照のこと 。
マクロ・ドキュメント
QWIDGETSIZE_MAX
QWidget オブジェクトの最大サイズを定義します。
ウィジェットの最大許容サイズはQSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX)、すなわちQSize (16777215,16777215) です。
QWidget::setMaximumSize()も参照してください 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.