QInputDialog Class

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

Header: #include <QInputDialog>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherits: 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も参照

プロパティ Documentation

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 がnullでない場合、*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)

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

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

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

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

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

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

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

on が真であれば、与えられた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 モードで使用される場合にのみ関連します。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。