QInputDialog Class

QInputDialogクラスは、ユーザーから単一の値を取得するための単純な便宜ダイアログを提供します。もっと詳しく...

ヘッダー #include <QInputDialog>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承: QDialog

パブリックタイプ

enum InputDialogOption { NoButtons, UseListViewForComboBoxItems, UsePlainTextEditForTextInput }
flags InputDialogOptions
enum InputMode { TextInput, IntInput, DoubleInput }

プロパティ

パブリック関数

QInputDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
virtual ~QInputDialog()
QString cancelButtonText() const
QStringList comboBoxItems() const
int doubleDecimals() const
double doubleMaximum() const
double doubleMinimum() const
double doubleStep() const
double doubleValue() const
QInputDialog::InputMode inputMode() const
int intMaximum() const
int intMinimum() const
int intStep() const
int intValue() const
bool isComboBoxEditable() const
QString labelText() const
QString okButtonText() const
void open(QObject *receiver, const char *member)
QInputDialog::InputDialogOptions options() const
void setCancelButtonText(const QString &text)
void setComboBoxEditable(bool editable)
void setComboBoxItems(const QStringList &items)
void setDoubleDecimals(int decimals)
void setDoubleMaximum(double max)
void setDoubleMinimum(double min)
void setDoubleRange(double min, double max)
void setDoubleStep(double step)
void setDoubleValue(double value)
void setInputMode(QInputDialog::InputMode mode)
void setIntMaximum(int max)
void setIntMinimum(int min)
void setIntRange(int min, int max)
void setIntStep(int step)
void setIntValue(int value)
void setLabelText(const QString &text)
void setOkButtonText(const QString &text)
void setOption(QInputDialog::InputDialogOption option, bool on = true)
void setOptions(QInputDialog::InputDialogOptions options)
void setTextEchoMode(QLineEdit::EchoMode mode)
void setTextValue(const QString &text)
bool testOption(QInputDialog::InputDialogOption option) const
QLineEdit::EchoMode textEchoMode() const
QString textValue() const

再実装パブリック関数

virtual void done(int result) override
virtual QSize minimumSizeHint() const override
virtual void setVisible(bool visible) override
virtual QSize sizeHint() const override

シグナル

void doubleValueChanged(double value)
void doubleValueSelected(double value)
void intValueChanged(int value)
void intValueSelected(int value)
void textValueChanged(const QString &text)
void textValueSelected(const QString &text)

静的パブリック・メンバー

double getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0, double min = -2147483647, double max = 2147483647, int decimals = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), double step = 1)
int getInt(QWidget *parent, const QString &title, const QString &label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
QString getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &items, int current = 0, bool editable = true, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)
QString getMultiLineText(QWidget *parent, const QString &title, const QString &label, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)
QString getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode = QLineEdit::Normal, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)

詳細説明

入力値は文字列、数値、またはリストの項目です。何を入力すべきかをユーザーに伝えるために、ラベルを設定しなければならない。

getText ()、getMultiLineText ()、getInt ()、getDouble ()、getItem ()の5つの静的便利関数が用意されている。すべての関数は、例えば次のように同様に使用できる:

    bool ok;
    QString text = QInputDialog::getText(this, tr("QInputDialog::getText()"),
                                         tr("User name:"), QLineEdit::Normal,
                                         QDir::home().dirName(), &ok);
    if (ok && !text.isEmpty())
        textLabel->setText(text);

ユーザーがOK をクリックした場合、ok 変数は true に設定され、そうでない場合は false に設定されます。

Input Dialogs

Standardダイアログの例では、Qt組み込みダイアログと同様にQInputDialogを使用する方法を示しています。

QMessageBoxStandard Dialogs の例も参照してください

メンバ型の説明

enum QInputDialog::InputDialogOption
flags QInputDialog::InputDialogOptions

この enum は、入力ダイアログのルック&フィールに影響する様々なオプションを指定します。

