4#include <qplatformdefs.h>
5#include <private/qabstractspinbox_p.h>
6#include <private/qapplication_p.h>
7#if QT_CONFIG(datetimeparser)
8#include <private/qdatetimeparser_p.h>
10#include <private/qlineedit_p.h>
25#if QT_CONFIG(accessibility)
31#ifdef QABSTRACTSPINBOX_QSBDEBUG
32# define QASBDEBUG qDebug
34# define QASBDEBUG if (false) qDebug
173 return d->buttonSymbols;
181 d->updateEditFieldGeometry();
237 return d->specialValueText;
245 d->cachedSizeHint =
QSize();
330 return d->keyboardTracking;
359 d->updateEditFieldGeometry();
375 d->accelerate = accelerate;
381 return d->accelerate;
395 return d->showGroupSeparator;
401 if (
d->showGroupSeparator == shown)
403 d->showGroupSeparator = shown;
442 return d->correctionMode;
457 return d->edit->hasAcceptableInput();
478 return (Qt::Alignment)
d->edit->alignment();
485 d->edit->setAlignment(flag);
497 if (!
d->specialValue()) {
498 const int tmp =
d->edit->displayText().size() -
d->suffix.size();
499 d->edit->setSelection(tmp, -(tmp -
d->prefix.size()));
501 d->edit->selectAll();
513 d->edit->setText(
d->prefix +
d->suffix);
514 d->edit->setCursorPosition(
d->prefix.size());
616 QString tmp =
d->edit->displayText();
617 int cursorPos =
d->edit->cursorPosition();
618 bool dontstep =
false;
620 if (
d->pendingEmit) {
629 switch (
d->stepType) {
631 singleStep =
d->calculateAdaptiveDecimalStep(steps);
634 singleStep =
d->singleStep;
636 d->setValue(
d->bound(
d->value + (singleStep * steps), old, steps),
e);
638 d->emitSignals(
e, old);
682 setProperty(
"_q_spinbox_lineedit", QVariant::fromValue<QWidget *>(
d->edit));
683 if (!
d->edit->validator())
684 d->edit->setValidator(
d->validator);
686 if (
d->edit->parent() !=
this)
687 d->edit->setParent(
this);
690 d->edit->setFocusProxy(
this);
691 d->edit->setAcceptDrops(
false);
697 this,
SLOT(_q_editorCursorPositionChanged(
int,
int)));
703 d->updateEditFieldGeometry();
705 d->edit->d_func()->control->setAccessibleObject(
this);
743 return lineEditValue;
753 switch (
event->type()) {
756 d->cachedSizeHint =
d->cachedMinimumSizeHint =
QSize();
760 d->updateEditFieldGeometry();
768 if (
d->edit->event(
event))
771#ifdef QT_KEYPAD_NAVIGATION
772 case QEvent::EnterEditFocus:
773 case QEvent::LeaveEditFocus:
774 if (QApplicationPrivate::keypadNavigationEnabled()) {
775 const bool b =
d->edit->event(
event);
776 d->edit->setSelection(
d->edit->displayText().size() -
d->suffix.size(),0);
777 if (
event->type() == QEvent::LeaveEditFocus)
785 return d->edit->event(
event);
801 if (
d->ignoreUpdateEdit) {
802 d->ignoreUpdateEdit =
false;
816 switch (
event->type()) {
819 d->spinClickThresholdTimerInterval =
825 d->updateEditFieldGeometry();
857 d->updateEditFieldGeometry();
868 if (
d->cachedSizeHint.isEmpty()) {
872 int h =
d->edit->sizeHint().height();
875 QString fixedContent =
d->prefix +
d->suffix + u
' ';
876 s =
d->textFromValue(
d->minimum);
880 s =
d->textFromValue(
d->maximum);
885 if (
d->specialValueText.size()) {
886 s =
d->specialValueText;
891 QStyleOptionSpinBox
opt;
896 return d->cachedSizeHint;
906 if (
d->cachedMinimumSizeHint.isEmpty()) {
911 int h =
d->edit->minimumSizeHint().height();
915 QString fixedContent =
d->prefix + u
' ';
916 s =
d->textFromValue(
d->minimum);
920 s =
d->textFromValue(
d->maximum);
925 if (
d->specialValueText.size()) {
926 s =
d->specialValueText;
931 QStyleOptionSpinBox
opt;
937 return d->cachedMinimumSizeHint;
946 QStyleOptionSpinBox
opt;
980 d->keyboardModifiers =
event->modifiers();
982 if (!
event->text().isEmpty() &&
d->edit->cursorPosition() <
d->prefix.size())
983 d->edit->setCursorPosition(
d->prefix.size());
986 bool isPgUpOrDown =
false;
987 switch (
event->key()) {
995#ifdef QT_KEYPAD_NAVIGATION
996 if (QApplicationPrivate::keypadNavigationEnabled()) {
1009 if (!isPgUpOrDown && (
event->modifiers() &
d->stepModifier))
1016 if (
d->spinClickTimerId == -1)
1018 if (
event->isAutoRepeat() && !isPgUpOrDown) {
1019 if (
d->spinClickThresholdTimerId == -1 &&
d->spinClickTimerId == -1) {
1020 d->updateState(up,
true);
1023#if QT_CONFIG(accessibility)
1024 QAccessibleValueChangeEvent
event(
this,
d->value);
1025 QAccessible::updateAccessibility(&
event);
1029#ifdef QT_KEYPAD_NAVIGATION
1032 if (QApplicationPrivate::keypadNavigationEnabled() && !hasEditFocus()) {
1038 if (QApplicationPrivate::keypadNavigationEnabled() && !hasEditFocus()) {
1046 d->edit->d_func()->control->clearUndo();
1051 emit d->edit->returnPressed();
1054#ifdef QT_KEYPAD_NAVIGATION
1056 if (QApplicationPrivate::keypadNavigationEnabled()) {
1058 setEditFocus(!hasEditFocus());
1076 int currentPos =
d->edit->cursorPosition();
1079 if ((currentPos == 0 && !
d->prefix.isEmpty()) ||
text.
size() -
d->suffix.size() <= currentPos) {
1082 d->edit->setSelection(currentPos,
text.
size() -
d->suffix.size() - currentPos);
1085 if ((currentPos ==
text.
size() && !
d->suffix.isEmpty()) || currentPos <= d->prefix.size()) {
1088 d->edit->setSelection(currentPos,
d->prefix.size() - currentPos);
1097#ifndef QT_NO_SHORTCUT
1108 if (!
d->edit->text().isEmpty())
1111 d->ignoreUpdateEdit =
true;
1122 d->keyboardModifiers =
event->modifiers();
1134#if QT_CONFIG(wheelevent)
1135void QAbstractSpinBox::wheelEvent(QWheelEvent *
event)
1145 d->wheelDeltaRemainder +=
event->angleDelta().x();
1147 d->wheelDeltaRemainder +=
event->angleDelta().y();
1150 d->wheelDeltaRemainder +=
event->angleDelta().y();
1152 const int steps =
d->wheelDeltaRemainder / 120;
1153 d->wheelDeltaRemainder -= steps * 120;
1191#ifdef QT_KEYPAD_NAVIGATION
1193 if (!QApplicationPrivate::keypadNavigationEnabled())
1234 bool doStep =
false;
1235 if (
event->timerId() ==
d->spinClickThresholdTimerId) {
1237 d->spinClickThresholdTimerId = -1;
1238 d->effectiveSpinRepeatRate =
d->buttonState &
Keyboard
1240 :
d->spinClickTimerInterval;
1241 d->spinClickTimerId =
startTimer(
d->effectiveSpinRepeatRate);
1243 }
else if (
event->timerId() ==
d->spinClickTimerId) {
1244 if (
d->accelerate) {
1245 d->acceleration =
d->acceleration + (int)(
d->effectiveSpinRepeatRate * 0.05);
1246 if (
d->effectiveSpinRepeatRate -
d->acceleration >= 10) {
1248 d->spinClickTimerId =
startTimer(
d->effectiveSpinRepeatRate -
d->acceleration);
1255 const bool increaseStepRate =
d->keyboardModifiers &
d->stepModifier;
1257 if (
d->buttonState &
Up) {
1261 stepBy(increaseStepRate ? 10 : 1);
1263 }
else if (
d->buttonState &
Down) {
1267 stepBy(increaseStepRate ? -10 : -1);
1280#if QT_CONFIG(contextmenu)
1292#if QT_CONFIG(shortcut)
1311 if (that && action) {
1314 }
else if (action == down) {
1316 }
else if (action == selAll) {
1332 d->keyboardModifiers =
event->modifiers();
1333 d->updateHoverControl(
event->position().toPoint());
1336 if (
d->spinClickTimerId != -1 &&
d->buttonSymbols !=
NoButtons) {
1339 d->updateState(
true);
1341 d->updateState(
false);
1356 d->keyboardModifiers =
event->modifiers();
1361 d->updateHoverControl(
event->position().toPoint());
1366 d->updateState(
true);
1368 d->updateState(
false);
1381 d->keyboardModifiers =
event->modifiers();
1382 if ((
d->buttonState &
Mouse) != 0)
1396 ignoreCursorPositionChanged(
false),
frame(true), accelerate(
false), keyboardTracking(true),
1421 q->update(lastHoverRect);
1437 QStyleOptionSpinBox
opt;
1438 q->initStyleOption(&
opt);
1456 bool changed =
false;
1474 return text.toString();
1481 QStyleOptionSpinBox
opt;
1482 q->initStyleOption(&
opt);
1548 bool allowSelection =
true;
1552 allowSelection =
false;
1561 allowSelection =
false;
1569 * (newpos <
pos ? -1 : 1)) - newpos +
pos
1598 QStyleOptionSpinBox
opt;
1601 q->initStyleOption(&
opt);
1649 int steps = up ? 1 : -1;
1654#if QT_CONFIG(accessibility)
1656 QAccessible::updateAccessibility(&
event);
1677 option->buttonSymbols =
d->buttonSymbols;
1683 if (
d->buttonState &
Up) {
1685 }
else if (
d->buttonState &
Down) {
1690 if (
d->buttonState) {
1693 option->activeSubControls =
d->hoverControl;
1722 const bool wasMin = old ==
minimum;
1723 const bool wasMax = old ==
maximum;
1727 const bool wrapped = (oldcmp > 0 && steps < 0) || (oldcmp < 0 && steps > 0);
1729 v = ((wasMax && !wrapped && steps > 0) || (steps < 0 && !wasMin && wrapped))
1731 }
else if (wrapped && (maxcmp > 0 || mincmp < 0)) {
1732 v = ((wasMax && steps > 0) || (!wasMin && steps < 0)) ?
minimum :
maximum;
1733 }
else if (mincmp < 0) {
1822 q->updateGeometry();
1836 case QMetaType::Double:
ret =
QVariant(0.0);
break;
1887 bool doInterpret =
true;
1890 const int oldpos =
pos;
1895 QASBDEBUG() <<
"QAbstractSpinBoxPrivate::interpret() text '"
1897 <<
"' >> '" <<
copy <<
'\''
1898 <<
"' >> '" << tmp <<
'\'';
1984 qWarning(
"QAbstractSpinBox: Internal error: Different types (%s vs %s) (%s:%d)",
1985 arg1.typeName(),
arg2.typeName(), __FILE__, __LINE__);
1986 switch (
arg1.userType()) {
1987 case QMetaType::Int: {
1988 const int int1 =
arg1.toInt();
1989 const int int2 =
arg2.toInt();
1990 if (int1 > 0 && (int2 >= INT_MAX - int1)) {
1993 }
else if (int1 < 0 && (int2 <= INT_MIN - int1)) {
2002#if QT_CONFIG(datetimeparser)
2003 case QMetaType::QDateTime: {
2006 a1.setTime(
a1.time().addMSecs(
a2.time().msecsSinceStartOfDay()));
2026 qWarning(
"QAbstractSpinBox: Internal error: Different types (%s vs %s) (%s:%d)",
2027 arg1.typeName(),
arg2.typeName(), __FILE__, __LINE__);
2028 switch (
arg1.userType()) {
2031 case QMetaType::QDateTime: {
2034 int days =
a2.daysTo(
a1);
2035 int secs =
a2.secsTo(
a1);
2036 int msecs =
qMax(0,
a1.time().msec() -
a2.time().msec());
2037 if (days < 0 || secs < 0 || msecs < 0) {
2060 switch (
arg1.userType()) {
2061 case QMetaType::Int:
2062 ret =
static_cast<int>(qBound<double>(INT_MIN,
arg1.toInt() * multiplier, INT_MAX));
2064 case QMetaType::Double:
ret =
QVariant(
arg1.toDouble() * multiplier);
break;
2065#if QT_CONFIG(datetimeparser)
2066 case QMetaType::QDateTime: {
2070 qint64 msecs =
qint64(
arg1.toDateTime().time().msecsSinceStartOfDay() * multiplier
2071 + days * (24 * 3600 * 1000));
2089 switch (
arg1.userType()) {
2090 case QMetaType::Int:
2091 a1 = (double)
arg1.toInt();
2092 a2 = (double)
arg2.toInt();
2094 case QMetaType::Double:
2098#if QT_CONFIG(datetimeparser)
2099 case QMetaType::QDateTime:
2102 a1 +=
arg1.toDateTime().time().msecsSinceStartOfDay() / (36e5 * 24);
2103 a2 +=
arg2.toDateTime().time().msecsSinceStartOfDay() / (36e5 * 24);
2109 return (
a1 != 0 &&
a2 != 0) ? (
a1 /
a2) : 0.0;
2114 switch (
arg2.userType()) {
2115 case QMetaType::QDate:
2116 Q_ASSERT_X(
arg1.userType() == QMetaType::QDate,
"QAbstractSpinBoxPrivate::variantCompare",
2119 if (
arg1.toDate() ==
arg2.toDate()) {
2121 }
else if (
arg1.toDate() <
arg2.toDate()) {
2126 case QMetaType::QTime:
2127 Q_ASSERT_X(
arg1.userType() == QMetaType::QTime,
"QAbstractSpinBoxPrivate::variantCompare",
2130 if (
arg1.toTime() ==
arg2.toTime()) {
2132 }
else if (
arg1.toTime() <
arg2.toTime()) {
2139 case QMetaType::QDateTime:
2140 if (
arg1.toDateTime() ==
arg2.toDateTime()) {
2142 }
else if (
arg1.toDateTime() <
arg2.toDateTime()) {
2147 case QMetaType::Int:
2148 if (
arg1.toInt() ==
arg2.toInt()) {
2150 }
else if (
arg1.toInt() <
arg2.toInt()) {
2155 case QMetaType::Double:
2156 if (
arg1.toDouble() ==
arg2.toDouble()) {
2158 }
else if (
arg1.toDouble() <
arg2.toDouble()) {
2168 Q_ASSERT_X(0,
"QAbstractSpinBoxPrivate::variantCompare",
2183 return (compMax < 0 ?
value : max);
2192#include "moc_qabstractspinbox.cpp"
virtual QVariant valueFromText(const QString &input) const
virtual void emitSignals(EmitPolicy ep, const QVariant &old)
virtual QStyle::SubControl newHoverControl(const QPoint &pos)
static QVariant variantBound(const QVariant &min, const QVariant &value, const QVariant &max)
int spinClickTimerInterval
virtual QVariant getZeroVariant() const
virtual void setRange(const QVariant &min, const QVariant &max)
QSpinBoxValidator * validator
bool specialValue() const
static int variantCompare(const QVariant &arg1, const QVariant &arg2)
QString stripped(const QString &text, int *pos=nullptr) const
Qt::KeyboardModifier stepModifier
int spinClickThresholdTimerId
virtual void updateEdit()
QAbstractSpinBoxPrivate()
uint ignoreCursorPositionChanged
Qt::KeyboardModifiers keyboardModifiers
void _q_editorTextChanged(const QString &)
virtual void interpret(EmitPolicy ep)
QStyle::SubControl hoverControl
virtual void updateEditFieldGeometry()
QSize cachedMinimumSizeHint
virtual QString textFromValue(const QVariant &n) const
void updateState(bool up, bool fromKeyboard=false)
virtual void _q_editorCursorPositionChanged(int oldpos, int newpos)
virtual QVariant bound(const QVariant &val, const QVariant &old=QVariant(), int steps=0) const
virtual void clearCache() const
QValidator::State cachedState
void setValue(const QVariant &val, EmitPolicy ep, bool updateEdit=true)
bool updateHoverControl(const QPoint &pos)
QAbstractSpinBox::CorrectionMode correctionMode
int spinClickThresholdTimerInterval
~QAbstractSpinBoxPrivate()
virtual QVariant calculateAdaptiveDecimalStep(int steps) const
The QAbstractSpinBox class provides a spinbox and a line edit to display values.
QString specialValueText
the special-value text
void selectAll()
Selects all the text in the spinbox except the prefix and suffix.
void editingFinished()
This signal is emitted editing is finished.
void focusInEvent(QFocusEvent *event) override
\reimp
QString text
the spin box's text, including any prefix and suffix
void setButtonSymbols(ButtonSymbols bs)
void interpretText()
This function interprets the text of the spin box.
void setSpecialValueText(const QString &txt)
bool isGroupSeparatorShown() const
void hideEvent(QHideEvent *event) override
\reimp
void mouseMoveEvent(QMouseEvent *event) override
\reimp
void setCorrectionMode(CorrectionMode cm)
void changeEvent(QEvent *event) override
\reimp
void paintEvent(QPaintEvent *event) override
\reimp
void resizeEvent(QResizeEvent *event) override
\reimp
void setKeyboardTracking(bool kt)
CorrectionMode correctionMode
the mode to correct an \l{QValidator::}{Intermediate} value if editing finishes
Qt::Alignment alignment
the alignment of the spin box
ButtonSymbols buttonSymbols
the current button symbol mode
void stepUp()
Steps up by one linestep Calling this slot is analogous to calling stepBy(1);.
void mousePressEvent(QMouseEvent *event) override
\reimp
~QAbstractSpinBox()
Called when the QAbstractSpinBox is destroyed.
QAbstractSpinBox(QWidget *parent=nullptr)
Constructs an abstract spinbox with the given parent with default \l wrapping, and \l alignment prope...
virtual void fixup(QString &input) const
This virtual function is called by the QAbstractSpinBox if the input is not validated to QValidator::...
bool keyboardTracking
whether keyboard tracking is enabled for the spinbox.
void setLineEdit(QLineEdit *edit)
Sets the line edit of the spinbox to be lineEdit instead of the current line edit widget.
virtual void stepBy(int steps)
Virtual function that is called whenever the user triggers a step.
void setAlignment(Qt::Alignment flag)
void setAccelerated(bool on)
QSize minimumSizeHint() const override
\reimp
void showEvent(QShowEvent *event) override
\reimp
void stepDown()
Steps down by one linestep Calling this slot is analogous to calling stepBy(-1);.
void closeEvent(QCloseEvent *event) override
\reimp
CorrectionMode
This enum type describes the mode the spinbox will use to correct an \l{QValidator::}{Intermediate} v...
virtual void initStyleOption(QStyleOptionSpinBox *option) const
Initialize option with the values from this QSpinBox.
@ AdaptiveDecimalStepType
void keyReleaseEvent(QKeyEvent *event) override
\reimp
void timerEvent(QTimerEvent *event) override
\reimp
QLineEdit * lineEdit() const
This function returns a pointer to the line edit of the spin box.
bool isAccelerated() const
QSize sizeHint() const override
\reimp
bool event(QEvent *event) override
\reimp
void mouseReleaseEvent(QMouseEvent *event) override
\reimp
void focusOutEvent(QFocusEvent *event) override
\reimp
virtual StepEnabled stepEnabled() const
Virtual function that determines whether stepping up and down is legal at any given time.
void setGroupSeparatorShown(bool shown)
bool wrapping
whether the spin box is circular.
bool hasAcceptableInput() const
virtual void clear()
Clears the lineedit of all text but prefix and suffix.
void keyPressEvent(QKeyEvent *event) override
\reimp
QVariant inputMethodQuery(Qt::InputMethodQuery) const override
\reimp
ButtonSymbols
This enum type describes the symbols that can be displayed on the buttons in a spin box.
virtual QValidator::State validate(QString &input, int &pos) const
This virtual function is called by the QAbstractSpinBox to determine whether input is valid.
The QAction class provides an abstraction for user commands that can be added to different user inter...
The QCloseEvent class contains parameters that describe a close event.
static bool sendEvent(QObject *receiver, QEvent *event)
Sends event event directly to receiver receiver, using the notify() function.
\inmodule QtCore\reentrant
void setTime(QTime time)
Sets the time part of this datetime to time.
QTime time() const
Returns the time part of the datetime.
@ ApplicationLayoutDirectionChange
The QFocusEvent class contains event parameters for widget focus events.
\reentrant \inmodule QtGui
int horizontalAdvance(const QString &, int len=-1) const
Returns the horizontal advance in pixels of the first len characters of text.
static QStyleHints * styleHints()
Returns the application's style hints.
QString platformName
The name of the underlying platform plugin.
The QHideEvent class provides an event which is sent after a widget is hidden.
The QKeyEvent class describes a key event.
The QLineEdit widget is a one-line text editor.
int cursorPosition
the current cursor position for this line edit.
void setValidator(const QValidator *)
Sets the validator for values of line edit to v.
bool hasSelectedText
whether there is any text selected.
int selectionStart() const
Returns the index of the first selected character in the line edit or -1 if no text is selected.
QString displayText
the displayed text.
QString selectedText
the selected text.
void setCursorPosition(int)
void setText(const QString &)
void setSelection(int, int)
Selects text from position start and for length characters.
QString text
the line edit's text.
int startTimer(int interval, Qt::TimerType timerType=Qt::CoarseTimer)
This is an overloaded function that will start a timer of type timerType and a timeout of interval mi...
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
virtual void timerEvent(QTimerEvent *event)
This event handler can be reimplemented in a subclass to receive timer events for the object.
Q_WEAK_OVERLOAD void setObjectName(const QString &name)
Sets the object's name to name.
bool setProperty(const char *name, const QVariant &value)
Sets the value of the object's name property to value.
void killTimer(int id)
Kills the timer with timer identifier, id.
The QPaintEvent class contains event parameters for paint events.
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
The QResizeEvent class contains event parameters for resize events.
The QShowEvent class provides an event that is sent when a widget is shown.
Exception-safe wrapper around QObject::blockSignals().
The QSizePolicy class is a layout attribute describing horizontal and vertical resizing policy.
void fixup(QString &) const override
QSpinBoxValidator(QAbstractSpinBox *qptr, QAbstractSpinBoxPrivate *dptr)
QValidator::State validate(QString &input, int &) const override
\macro QT_RESTRICTED_CAST_FROM_ASCII
bool startsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string starts with s; otherwise returns false.
static QString fromLatin1(QByteArrayView ba)
This is an overloaded member function, provided for convenience. It differs from the above function o...
void clear()
Clears the contents of the string and makes it null.
qsizetype size() const
Returns the number of characters in this string.
QString mid(qsizetype position, qsizetype n=-1) const
Returns a string that contains n characters of this string, starting at the specified position index.
bool endsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string ends with s; otherwise returns false.
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
QString trimmed() const &
qreal keyboardAutoRepeatRateF
the rate, in events per second, in which additional repeated key presses will automatically be genera...
The QStylePainter class is a convenience class for drawing QStyle elements inside a widget.
virtual QSize sizeFromContents(ContentsType ct, const QStyleOption *opt, const QSize &contentsSize, const QWidget *w=nullptr) const =0
Returns the size of the element described by the specified option and type, based on the provided con...
@ SH_SpinBox_AnimateButton
@ SH_SpinBox_ClickAutoRepeatRate
@ SH_SpinControls_DisableOnBounds
@ SH_SpinBox_SelectOnStep
@ SH_SpinBox_StepModifier
@ SH_SpinBox_ClickAutoRepeatThreshold
@ SH_SpinBox_ButtonsInsideFrame
virtual int styleHint(StyleHint stylehint, const QStyleOption *opt=nullptr, const QWidget *widget=nullptr, QStyleHintReturn *returnData=nullptr) const =0
Returns an integer representing the specified style hint for the given widget described by the provid...
SubControl
This enum describes the available sub controls.
QTime addMSecs(int ms) const
Returns a QTime object containing a time ms milliseconds later than the time of this object (or earli...
The QValidator class provides validation of input text.
State
This enum type defines the states in which a validated string can exist.
void clear()
Convert this variant to type QMetaType::UnknownType and free up any resources used.
int toInt(bool *ok=nullptr) const
Returns the variant as an int if the variant has userType() \l QMetaType::Int, \l QMetaType::Bool,...
bool isNull() const
Returns true if this is a null variant, false otherwise.
EGLImageKHR int int EGLuint64KHR * modifiers
void textChanged(const QString &newText)
Combined button and popup list for selecting options.
@ MouseEventNotSynthesized
QVariant operator-(const QVariant &arg1, const QVariant &arg2)
QVariant operator*(const QVariant &arg1, double multiplier)
double operator/(const QVariant &arg1, const QVariant &arg2)
QVariant operator+(const QVariant &arg1, const QVariant &arg2)
static jboolean copy(JNIEnv *, jobject)
#define QDATETIMEEDIT_DATE_MIN
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
constexpr const T & qBound(const T &min, const T &val, const T &max)
constexpr const T & qMax(const T &a, const T &b)
GLboolean GLboolean GLboolean b
GLsizei const GLfloat * v
[13]
GLfloat GLfloat GLfloat w
[0]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLfloat GLfloat GLfloat GLfloat h
GLuint GLuint GLuint GLuint arg1
GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg2
GLdouble GLdouble GLdouble GLdouble q
GLenum GLenum GLenum input
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
#define Q_ASSERT_X(cond, x, msg)
#define qPrintable(string)
static QT_BEGIN_NAMESPACE QVariant hint(QPlatformIntegration::StyleHint h)
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent