File indexing completed on 2026-06-07 08:35:36
0001
0002
0003
0004
0005 #ifndef QINPUTDIALOG_H
0006 #define QINPUTDIALOG_H
0007
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtCore/qstring.h>
0010 #include <QtWidgets/qlineedit.h>
0011
0012 #include <QtWidgets/qdialog.h>
0013
0014 QT_REQUIRE_CONFIG(inputdialog);
0015
0016 QT_BEGIN_NAMESPACE
0017
0018 class QInputDialogPrivate;
0019
0020 class Q_WIDGETS_EXPORT QInputDialog : public QDialog
0021 {
0022 Q_OBJECT
0023 Q_DECLARE_PRIVATE(QInputDialog)
0024 QDOC_PROPERTY(InputMode inputMode READ inputMode WRITE setInputMode)
0025 QDOC_PROPERTY(QString labelText READ labelText WRITE setLabelText)
0026 QDOC_PROPERTY(InputDialogOptions options READ options WRITE setOptions)
0027 QDOC_PROPERTY(QString textValue READ textValue WRITE setTextValue NOTIFY textValueChanged)
0028 QDOC_PROPERTY(int intValue READ intValue WRITE setIntValue NOTIFY intValueChanged)
0029 QDOC_PROPERTY(int doubleValue READ doubleValue WRITE setDoubleValue NOTIFY doubleValueChanged)
0030 QDOC_PROPERTY(QLineEdit::EchoMode textEchoMode READ textEchoMode WRITE setTextEchoMode)
0031 QDOC_PROPERTY(bool comboBoxEditable READ isComboBoxEditable WRITE setComboBoxEditable)
0032 QDOC_PROPERTY(QStringList comboBoxItems READ comboBoxItems WRITE setComboBoxItems)
0033 QDOC_PROPERTY(int intMinimum READ intMinimum WRITE setIntMinimum)
0034 QDOC_PROPERTY(int intMaximum READ intMaximum WRITE setIntMaximum)
0035 QDOC_PROPERTY(int intStep READ intStep WRITE setIntStep)
0036 QDOC_PROPERTY(double doubleMinimum READ doubleMinimum WRITE setDoubleMinimum)
0037 QDOC_PROPERTY(double doubleMaximum READ doubleMaximum WRITE setDoubleMaximum)
0038 QDOC_PROPERTY(int doubleDecimals READ doubleDecimals WRITE setDoubleDecimals)
0039 QDOC_PROPERTY(QString okButtonText READ okButtonText WRITE setOkButtonText)
0040 QDOC_PROPERTY(QString cancelButtonText READ cancelButtonText WRITE setCancelButtonText)
0041 QDOC_PROPERTY(double doubleStep READ doubleStep WRITE setDoubleStep)
0042
0043 public:
0044 enum InputDialogOption {
0045 NoButtons = 0x00000001,
0046 UseListViewForComboBoxItems = 0x00000002,
0047 UsePlainTextEditForTextInput = 0x00000004
0048 };
0049
0050 Q_DECLARE_FLAGS(InputDialogOptions, InputDialogOption)
0051
0052 enum InputMode {
0053 TextInput,
0054 IntInput,
0055 DoubleInput
0056 };
0057
0058 QInputDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags());
0059 ~QInputDialog();
0060
0061 void setInputMode(InputMode mode);
0062 InputMode inputMode() const;
0063
0064 void setLabelText(const QString &text);
0065 QString labelText() const;
0066
0067 void setOption(InputDialogOption option, bool on = true);
0068 bool testOption(InputDialogOption option) const;
0069 void setOptions(InputDialogOptions options);
0070 InputDialogOptions options() const;
0071
0072 void setTextValue(const QString &text);
0073 QString textValue() const;
0074
0075 void setTextEchoMode(QLineEdit::EchoMode mode);
0076 QLineEdit::EchoMode textEchoMode() const;
0077
0078 void setComboBoxEditable(bool editable);
0079 bool isComboBoxEditable() const;
0080
0081 void setComboBoxItems(const QStringList &items);
0082 QStringList comboBoxItems() const;
0083
0084 void setIntValue(int value);
0085 int intValue() const;
0086
0087 void setIntMinimum(int min);
0088 int intMinimum() const;
0089
0090 void setIntMaximum(int max);
0091 int intMaximum() const;
0092
0093 void setIntRange(int min, int max);
0094
0095 void setIntStep(int step);
0096 int intStep() const;
0097
0098 void setDoubleValue(double value);
0099 double doubleValue() const;
0100
0101 void setDoubleMinimum(double min);
0102 double doubleMinimum() const;
0103
0104 void setDoubleMaximum(double max);
0105 double doubleMaximum() const;
0106
0107 void setDoubleRange(double min, double max);
0108
0109 void setDoubleDecimals(int decimals);
0110 int doubleDecimals() const;
0111
0112 void setOkButtonText(const QString &text);
0113 QString okButtonText() const;
0114
0115 void setCancelButtonText(const QString &text);
0116 QString cancelButtonText() const;
0117
0118 using QDialog::open;
0119 void open(QObject *receiver, const char *member);
0120
0121 QSize minimumSizeHint() const override;
0122 QSize sizeHint() const override;
0123
0124 void setVisible(bool visible) override;
0125
0126 static QString getText(QWidget *parent, const QString &title, const QString &label,
0127 QLineEdit::EchoMode echo = QLineEdit::Normal,
0128 const QString &text = QString(), bool *ok = nullptr,
0129 Qt::WindowFlags flags = Qt::WindowFlags(),
0130 Qt::InputMethodHints inputMethodHints = Qt::ImhNone);
0131 static QString getMultiLineText(QWidget *parent, const QString &title, const QString &label,
0132 const QString &text = QString(), bool *ok = nullptr,
0133 Qt::WindowFlags flags = Qt::WindowFlags(),
0134 Qt::InputMethodHints inputMethodHints = Qt::ImhNone);
0135 static QString getItem(QWidget *parent, const QString &title, const QString &label,
0136 const QStringList &items, int current = 0, bool editable = true,
0137 bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(),
0138 Qt::InputMethodHints inputMethodHints = Qt::ImhNone);
0139
0140 static int getInt(QWidget *parent, const QString &title, const QString &label, int value = 0,
0141 int minValue = -2147483647, int maxValue = 2147483647,
0142 int step = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags());
0143
0144 static double getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0,
0145 double minValue = -2147483647, double maxValue = 2147483647,
0146 int decimals = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(),
0147 double step = 1);
0148
0149 void setDoubleStep(double step);
0150 double doubleStep() const;
0151
0152 Q_SIGNALS:
0153 void textValueChanged(const QString &text);
0154 void textValueSelected(const QString &text);
0155 void intValueChanged(int value);
0156 void intValueSelected(int value);
0157 void doubleValueChanged(double value);
0158 void doubleValueSelected(double value);
0159
0160 public:
0161 void done(int result) override;
0162
0163 private:
0164 Q_DISABLE_COPY(QInputDialog)
0165 };
0166
0167 Q_DECLARE_OPERATORS_FOR_FLAGS(QInputDialog::InputDialogOptions)
0168
0169 QT_END_NAMESPACE
0170
0171 #endif