定数説明
QInputDialog::NoButtons0x00000001OKCancel ボタンを表示しません (「ライブダイアログ」に便利です)。
QInputDialog::UseListViewForComboBoxItems0x00000002setComboBoxItems() で設定された項目の表示には、編集不可能なQComboBox ではなくQListView を使用します。
QInputDialog::UsePlainTextEditForTextInput0x00000004複数行のテキスト入力にはQPlainTextEdit 。この値は5.2で導入されました。

InputDialogOptions型はQFlags<InputDialogOption>のtypedefです。InputDialogOptionの値のORの組み合わせを格納します。

options,setOption(),testOption()も参照してください

enum QInputDialog::InputMode

この列挙型は、ダイアログで選択できるさまざまな入力モードを記述します。

定数説明
QInputDialog::TextInput0文字列の入力に使用されます。
QInputDialog::IntInput1整数の入力に使用される。
QInputDialog::DoubleInput2倍精度浮動小数点数の入力に使用。

inputModeも参照

プロパティの説明

cancelButtonText : QString

このプロパティは、ダイアログをキャンセルするためのボタンのテキストを保持します。

アクセス関数:

QString cancelButtonText() const
void setCancelButtonText(const QString &text)

comboBoxEditable : bool

このプロパティは、入力ダイアログで使用されるコンボボックスが編集可能かどうかを保持します。

アクセス関数:

bool isComboBoxEditable() const
void setComboBoxEditable(bool editable)

comboBoxItems : QStringList

このプロパティは、入力ダイアログのコンボボックスで使用される項目を保持する。

アクセス関数です:

QStringList comboBoxItems() const
void setComboBoxItems(const QStringList &items)

doubleDecimals : int

ダブルスピンボックスの精度を小数で設定します。

関数にアクセスします:

int doubleDecimals() const
void setDoubleDecimals(int decimals)

QDoubleSpinBox::setDecimals()も参照

doubleMaximum : double

このプロパティは、入力として受け入れられる最大倍精度浮動小数点値を保持する。

このプロパティは、入力ダイアログがDoubleInput モードで使用される場合にのみ関連します。

アクセス関数:

double doubleMaximum() const
void setDoubleMaximum(double max)

doubleMinimum : double

このプロパティは、入力として受け入れられる倍精度浮動小数点値の最小値を保持する。

このプロパティは、入力ダイアログがDoubleInput モードで使用される場合にのみ関連します。

アクセス関数:

double doubleMinimum() const
void setDoubleMinimum(double min)

doubleStep : double

このプロパティは、ダブル値が増減するステップを保持する。

このプロパティは、入力ダイアログがDoubleInput モードで使用される場合にのみ関連します。

アクセス関数

double doubleStep() const
void setDoubleStep(double step)

doubleValue : int

このプロパティは、入力として受け入れられる現在の倍精度浮動小数点値を保持する。

このプロパティは、入力ダイアログがDoubleInput モードで使用されている場合にのみ関連します。

アクセス関数:

double doubleValue() const
void setDoubleValue(double value)

ノーティファイアシグナル:

void doubleValueChanged(double value)

inputMode : InputMode

このプロパティは、入力に使用されるモードを保持する

このプロパティは、ダイアログへの入力に使用されるウィジェットを決定するのに役立ちます。

アクセス関数

QInputDialog::InputMode inputMode() const
void setInputMode(QInputDialog::InputMode mode)

intMaximum : int

このプロパティは、入力として受け入れられる整数の最大値を保持する。

このプロパティは、入力ダイアログがIntInput モードで使用される場合にのみ関連します。

アクセス関数:

int intMaximum() const
void setIntMaximum(int max)

intMinimum : int

このプロパティは、入力として受け入れられる最小の整数値を保持する。

このプロパティは、入力ダイアログがIntInput モードで使用される場合にのみ関連します。

アクセス関数:

int intMinimum() const
void setIntMinimum(int min)

intStep : int

このプロパティは、整数値の増減のステップを保持する。

このプロパティは、入力ダイアログがIntInput モードで使用される場合にのみ関連します。

アクセス関数

int intStep() const
void setIntStep(int step)

intValue : int

このプロパティは、入力として受け入れられた現在の整数値を保持する。

