このページでは

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)

詳細な説明

入力値は、文字列、数値、またはリスト内の項目のいずれかです。ユーザーに入力すべき内容を伝えるために、ラベルを設定する必要があります。

5つの静的な便利関数が用意されています:getText()、getMultiLineText()、getInt()、getDouble()、およびgetItem()。すべての関数は同様の方法で使用できます。例:

    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 に設定されます。

入力ダイアログ

「標準ダイアログ」の例では、QInputDialog やその他の組み込み Qt ダイアログの使用方法を示しています。

「 QMessageBox 」 および「標準ダイアログの例」も参照してください 。

メンバ型のドキュメント

enum QInputDialog::InputDialogOption
flags QInputDialog::InputDialogOptions

この列挙型は、入力ダイアログの外観や操作感に影響を与えるさまざまなオプションを指定します。

定数値説明
QInputDialog::NoButtons0x00000001OK およびCancel ボタンを表示しない(「ライブダイアログ」に有用)。
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

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

Accessの関数:

bool isComboBoxEditable() const
void setComboBoxEditable(bool editable)

comboBoxItems : QStringList

このプロパティには、入力ダイアログのコンボボックスで使用される項目が格納されます

Accessの関数:

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

このプロパティは、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 」ボタンをクリックするなどして)double型の値を選択した際に発火します。選択された値は、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(QStringLiteral("$%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 が null 以外の場合、ユーザーがOK を押すと*ok はtrue に、Cancel を押すと false に設定されます。ダイアログの親はparent です。ダイアログはモーダルであり、ウィジェットflags を使用します。

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

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

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

ダイアログが承認された場合、この関数はダイアログのプレーンテキスト編集フィールドに入力されたテキストを返します。ダイアログが却下された場合は、nullのQString が返されます。

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

    bool ok{};
    QString text = QInputDialog::getMultiLineText(this, tr("QInputDialog::getMultiLineText()"),
                                                  tr("Address:"), "John Doe\nFreedom Street"_L1, &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 がnullでない場合、ユーザーがOK を押したときは*okがtrueに、Cancel を押したときはfalseに設定されます。ダイアログの親はparent です。ダイアログはモーダルとなり、指定されたウィジェットflags を使用します。

ダイアログが承認された場合、この関数はダイアログのラインエディット内のテキストを返します。ダイアログが却下された場合は、nullのQString が返されます。

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

    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)

この関数は、そのシグナルの1つを、receiver およびmember で指定されたスロットに接続します。どのシグナルが接続されるかは、member で指定された引数によって決まります。これらは以下の通りです。

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

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

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

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

IntInput モードで使用する場合、ダイアログが受け付ける整数値の範囲を設定します。最小値と最大値は、それぞれmin およびmax で指定されます。

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 」モードで使用されている場合にのみ関連します。

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