このプロパティは、入力ダイアログがIntInput モードで使用されている場合にのみ関連します。

アクセス関数

int intValue() const
void setIntValue(int value)

ノーティファイアシグナル:

void intValueChanged(int value)

labelText : QString

このプロパティは、入力が必要なラベルのテキストを保持します。

アクセス関数:

QString labelText() const
void setLabelText(const QString &text)

okButtonText : QString

このプロパティは、ダイアログの入力を受け付けるボタンのテキストを保持します。

アクセス関数:

QString okButtonText() const
void setOkButtonText(const QString &text)

options : InputDialogOptions

このプロパティは、ダイアログのルック&フィールに影響を与える様々なオプションを保持します。

デフォルトでは、すべてのオプションは無効になっています。

アクセス関数:

QInputDialog::InputDialogOptions options() const
void setOptions(QInputDialog::InputDialogOptions options)

setOption() およびtestOption()も参照してください

textEchoMode : QLineEdit::EchoMode

このプロパティは、テキスト値のエコーモードを保持する。

このプロパティは、入力ダイアログがTextInput モードで使用される場合にのみ関連します。

アクセス関数

QLineEdit::EchoMode textEchoMode() const
void setTextEchoMode(QLineEdit::EchoMode mode)

textValue : QString

このプロパティは入力ダイアログのテキスト値を保持する。

このプロパティは、入力ダイアログがTextInput モードで使用される場合にのみ関連します。

アクセス関数

QString textValue() const
void setTextValue(const QString &text)

ノーティファイアシグナル:

void textValueChanged(const QString &text)

メンバ関数ドキュメント

QInputDialog::QInputDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())

与えられたparent とウィンドウflags で新しい入力ダイアログを構築する。

[virtual noexcept] QInputDialog::~QInputDialog()

入力ダイアログを破棄する。

[override virtual] void QInputDialog::done(int result)

再インプリメント:QDialog::done(int r)。

ダイアログを閉じ、その結果コードをresult に設定する。 このダイアログがexec() で表示されている場合、done() はローカル・イベント・ループを終了させ、exec() はresult を返す。

QDialog::done()も参照してください

[signal] void QInputDialog::doubleValueChanged(double value)

このシグナルは、ダイアログ内でdoubleの値が変更されるたびに発せられます。現在の値はvalue で指定されます。

このシグナルは、入力ダイアログがDoubleInput モードで使用されている場合にのみ関連します。

注: プロパティdoubleValue に対するノーティファイアシグナル。

[signal] void QInputDialog::doubleValueSelected(double value)

このシグナルは、例えばOK ボタンをクリックするなど、ユーザーがダイアログを受諾してダブル値を選択するたびに発せられる。選択された値はvalue で指定されます。

このシグナルは、入力ダイアログがDoubleInput モードで使用される場合にのみ関連します。

[static] double QInputDialog::getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0, double min = -2147483647, double max = 2147483647, int decimals = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), double step = 1)

ユーザから浮動小数点数を取得するための静的便宜関数。

title はダイアログのタイトルバーに表示されるテキストです。 はユーザーに表示されるテキストです(何を入力すべきかが書かれている必要があります)。 は行編集に設定されるデフォルトの浮動小数点数です。 と はユーザーが選択できる最小値と最大値です。 は小数点以下の桁数の最大値です。 はユーザーが矢印ボタンを押して値を増減させたときに変化する量です。label value min max decimals step

ok がnullでない場合、 *ok は、ユーザーがOK を押した場合はtrueに、Cancel を押した場合はfalseに設定されます。ダイアログの親はparent です。ダイアログはモーダルになり、ウィジェットflags を使用します。

この関数は、ユーザが入力した浮動小数点数を返します。

この静的関数はこのように使用します:

    bool ok;
    double d = QInputDialog::getDouble(this, tr("QInputDialog::getDouble()"),
                                       tr("Amount:"), 37.56, -10000, 10000, 2, &ok,
                                       Qt::WindowFlags(), 1);
    if (ok)
        doubleLabel->setText(QString("$%1").arg(d));

getText()、getInt()、getItem()、getMultiLineText()も参照してください

[static] int QInputDialog::getInt(QWidget *parent, const QString &title, const QString &label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())

ユーザーから整数の入力を得るための静的な便利関数です。

title はダイアログのタイトルバーに表示されるテキストです。 はユーザーに表示されるテキストです(何を入力すべきかが書かれている必要があります)。 はスピンボックスに設定されるデフォルトの整数です。 と はユーザーが選択できる最小値と最大値です。 はユーザーが矢印ボタンを押して値をインクリメントまたはデクリメントするときに変化する量です。label value min max step

ok がnullでない場合 *ok は、ユーザーがOK を押した場合はtrueに、Cancel を押した場合はfalseに設定されます。ダイアログの親はparent です。ダイアログはモーダルになり、ウィジェットflags を使用します。

成功した場合、この関数はユーザが入力した整数を返します。失敗した場合、初期値value を返します。

この静的関数はこのように使用します:

    bool ok;
    int i = QInputDialog::getInt(this, tr("QInputDialog::getInt()"),
                                 tr("Percentage:"), 25, 0, 100, 1, &ok);
    if (ok)
        integerLabel->setText(tr("%1%").arg(i));

getText(),getDouble(),getItem(),getMultiLineText()も参照してください

[static] QString QInputDialog::getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &items, int current = 0, bool editable = true, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)

ユーザが文字列リストから項目を選択するための静的便利関数。

title label items はコンボボックスに挿入される文字列リストです。 は現在の項目となるべき項目の番号です。 はコンボボックスが編集可能で入力メソッドがアクティブな場合に使用される入力メソッドのヒントです。current inputMethodHints

もしeditable がtrueの場合、ユーザは自分のテキストを入力することができます。そうでない場合、ユーザは既存の項目の中から1つだけ選択することができます。

ok が nonnull の場合、ユーザーがOK を押した場合は*ok がtrue に、Cancel を押した場合は false に設定されます。ダイアログの親はparent です。ダイアログはモーダルになり、ウィジェットflags を使用します。

この関数は、現在の項目のテキストを返します。editable が true の場合は、コンボボックスの現在のテキストを返します。

この静的関数はこのように使用します:

    QStringList items;
    items << tr("Spring") << tr("Summer") << tr("Fall") << tr("Winter");

    bool ok;
    QString item = QInputDialog::getItem(this, tr("QInputDialog::getItem()"),
                                         tr("Season:"), items, 0, false, &ok);
    if (ok && !item.isEmpty())
        itemLabel->setText(item);

getText(),getInt(),getDouble(),getMultiLineText()も参照してください

[static] QString QInputDialog::getMultiLineText(QWidget *parent, const QString &title, const QString &label, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)

ユーザーから複数行の文字列を取得するための静的便宜関数。

title はダイアログのタイトルバーに表示されるテキストです。 はユーザーに表示されるテキストです(何を入力すべきかが書かれている必要があります)。 はプレーンテキストの編集に配置されるデフォルトのテキストです。 は入力メソッドがアクティブな場合に編集ウィジェットで使用される入力メソッドのヒントです。label text inputMethodHints

ok が nonnull の場合、ユーザーがOK を押した場合は*ok がtrue に、Cancel を押した場合は false に設定されます。ダイアログの親はparent です。ダイアログはモーダルになり、指定されたウィジェットflags を使用します。

ダイアログが受け入れられた場合、この関数はダイアログのプレーンテキスト編集のテキストを返します。ダイアログが拒否された場合、NULLQString が返されます。

この静的関数はこのように使用します:

    bool ok;
    QString text = QInputDialog::getMultiLineText(this, tr("QInputDialog::getMultiLineText()"),
                                                  tr("Address:"), "John Doe\nFreedom Street", &ok);
    if (ok && !text.isEmpty())
        multiLineTextLabel->setText(text);

getInt(),getDouble(),getItem(),getText()も参照してください

[static] QString QInputDialog::getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode = QLineEdit::Normal, const QString &text = QString(), bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone)

ユーザーから文字列を取得するための静的便宜関数。

title はダイアログのタイトルバーに表示されるテキストです。 はユーザーに表示されるテキストです(何を入力すべきかが書かれている必要があります)。 は行編集に配置されるデフォルトのテキストです。 は行編集が使用するエコーモードです。 は入力メソッドがアクティブな場合に編集ウィジェットで使用される入力メソッドのヒントです。label text mode inputMethodHints

ok が nonnull の場合、ユーザがOK を押した場合は*ok がtrue に、Cancel を押した場合は false に設定されます。ダイアログの親はparent です。ダイアログはモーダルになり、指定されたウィジェットflags を使用します。

ダイアログが受け入れられた場合、この関数はダイアログの行編集のテキストを返します。ダイアログが拒否された場合、NULLQString が返されます。

この静的関数はこのように使用します:

    bool ok;
    QString text = QInputDialog::getText(this, tr("QInputDialog::getText()"),
                                         tr("User name:"), QLineEdit::Normal,
                                         QDir::home().dirName(), &ok);
    if (ok && !text.isEmpty())
        textLabel->setText(text);

getInt(),getDouble(),getItem(),getMultiLineText()も参照してください

[signal] void QInputDialog::intValueChanged(int value)

このシグナルは、ダイアログ内の整数値が変更されるたびに発行されます。現在の値はvalue で指定されます。

このシグナルは、入力ダイアログがIntInput モードで使用されている場合にのみ関連します。

注意: intValue プロパティのノーティファイアシグナルです。

[signal] void QInputDialog::intValueSelected(int value)

このシグナルは、例えばOK ボタンをクリックするなど、ユーザーがダイアログを受 け入れて整数値を選択するたびに発せられる。選択された値はvalue で指定されます。

このシグナルは、入力ダイアログがIntInput モードで使用されている場合にのみ関連します。

[override virtual] QSize QInputDialog::minimumSizeHint() const

再実装:QDialog::minimumSizeHint() const.

void QInputDialog::open(QObject *receiver, const char *member)

この関数は、receivermember で指定されたスロットにシグナルの1つを接続する。特定のシグナルは、member で指定された引数に依存する。これらは以下の通りである:

ダイアログが閉じられると、シグナルはスロットから切断されます。

void QInputDialog::setDoubleRange(double min, double max)

minmax でそれぞれ最小値と最大値を指定し、DoubleInput モードで使用する場合にダイアログが受け付ける倍精度浮動小数点値の範囲を設定します。

void QInputDialog::setIntRange(int min, int max)

IntInput モードで使用するときにダイアログが受け付ける整数値の範囲を設定します。最小値と最大値はそれぞれminmax で指定します。

void QInputDialog::setOption(QInputDialog::InputDialogOption option, bool on = true)

on が true の場合、与えられたoption を有効にする。そうでない場合、与えられたoption をクリアする。

options およびtestOption()も参照のこと

[override virtual] void QInputDialog::setVisible(bool visible)

再インプリメント:QDialog::setVisible(bool visible).

[override virtual] QSize QInputDialog::sizeHint() const

再実装:QDialog::sizeHint() const.

bool QInputDialog::testOption(QInputDialog::InputDialogOption option) const

与えられたoption が有効であればtrue を返し、そうでなければ false を返す。

options およびsetOption()も参照

[signal] void QInputDialog::textValueChanged(const QString &text)

このシグナルは、ダイアログ内の文字列が変更されるたびに発行される。現在の文字列はtext で指定されます。

このシグナルは、入力ダイアログがTextInput モードで使用されている場合にのみ関連します。

注意: textValue プロパティのノーティファイアシグナルです。

[signal] void QInputDialog::textValueSelected(const QString &text)

このシグナルは、ユーザーがダイアログを受諾して文字列を選択するたびに発せられる。例えば、OK ボタンをクリックする。選択された文字列はtext で指定されます。

このシグナルは、入力ダイアログがTextInput モードで使用される場合にのみ関連します。

© 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.