7#include <qpa/qplatformtheme.h>
8#include <qpa/qplatformmenu.h>
12#if QT_CONFIG(tableview)
23#if QT_CONFIG(treeview)
29#if QT_CONFIG(proxymodel)
33#include <private/qguiapplication_p.h>
34#include <private/qhighdpiscaling_p.h>
35#include <private/qapplication_p.h>
36#include <private/qcombobox_p.h>
37#include <private/qabstractitemmodel_p.h>
38#include <private/qabstractscrollarea_p.h>
39#include <private/qlineedit_p.h>
40#if QT_CONFIG(completer)
41#include <private/qcompleter_p.h>
45# include <private/qeffects_p.h>
47#include <private/qstyle_p.h>
48#if QT_CONFIG(accessibility)
53#include <QtCore/qpointer.h>
62 duplicatesEnabled(
false),
89 menuOption.palette = resolvedpalette;
116 case QMetaType::QIcon:
117 menuOption.icon = qvariant_cast<QIcon>(
variant);
119 case QMetaType::QColor: {
125 menuOption.icon = qvariant_cast<QPixmap>(
variant);
133 menuOption.reservedShortcutWidth = 0;
134 menuOption.maxIconWidth =
option.decorationSize.width() + 4;
135 menuOption.menuRect =
option.rect;
136 menuOption.rect =
option.rect;
141 if (fontRoleData.isValid()) {
142 menuOption.font = qvariant_cast<QFont>(fontRoleData);
147 menuOption.font = mCombo->
font();
184 pressedIndex =
index.row();
188 if (
index.row() != pressedIndex)
206#if QT_CONFIG(completer)
210#if QT_CONFIG(proxymodel)
211 if (
index.isValid() &&
q->completer()) {
216 if (completerIndex.model() ==
model) {
217 row = completerIndex.row();
220 QAbstractProxyModel *completerProxy = qobject_cast<QAbstractProxyModel *>(
q->completer()->model());
221 if (completerProxy && completerProxy->sourceModel() ==
model) {
222 row = completerProxy->mapToSource(completerIndex).row();
224 QString match =
q->completer()->model()->data(completerIndex).toString();
228 q->setCurrentIndex(
row);
243 q->initStyleOption(&
opt);
244 q->update(
q->rect());
267 bool currentReset =
false;
269 const int rowCount =
q->count();
270 for (
int pos = 0;
pos < rowCount; ++
pos) {
299 q->update(lastHoverRect);
310 q->initStyleOption(&
opt);
328 const int count =
q->count();
329 const int iconWidth =
q->iconSize().width() + 4;
334 if (
q->itemIcon(
i).isNull())
341 q->initStyleOption(&
opt);
362 sh.
rwidth() = 7 * fm.horizontalAdvance(u
'x');
365 if (!
q->itemIcon(
i).isNull()) {
378 for (
int i = 0;
i <
count && !hasIcon; ++
i)
379 hasIcon = !
q->itemIcon(
i).isNull();
395 q->initStyleOption(&
opt);
410 q->initStyleOption(&
opt);
452 &&
mask().isEmpty()) {
463 :
QFrame(parent,
Qt::Popup), combo(parent)
507 layout->insertSpacing(0, 0);
514 disconnect(view, &QAbstractItemView::destroyed,
520#if QT_CONFIG(scrollbar)
521 if (view->verticalScrollBar())
539#if QT_CONFIG(scrollbar)
548 view->verticalScrollBar()->minimum() < view->verticalScrollBar()->maximum()) {
550 bool needTop = view->verticalScrollBar()->value()
551 > (view->verticalScrollBar()->minimum() +
topMargin());
552 bool needBottom = view->verticalScrollBar()->value()
595 view->removeEventFilter(
this);
596 view->viewport()->removeEventFilter(
this);
597#if QT_CONFIG(scrollbar)
603 disconnect(view, &QAbstractItemView::destroyed,
613 view->setParent(
this);
615 qobject_cast<QBoxLayout*>(
layout())->insertWidget(
top ? 2 : 0, view);
617 view->installEventFilter(
this);
618 view->viewport()->installEventFilter(
this);
622#if QT_CONFIG(scrollbar)
628 view->setMouseTracking(
true);
632 view->setLineWidth(0);
634#if QT_CONFIG(scrollbar)
640 connect(view, &QAbstractItemView::destroyed,
649 if (
const QListView *lview = qobject_cast<const QListView*>(view))
650 return lview->spacing();
651#if QT_CONFIG(tableview)
652 if (
const QTableView *tview = qobject_cast<const QTableView*>(view))
653 return tview->showGrid() ? 1 : 0;
663 QListView *lview = qobject_cast<QListView*>(view);
665 return 2 * lview->spacing();
666#if QT_CONFIG(tableview)
667 QTableView *tview = qobject_cast<QTableView*>(view);
669 return tview->showGrid() ? 1 : 0;
692 if (bottomSpacer && bottomSpacer != topSpacer)
695 boxLayout->invalidate();
722 switch (keyEvent->
key()) {
725#ifdef QT_KEYPAD_NAVIGATION
744#if QT_CONFIG(shortcut)
762 if (indexUnderMouse.isValid()
769 maybeIgnoreMouseButtonRelease =
false;
800#if QT_CONFIG(graphicsview)
1042 if (!
q->isEditable())
1052 if (!
q->isEditable())
1097 q->updateGeometry();
1109#if QT_CONFIG(accessibility)
1111 QAccessible::updateAccessibility(&
event);
1125 q->updateGeometry();
1131#if QT_CONFIG(accessibility)
1138 QAccessibleTableModelChangeEvent::ModelReset);
1139 QAccessible::updateAccessibility(&
event);
1142 q->setCurrentIndex(0);
1164 q->updateGeometry();
1195 q->initStyleOption(&
opt);
1218 if (
q->isEditable())
1246 option->state |=
d->arrowState;
1248 option->activeSubControls =
d->hoverControl;
1251 if (
d->currentIndex.isValid()) {
1252 option->currentIcon =
d->itemIcon(
d->currentIndex);
1255 option->textAlignment =
static_cast<Qt::Alignment
>(
alignment.toUInt());
1258 if (
d->container &&
d->container->isVisible())
1269 q->initStyleOption(&
opt);
1272 if (!
q->itemIcon(
q->currentIndex()).isNull()) {
1273 QRect comboRect(editRect);
1274 editRect.setWidth(editRect.width() -
q->iconSize().width() - 4);
1276 editRect.size(), comboRect);
1285#if QT_CONFIG(completer)
1300#if QT_CONFIG(completer)
1301 const auto *leCompleter =
lineEdit->completer();
1303 if (popup && popup->isVisible()) {
1309 const QModelIndex curIndex = popup->currentIndex();
1310 const bool completerIsActive = selModel && selModel->selectedIndexes().contains(curIndex);
1312 if (completerIsActive)
1318 q->setCurrentIndex(
index);
1347 q->setCurrentIndex(
index);
1365 q->setItemText(
q->currentIndex(),
text);
1367 index =
q->currentIndex() + 1;
1369 index =
q->currentIndex();
1373 for (
int i = 0;
i <
q->count(); ++
i, ++
index) {
1383 q->setCurrentIndex(
index);
1404 if (!
index.isValid())
1414 if (!
index.isValid())
1429#if QT_CONFIG(accessibility)
1431 QAccessible::updateAccessibility(&
event);
1454 d->disconnectModel();
1460 delete d->container;
1475 return d->maxVisibleItems;
1482 qWarning(
"QComboBox::setMaxVisibleItems: "
1483 "Invalid max visible items (%d) must be >= 0", maxItems);
1486 d->maxVisibleItems = maxItems;
1498 return d->model->rowCount(
d->root);
1517 qWarning(
"QComboBox::setMaxCount: Invalid count (%d) must be >= 0", max);
1521 const int rowCount =
count();
1523 d->model->removeRows(max, rowCount - max,
d->root);
1546 return d->duplicatesEnabled;
1552 d->duplicatesEnabled =
enable;
1593 return d->insertPolicy;
1615 return d->sizeAdjustPolicy;
1621 if (
policy ==
d->sizeAdjustPolicy)
1626 d->adjustComboBoxSize();
1644 return d->minimumContentsLength;
1658 d->adjustComboBoxSize();
1675 if (
d->iconSize.isValid())
1679 return QSize(iconWidth, iconWidth);
1685 if (
size ==
d->iconSize)
1718 if (
d->placeholderText.isEmpty())
1730 return d->placeholderText;
1748 return d->lineEdit !=
nullptr;
1762 q->initStyleOption(&
opt);
1764 if (force || qobject_cast<QComboBoxDelegate *>(
q->itemDelegate()))
1767 if (force || qobject_cast<QComboMenuDelegate *>(
q->itemDelegate()))
1774 if (!
index.isValid())
1793 d->viewContainer()->updateScrollers();
1801 d->viewContainer()->updateScrollers();
1805 d->lineEdit->hide();
1806 d->lineEdit->deleteLater();
1807 d->lineEdit =
nullptr;
1810 d->updateDelegate();
1811 d->updateFocusPolicy();
1813 d->viewContainer()->updateTopBottomMargin();
1830 qWarning(
"QComboBox::setLineEdit: cannot set a 0 line edit");
1834 if (
edit ==
d->lineEdit)
1844 if (
d->lineEdit->parent() !=
this)
1845 d->lineEdit->setParent(
this);
1858 d->lineEdit->setFrame(
false);
1860 d->updateFocusPolicy();
1861 d->lineEdit->setFocusProxy(
this);
1864#if QT_CONFIG(completer)
1866 if (!
d->lineEdit->completer()) {
1872#ifdef QT_KEYPAD_NAVIGATION
1876 if (QApplicationPrivate::keypadNavigationEnabled())
1885 d->updateLayoutDirection();
1886 d->updateLineEditGeometry();
1888 d->lineEdit->show();
1905#ifndef QT_NO_VALIDATOR
1918 d->lineEdit->setValidator(
v);
1930 return d->lineEdit ?
d->lineEdit->validator() :
nullptr;
1934#if QT_CONFIG(completer)
1954 qWarning(
"Setting a QCompleter on non-editable QComboBox is not allowed.");
1957 d->lineEdit->setCompleter(
c);
1960 d, &QComboBoxPrivate::completerActivated);
1976 return d->lineEdit ?
d->lineEdit->completer() :
nullptr;
2009 qWarning(
"QComboBox::setItemDelegate: cannot set a 0 delegate");
2043 qWarning(
"QComboBox::setModel: cannot set a 0 model");
2050#if QT_CONFIG(completer)
2051 if (
d->lineEdit &&
d->lineEdit->completer())
2052 d->lineEdit->completer()->setModel(
model);
2054 d->disconnectModel();
2055 if (
d->model &&
d->model->QObject::parent() ==
this) {
2063 d->container->itemView()->setModel(
model);
2073 d->trySetValidIndex();
2147 return d->currentIndex.row();
2154 d->setCurrentIndex(mi);
2183#if QT_CONFIG(completer)
2185 lineEdit->completer()->setCompletionPrefix(newText);
2196 if (modelResetToEmpty)
2199 if (indexChanged || modelResetToEmpty) {
2203 if (
auto *
model =
q->view()->selectionModel())
2229 return d->lineEdit->text();
2230 if (
d->currentIndex.isValid())
2231 return d->itemText(
d->currentIndex);
2246 return d->currentIndex.data(role);
2256 return d->itemText(mi);
2266 return d->itemIcon(mi);
2277 return d->model->data(mi, role);
2309 int itemCount =
count();
2311 if (
index >=
d->maxCount)
2323 d->inserting =
true;
2324 if (
d->model->insertRows(
index, 1,
d->root)) {
2329 QMap<int, QVariant>
values;
2335 d->inserting =
false;
2339 d->inserting =
false;
2343 if (itemCount >
d->maxCount)
2344 d->model->removeRows(itemCount - 1, itemCount -
d->maxCount,
d->root);
2364 if (insertCount <= 0)
2369 QList<QStandardItem *>
items;
2372 for (
int i = 0;
i < insertCount; ++
i)
2376 d->inserting =
true;
2377 if (
d->model->insertRows(
index, insertCount,
d->root)) {
2379 for (
int i = 0;
i < insertCount; ++
i) {
2383 d->inserting =
false;
2384 d->rowsInserted(
d->root,
index,
index + insertCount - 1);
2386 d->inserting =
false;
2391 if (mc >
d->maxCount)
2392 d->model->removeRows(
d->maxCount, mc -
d->maxCount,
d->root);
2409 int itemCount =
count();
2411 if (
index >=
d->maxCount)
2426 if (index < 0 || index >=
count())
2428 d->model->removeRows(
index, 1,
d->root);
2438 if (
item.isValid()) {
2450 if (
item.isValid()) {
2463 if (
item.isValid()) {
2490 qWarning(
"QComboBox::setView: cannot set a 0 view");
2494 if (itemView->
model() !=
d->model) {
2495 d->disconnectModel();
2499 d->viewContainer()->setItemView(itemView);
2508 return d->recomputeSizeHint(
d->minimumSizeHint);
2521 return d->recomputeSizeHint(
d->sizeHint);
2525void QComboBoxPrivate::cleanupNativePopup()
2527 if (!m_platformMenu)
2530 m_platformMenu->setVisible(
false);
2531 int count = int(m_platformMenu->tag());
2533 m_platformMenu->menuItemAt(
i)->deleteLater();
2535 delete m_platformMenu;
2536 m_platformMenu =
nullptr;
2545bool QComboBoxPrivate::showNativePopup()
2549 cleanupNativePopup();
2553 if (!m_platformMenu)
2556 int itemsCount =
q->count();
2557 m_platformMenu->setTag(
quintptr(itemsCount));
2562 for (
int i = 0;
i < itemsCount; ++
i) {
2566 item->setText(textVariant.toString());
2568 const Qt::ItemFlags itemFlags =
model->
flags(rowIndex);
2569 if (iconVariant.canConvert<
QIcon>())
2570 item->setIcon(iconVariant.value<
QIcon>());
2571 item->setCheckable(
true);
2580 m_platformMenu->insertMenuItem(
item, 0);
2581 m_platformMenu->syncMenuItem(
item);
2584 QWindow *tlw =
q->window()->windowHandle();
2585 m_platformMenu->setFont(
q->font());
2593 [[maybe_unused]] QPointer<QComboBox> guard(
q);
2638 &&
d->showNativePopup())
2648 int belowHeight =
screen.bottom() - below.
y();
2650 int aboveHeight = above.
y() -
screen.y();
2652 const auto listView = qobject_cast<QListView *>(
d->viewContainer()->itemView());
2657 QStack<QModelIndex> toCheck;
2658 toCheck.push(
view()->rootIndex());
2659#if QT_CONFIG(treeview)
2661 if (treeView && treeView->
header() && !treeView->
header()->isHidden())
2662 listHeight += treeView->
header()->height();
2664 while (!toCheck.isEmpty()) {
2673#if QT_CONFIG(treeview)
2674 if (
d->model->hasChildren(idx) && treeView && treeView->
isExpanded(idx))
2678 if (!usePopup &&
count >=
d->maxVisibleItems) {
2686 listRect.setHeight(listHeight);
2695 heightMargin += cm.
top() + cm.bottom();
2699 heightMargin += vm.top() + vm.bottom();
2703 listRect.setHeight(listRect.height() + heightMargin);
2712 const int diff =
d->computeWidthHint() -
width();
2714 listRect.setWidth(listRect.width() + diff);
2720 listRect.setSize( listRect.size().expandedTo(container->
minimumSize())
2724 if (boundToScreen) {
2725 if (listRect.width() >
screen.width() )
2726 listRect.setWidth(
screen.width());
2739 listRect.moveLeft(above.
x());
2750 const int offset = listRect.top() - currentItemRect.top();
2751 listRect.moveTop(above.
y() +
offset - listRect.top());
2756 const int height = !boundToScreen ? listRect.height() :
qMin(listRect.height(),
screen.height());
2757 listRect.setHeight(
height);
2759 if (boundToScreen) {
2760 if (listRect.top() <
screen.top())
2761 listRect.moveTop(
screen.top());
2762 if (listRect.bottom() >
screen.bottom())
2763 listRect.moveBottom(
screen.bottom());
2765 }
else if (!boundToScreen || listRect.height() <= belowHeight) {
2766 listRect.moveTopLeft(below);
2767 }
else if (listRect.height() <= aboveHeight) {
2768 listRect.moveBottomLeft(above);
2769 }
else if (belowHeight >= aboveHeight) {
2770 listRect.setHeight(belowHeight);
2771 listRect.moveTopLeft(below);
2773 listRect.setHeight(aboveHeight);
2774 listRect.moveBottomLeft(above);
2782 const auto needHorizontalScrollBar = [
this, sb]{
2785 && sb->minimum() < sb->maximum();
2787 const bool neededHorizontalScrollBar = needHorizontalScrollBar();
2788 if (neededHorizontalScrollBar)
2789 listRect.adjust(0, 0, 0, sb->height());
2801#if QT_CONFIG(effects)
2802 bool scrollDown = (listRect.topLeft() == below);
2821 QScreen *currentScreen =
d->associatedScreen();
2822 if (currentScreen && !currentScreen->virtualSiblings().contains(containerWindow->screen())) {
2823 containerWindow->setScreen(currentScreen);
2832 if (!neededHorizontalScrollBar && needHorizontalScrollBar()) {
2833 listRect.adjust(0, 0, 0, sb->height());
2851 container->popupTimer.
start();
2852 container->maybeIgnoreMouseButtonRelease =
true;
2871 d->hidingPopup =
true;
2874 d->hidingPopup =
false;
2877 if (!
d->container || !
d->container->isVisible())
2880#if QT_CONFIG(effects)
2882 ?
d->container->itemView()->selectionModel() :
nullptr;
2889 QSignalBlocker modelBlocker(d->model);
2890 QSignalBlocker viewBlocker(d->container->itemView());
2891 QSignalBlocker containerBlocker(d->container);
2894 selectionModel->select(selection, QItemSelectionModel::Toggle);
2895 QTimer::singleShot(60, d->container, [d, selection, selectionModel]{
2896 QSignalBlocker modelBlocker(d->model);
2897 QSignalBlocker viewBlocker(d->container->itemView());
2898 QSignalBlocker containerBlocker(d->container);
2899 selectionModel->select(selection, QItemSelectionModel::Toggle);
2900 QTimer::singleShot(20, d->container, [d] {
2926 emit q_func()->currentTextChanged(
text);
2938 d->model->removeRows(0,
d->model->rowCount(
d->root),
d->root);
2939#if QT_CONFIG(accessibility)
2941 QAccessible::updateAccessibility(&
event);
2952 d->lineEdit->clear();
2953#if QT_CONFIG(accessibility)
2955 QAccessible::updateAccessibility(&
event);
2966 d->lineEdit->setText(
text);
2967#if QT_CONFIG(accessibility)
2968 QAccessibleValueChangeEvent
event(
this,
text);
2969 QAccessible::updateAccessibility(&
event);
2981 d->lineEdit->event(e);
2982#if QT_CONFIG(completer)
2983 if (
d->lineEdit->completer())
2984 d->lineEdit->completer()->setWidget(
this);
2997 d->lineEdit->event(e);
3004 switch (e->
type()) {
3007 d->container->updateStyleSettings();
3008 d->updateDelegate();
3014 d->minimumSizeHint =
QSize();
3015 d->updateLayoutDirection();
3017 d->updateLineEditGeometry();
3039 d->updateViewContainerPaletteAndOpacity();
3044 d->viewContainer()->setFont(
font());
3045 d->viewContainer()->itemView()->doItemsLayout();
3047 d->updateLineEditGeometry();
3062 d->updateLineEditGeometry();
3097 d->shownOnce =
true;
3115 switch(
event->type()) {
3118 d->updateLayoutDirection();
3119 d->updateLineEditGeometry();
3125 d->updateHoverControl(he->position().toPoint());
3129 return d->lineEdit->event(
event);
3131#ifdef QT_KEYPAD_NAVIGATION
3132 case QEvent::EnterEditFocus:
3134 d->lineEdit->event(
event);
3136 case QEvent::LeaveEditFocus:
3138 d->lineEdit->event(
event);
3154 d->showPopupFromMouseEvent(e);
3161 q->initStyleOption(&
opt);
3170#ifdef QT_KEYPAD_NAVIGATION
3180 QPointer<QComboBox> guard =
q;
3192#ifdef QT_KEYPAD_NAVIGATION
3210 d->showPopupFromMouseEvent(e);
3220#if QT_CONFIG(completer)
3223 if (popup && popup->isVisible()) {
3225 d->lineEdit->event(e);
3231 enum Move { NoMove=0 , MoveUp , MoveDown , MoveFirst , MoveLast};
3236 bool pressLikeButton = !
d->lineEdit;
3237#ifdef QT_KEYPAD_NAVIGATION
3238 pressLikeButton |= QApplicationPrivate::keypadNavigationEnabled() && !hasEditFocus();
3241 if (pressLikeButton) {
3244 .value<QList<Qt::Key>>();
3245 if (buttonPressKeys.contains(
key)) {
3257#ifdef QT_KEYPAD_NAVIGATION
3258 if (QApplicationPrivate::keypadNavigationEnabled())
3272#ifdef QT_KEYPAD_NAVIGATION
3273 if (QApplicationPrivate::keypadNavigationEnabled())
3299#ifdef QT_KEYPAD_NAVIGATION
3302 if (QApplicationPrivate::keypadNavigationEnabled() && !hasEditFocus())
3306 if (QApplicationPrivate::keypadNavigationEnabled()) {
3307 if (!hasEditFocus() || !
d->lineEdit)
3315#if QT_CONFIG(shortcut)
3325 d->keyboardSearchString(
text);
3331 const int rowCount =
count();
3333 if (move != NoMove) {
3341 while (newIndex < rowCount && !(
d->model->index(newIndex,
d->modelColumn,
d->root).flags() &
Qt::ItemIsEnabled))
3345 newIndex = rowCount;
3349 while ((newIndex >= 0) && !(
d->model->flags(
d->model->index(newIndex,
d->modelColumn,
d->root)) &
Qt::ItemIsEnabled))
3357 if (newIndex >= 0 && newIndex < rowCount && newIndex !=
currentIndex()) {
3359 d->emitActivated(
d->currentIndex);
3361 }
else if (
d->lineEdit) {
3362 d->lineEdit->event(e);
3374 d->lineEdit->event(e);
3382#if QT_CONFIG(wheelevent)
3383void QComboBox::wheelEvent(QWheelEvent *e)
3387 initStyleOption(&
opt);
3389 !
d->viewContainer()->isVisible()) {
3390 const int rowCount =
count();
3392 int delta = e->angleDelta().y();
3396 while ((newIndex >= 0) && !(
d->model->flags(
d->model->index(newIndex,
d->modelColumn,
d->root)) &
Qt::ItemIsEnabled))
3398 }
else if (delta < 0) {
3400 while (newIndex < rowCount && !(
d->model->index(newIndex,
d->modelColumn,
d->root).flags() &
Qt::ItemIsEnabled))
3404 if (newIndex >= 0 && newIndex < rowCount && newIndex !=
currentIndex()) {
3406 d->emitActivated(
d->currentIndex);
3413#ifndef QT_NO_CONTEXTMENU
3423 d->lineEdit->event(e);
3424 d->lineEdit->setContextMenuPolicy(
p);
3434 int currentRow =
view->currentIndex().row();
3436 if (currentRow !=
view->currentIndex().row()) {
3449 q->updateGeometry();
3460 d->lineEdit->event(e);
3476 return d->lineEdit->inputMethodQuery(
query);
3560 return d->modelColumn;
3566 d->modelColumn = visibleColumn;
3567 QListView *lv = qobject_cast<QListView *>(
d->viewContainer()->itemView());
3569 lv->setModelColumn(visibleColumn);
3570#if QT_CONFIG(completer)
3571 if (
d->lineEdit &&
d->lineEdit->completer())
3572 d->lineEdit->completer()->setCompletionColumn(visibleColumn);
3579#include "moc_qcombobox.cpp"
3580#include "moc_qcombobox_p.cpp"
The QAbstractItemDelegate class is used to display and edit data items from a model.
static QAbstractItemModel * staticEmptyModel()
void modelAboutToBeReset(QPrivateSignal)
void rowsAboutToBeInserted(const QModelIndex &parent, int first, int last, QPrivateSignal)
This signal is emitted just before rows are inserted into the model.
virtual Q_INVOKABLE Qt::ItemFlags flags(const QModelIndex &index) const
Returns the item flags for the given index.
void modelReset(QPrivateSignal)
void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList< int > &roles=QList< int >())
This signal is emitted whenever the data in an existing item changes.
virtual Q_INVOKABLE int rowCount(const QModelIndex &parent=QModelIndex()) const =0
Returns the number of rows under the given parent.
virtual Q_INVOKABLE bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
Sets the role data for the item at index to value.
void rowsAboutToBeRemoved(const QModelIndex &parent, int first, int last, QPrivateSignal)
This signal is emitted just before rows are removed from the model.
void rowsInserted(const QModelIndex &parent, int first, int last, QPrivateSignal)
This signal is emitted after rows have been inserted into the model.
virtual Q_INVOKABLE QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const =0
Returns the data stored under the given role for the item referred to by the index.
virtual Q_INVOKABLE QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const =0
Returns the index of the item in the model specified by the given row, column and parent index.
void rowsRemoved(const QModelIndex &parent, int first, int last, QPrivateSignal)
This signal is emitted after rows have been removed from the model.
The QAbstractItemView class provides the basic functionality for item view classes.
virtual QRect visualRect(const QModelIndex &index) const =0
Returns the rectangle on the viewport occupied by the item at index.
void setEditTriggers(EditTriggers triggers)
QAbstractItemModel * model() const
Returns the model that this view is presenting.
void setCurrentIndex(const QModelIndex &index)
Sets the current item to be the item at index.
void setTextElideMode(Qt::TextElideMode mode)
void setItemDelegate(QAbstractItemDelegate *delegate)
Sets the item delegate for this view and its model to delegate.
QModelIndex currentIndex() const
Returns the model index of the current item.
virtual void setModel(QAbstractItemModel *model)
Sets the model for the view to present.
virtual void setRootIndex(const QModelIndex &index)
Sets the root item to the item at the given index.
void setIconSize(const QSize &size)
virtual void scrollTo(const QModelIndex &index, ScrollHint hint=EnsureVisible)=0
Scrolls the view if necessary to ensure that the item at index is visible.
QAbstractItemDelegate * itemDelegate() const
Returns the item delegate used by this view and model.
QItemSelectionModel * selectionModel() const
Returns the current selection model.
virtual QModelIndex indexAt(const QPoint &point) const =0
Returns the model index of the item at the viewport coordinates point.
void setSelectionMode(QAbstractItemView::SelectionMode mode)
The QAbstractProxyModel class provides a base class for proxy item models that can do sorting,...
void valueChanged(int value)
This signal is emitted when the slider value has changed, with the new slider value as argument.
SliderAction
\value SliderNoAction \value SliderSingleStepAdd \value SliderSingleStepSub \value SliderPageStepAdd ...
void rangeChanged(int min, int max)
This signal is emitted when the slider range has changed, with min being the new minimum,...
Qt::ItemFlags flags(const QModelIndex &index) const override
\reimp
static bool isEffectEnabled(Qt::UIEffect)
Returns true if effect is enabled; otherwise returns false.
static QPalette palette()
Returns the current application palette.
int doubleClickInterval
the time limit in milliseconds that distinguishes a double click from two consecutive mouse clicks
void start(int msec, QObject *obj)
\obsolete Use chrono overload instead.
int timerId() const noexcept
Returns the timer's ID.
void stop()
Stops the timer.
The QBoxLayout class lines up child widgets horizontally or vertically.
static bool isSeparator(const QModelIndex &index)
static void setSeparator(QAbstractItemModel *model, const QModelIndex &index)
void updateStyleSettings()
QPoint initialClickPosition
void mousePressEvent(QMouseEvent *e) override
This event handler, for event event, can be reimplemented in a subclass to receive mouse press events...
QAbstractItemView * itemView() const
QBasicTimer adjustSizeTimer
int spacing() const
Returns the spacing between the items in the view.
void scrollItemView(int action)
void mouseReleaseEvent(QMouseEvent *e) override
This event handler, for event event, can be reimplemented in a subclass to receive mouse release even...
void showEvent(QShowEvent *e) override
This event handler can be reimplemented in a subclass to receive widget show events which are passed ...
void itemSelected(const QModelIndex &)
QTimer blockMouseReleaseTimer
void hideEvent(QHideEvent *e) override
This event handler can be reimplemented in a subclass to receive widget hide events.
int topMargin() const
Returns the top/bottom vertical margin of the view.
void timerEvent(QTimerEvent *timerEvent) override
This event handler can be reimplemented in a subclass to receive timer events for the object.
void updateTopBottomMargin()
void setItemView(QAbstractItemView *itemView)
Sets the item view to be used for the combobox popup.
QComboBoxPrivateContainer(QAbstractItemView *itemView, QComboBox *parent)
void resizeEvent(QResizeEvent *e) override
This event handler can be reimplemented in a subclass to receive widget resize events which are passe...
bool eventFilter(QObject *o, QEvent *e) override
Filters events if this object has been installed as an event filter for the watched object.
void changeEvent(QEvent *e) override
This event handler can be reimplemented to handle state changes.
QStyleOptionComboBox comboStyleOption() const
~QComboBoxPrivateContainer()
void paintEvent(QPaintEvent *e) override
This event handler can be reimplemented in a subclass to receive paint events passed in event.
QPointer< QComboBoxPrivateContainer > container
void rowsRemoved(const QModelIndex &parent, int start, int end)
void emitActivated(const QModelIndex &index)
QComboBox::InsertPolicy insertPolicy
QComboBoxPrivateContainer * viewContainer()
void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)
void emitHighlighted(const QModelIndex &index)
QStyle::SubControl hoverControl
void keyboardSearchString(const QString &text)
void updateViewContainerPaletteAndOpacity()
QPersistentModelIndex currentIndex
QStyle::SubControl newHoverControl(const QPoint &pos)
QIcon itemIcon(const QModelIndex &index) const
QSize recomputeSizeHint(QSize &sh) const
void showPopupFromMouseEvent(QMouseEvent *e)
QPersistentModelIndex root
Qt::MatchFlags matchFlags() const
void emitCurrentIndexChanged(const QModelIndex &index)
std::array< QMetaObject::Connection, 8 > modelConnections
int computeWidthHint() const
void rowsInserted(const QModelIndex &parent, int start, int end)
void setCurrentIndex(const QModelIndex &index)
int minimumContentsLength
QRect popupGeometry(const QPoint &globalPos) const
void updateArrow(QStyle::StateFlag state)
QAbstractItemModel * model
QComboBox::SizeAdjustPolicy sizeAdjustPolicy
QString itemText(const QModelIndex &index) const
void updateDelegate(bool force=false)
void adjustComboBoxSize()
QStyle::StateFlag arrowState
bool updateHoverControl(const QPoint &pos)
void updateCurrentText(const QString &text)
void itemSelected(const QModelIndex &item)
void updateLineEditGeometry()
void updateIndexBeforeChange()
void updateLayoutDirection()
The QComboBox widget combines a button with a dropdown list.
SizeAdjustPolicy sizeAdjustPolicy
the policy describing how the size of the combobox changes when the content changes.
void removeItem(int index)
Removes the item at the given index from the combobox.
void showEvent(QShowEvent *e) override
\reimp
InsertPolicy
This enum specifies what the QComboBox should do when a new string is entered by the user.
void setInsertPolicy(InsertPolicy policy)
int maxCount
the maximum number of items allowed in the combobox.
QComboBox(QWidget *parent=nullptr)
Constructs a combobox with the given parent, using the default model QStandardItemModel.
void setModelColumn(int visibleColumn)
int modelColumn
the column in the model that is visible.
QLineEdit * lineEdit() const
Returns the line edit used to edit items in the combobox, or \nullptr if there is no line edit.
QString itemText(int index) const
Returns the text for the given index in the combobox.
void setMinimumContentsLength(int characters)
virtual void initStyleOption(QStyleOptionComboBox *option) const
Initialize option with the values from this QComboBox.
int findData(const QVariant &data, int role=Qt::UserRole, Qt::MatchFlags flags=static_cast< Qt::MatchFlags >(Qt::MatchExactly|Qt::MatchCaseSensitive)) const
Returns the index of the item containing the given data for the given role; otherwise returns -1.
void setMaxCount(int max)
void setDuplicatesEnabled(bool enable)
SizeAdjustPolicy
This enum specifies how the size hint of the QComboBox should adjust when new content is added or con...
@ AdjustToMinimumContentsLengthWithIcon
@ AdjustToContentsOnFirstShow
void insertItem(int index, const QString &text, const QVariant &userData=QVariant())
Inserts the text and userData (stored in the Qt::UserRole) into the combobox at the given index.
QAbstractItemView * view() const
Returns the list view used for the combobox popup.
void setItemDelegate(QAbstractItemDelegate *delegate)
Sets the item delegate for the popup list view.
void mouseReleaseEvent(QMouseEvent *e) override
\reimp
int minimumContentsLength
the minimum number of characters that should fit into the combobox.
bool editable
whether the combo box can be edited by the user.
const QValidator * validator() const
Returns the validator that is used to constrain text input for the combobox.
QString placeholderText
Sets a placeholderText text shown when no valid index is set.
int count
the number of items in the combobox.
bool event(QEvent *event) override
\reimp
void editTextChanged(const QString &)
This signal is emitted when the text in the combobox's line edit widget is changed.
void currentTextChanged(const QString &)
QAbstractItemDelegate * itemDelegate() const
Returns the item delegate used by the popup list view.
virtual void hidePopup()
Hides the list of items in the combobox if it is currently visible and resets the internal state,...
void hideEvent(QHideEvent *e) override
\reimp
InsertPolicy insertPolicy
the policy used to determine where user-inserted items should appear in the combobox.
void setMaxVisibleItems(int maxItems)
void insertItems(int index, const QStringList &texts)
Inserts the strings from the list into the combobox as separate items, starting at the index specifie...
void clearEditText()
Clears the contents of the line edit used for editing in the combobox.
virtual void setModel(QAbstractItemModel *model)
Sets the model to be model.
QModelIndex rootModelIndex() const
Returns the root model item index for the items in the combobox.
void inputMethodEvent(QInputMethodEvent *) override
\reimp
void keyPressEvent(QKeyEvent *e) override
\reimp
void setView(QAbstractItemView *itemView)
Sets the view to be used in the combobox popup to the given itemView.
void paintEvent(QPaintEvent *e) override
\reimp
void clear()
Clears the combobox, removing all items.
int maxVisibleItems
the maximum allowed size on screen of the combo box, measured in items
void resizeEvent(QResizeEvent *e) override
\reimp
void setIconSize(const QSize &size)
void keyReleaseEvent(QKeyEvent *e) override
\reimp
QString currentText
the current text
bool duplicatesEnabled
whether the user can enter duplicate items into the combobox.
void setEditText(const QString &text)
Sets the text in the combobox's text edit.
void setLineEdit(QLineEdit *edit)
Sets the line edit to use instead of the current line edit widget.
void setRootModelIndex(const QModelIndex &index)
Sets the root model item index for the items in the combobox.
QSize minimumSizeHint() const override
\reimp
QSize sizeHint() const override
\reimp
void setItemIcon(int index, const QIcon &icon)
Sets the icon for the item on the given index in the combobox.
void focusOutEvent(QFocusEvent *e) override
\reimp
QVariant itemData(int index, int role=Qt::UserRole) const
Returns the data for the given role in the given index in the combobox, or an invalid QVariant if the...
void changeEvent(QEvent *e) override
\reimp
void setSizeAdjustPolicy(SizeAdjustPolicy policy)
QAbstractItemModel * model() const
Returns the model used by the combobox.
void insertSeparator(int index)
void mousePressEvent(QMouseEvent *e) override
\reimp
int findText(const QString &text, Qt::MatchFlags flags=static_cast< Qt::MatchFlags >(Qt::MatchExactly|Qt::MatchCaseSensitive)) const
Returns the index of the item containing the given text; otherwise returns -1.
void setItemText(int index, const QString &text)
Sets the text for the item on the given index in the combobox.
void contextMenuEvent(QContextMenuEvent *e) override
\reimp
int currentIndex
the index of the current item in the combobox.
QVariant currentData
the data for the current item
virtual void showPopup()
Displays the list of items in the combobox.
void focusInEvent(QFocusEvent *e) override
\reimp
void setItemData(int index, const QVariant &value, int role=Qt::UserRole)
Sets the data role for the item on the given index in the combobox to the specified value.
QSize iconSize
the size of the icons shown in the combobox.
void setCurrentText(const QString &text)
QIcon itemIcon(int index) const
Returns the icon for the given index in the combobox.
void setValidator(const QValidator *v)
Sets the validator to use instead of the current validator.
void setEditable(bool editable)
~QComboBox()
Destroys the combobox.
void setPlaceholderText(const QString &placeholderText)
QVariant inputMethodQuery(Qt::InputMethodQuery) const override
\reimp
void setCurrentIndex(int index)
static QCompleterPrivate * get(QCompleter *o)
The QCompleter class provides completions based on an item model.
void setCompletionColumn(int column)
@ UnfilteredPopupCompletion
void setCompletionMode(CompletionMode mode)
void setCaseSensitivity(Qt::CaseSensitivity caseSensitivity)
void activated(const QString &text)
This signal is sent when an item in the popup() is activated by the user (by clicking or pressing ret...
static bool sendEvent(QObject *receiver, QEvent *event)
Sends event event directly to receiver receiver, using the notify() function.
qint64 elapsed() const noexcept
Returns the number of milliseconds since this QElapsedTimer was last started.
void start() noexcept
\typealias QElapsedTimer::Duration Synonym for std::chrono::nanoseconds.
@ ApplicationLayoutDirectionChange
Type type() const
Returns the event type.
void ignore()
Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).
void accept()
Sets the accept flag of the event object, the equivalent of calling setAccepted(true).
The QFocusEvent class contains event parameters for widget focus events.
\reentrant \inmodule QtGui
qreal height() const
Returns the height of the font.
\reentrant \inmodule QtGui
int horizontalAdvance(const QString &, int len=-1) const
Returns the horizontal advance in pixels of the first len characters of text.
The QFrame class is the base class of widgets that can have a frame.
void setFrameStyle(int)
Sets the frame style to style.
void paintEvent(QPaintEvent *) override
\reimp
void changeEvent(QEvent *) override
\reimp
void setData(int key, const QVariant &value)
Sets this item's custom data for the key key to value.
void setEnabled(bool enabled)
If enabled is true, the item is enabled; otherwise, it is disabled.
static QGuiApplicationPrivate * instance()
static QPlatformTheme * platformTheme()
static QStyleHints * styleHints()
Returns the application's style hints.
static QInputMethod * inputMethod()
returns the input method.
T value(const Key &key) const noexcept
The QHideEvent class provides an event which is sent after a widget is hidden.
The QIcon class provides scalable icons in different modes and states.
bool isNull() const
Returns true if the icon is empty; otherwise returns false.
void currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
This signal is emitted whenever the current item changes.
The QKeyEvent class describes a key event.
Qt::KeyboardModifiers modifiers() const
Returns the keyboard modifier flags that existed immediately after the event occurred.
QString text() const
Returns the Unicode text that this key generated.
int key() const
Returns the code of the key that was pressed or released.
void addWidget(QWidget *w)
Adds widget w to this layout in a manner specific to the layout.
virtual void setSpacing(int)
bool activate()
Redoes the layout for parentWidget() if necessary.
void setContentsMargins(int left, int top, int right, int bottom)
The QLineEdit widget is a one-line text editor.
void selectionChanged()
This signal is emitted whenever the selection changes.
bool event(QEvent *) override
\reimp
void returnPressed()
This signal is emitted when the Return or Enter key is used.
void cursorPositionChanged(int, int)
This signal is emitted whenever the cursor moves.
void selectAll()
Selects all the text (highlights it) and moves the cursor to the end.
void end(bool mark)
Moves the text cursor to the end of the line unless it is already there.
void textChanged(const QString &)
This signal is emitted whenever the text changes.
void setText(const QString &)
void editingFinished()
This signal is emitted when the Return or Enter key is used, or if the line edit loses focus and its ...
void deselect()
Deselects any selected text.
QString text
The line edit's text.
The QListView class provides a list or icon view onto a model.
bool isRowHidden(int row) const
Returns true if the row is hidden; otherwise returns false.
qsizetype size() const noexcept
bool isEmpty() const noexcept
const_reference at(qsizetype i) const noexcept
void reserve(qsizetype size)
void append(parameter_type t)
constexpr int top() const noexcept
Returns the top margin.
constexpr int row() const noexcept
Returns the row this model index refers to.
QModelIndex parent() const
Returns the parent of the model index, or QModelIndex() if it has no parent.
constexpr const QAbstractItemModel * model() const noexcept
Returns a pointer to the model containing the item that this index refers to.
Qt::ItemFlags flags() const
constexpr bool isValid() const noexcept
Returns {true} if this model index is valid; otherwise returns {false}.
QModelIndex sibling(int row, int column) const
Returns the sibling at row and column.
static QObjectPrivate * get(QObject *o)
static QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiverPrivate, Func2 slot, Qt::ConnectionType type=Qt::AutoConnection)
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...
QObject * parent() const
Returns a pointer to the parent object.
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
virtual bool eventFilter(QObject *watched, QEvent *event)
Filters events if this object has been installed as an event filter for the watched object.
static bool disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *member)
\threadsafe
void destroyed(QObject *=nullptr)
This signal is emitted immediately before the object obj is destroyed, after any instances of QPointe...
The QPaintEvent class contains event parameters for paint events.
The QPainter class performs low-level painting on widgets and other paint devices.
void setPen(const QColor &color)
This is an overloaded member function, provided for convenience. It differs from the above function o...
The QPalette class contains color groups for each widget state.
void setBrush(ColorRole cr, const QBrush &brush)
Sets the brush for the given color role to the specified brush for all groups in the palette.
QPalette resolve(const QPalette &other) const
Returns a new QPalette that is a union of this instance and other.
const QBrush & placeholderText() const
bool isValid() const
Returns {true} if this persistent model index is valid; otherwise returns {false}.
int row() const
Returns the row this persistent model index refers to.
Returns a copy of the pixmap that is transformed using the given transformation transform and transfo...
constexpr qreal x() const noexcept
Returns the x coordinate of this point.
constexpr QPoint toPoint() const
Rounds the coordinates of this point to the nearest integer, and returns a QPoint object with the rou...
\inmodule QtCore\reentrant
constexpr int x() const noexcept
Returns the x coordinate of this point.
constexpr int y() const noexcept
Returns the y coordinate of this point.
constexpr void setX(int x) noexcept
Sets the x coordinate of this point to the given x coordinate.
\inmodule QtCore\reentrant
The QResizeEvent class contains event parameters for resize events.
The QScreen class is used to query screen properties. \inmodule QtGui.
The QShowEvent class provides an event that is sent when a widget is shown.
QPointF globalPosition() const
Returns the position of the point in this event on the screen or virtual desktop.
QPointF position() const
Returns the position of the point in this event, relative to the widget or item that received the eve...
Qt::MouseButton button() const
Returns the button that caused the event.
The QSizePolicy class is a layout attribute describing horizontal and vertical resizing policy.
constexpr int height() const noexcept
Returns the height.
constexpr int width() const noexcept
Returns the width.
constexpr void setWidth(int w) noexcept
Sets the width to the given width.
constexpr int & rwidth() noexcept
Returns a reference to the width.
constexpr void setHeight(int h) noexcept
Sets the height to the given height.
constexpr bool isValid() const noexcept
Returns true if both the width and height is equal to or greater than 0; otherwise returns false.
The QSpacerItem class provides blank space in a layout.
QSpacerItem * spacerItem() override
Returns a pointer to this object.
void changeSize(int w, int h, QSizePolicy::Policy hData=QSizePolicy::Minimum, QSizePolicy::Policy vData=QSizePolicy::Minimum)
Changes this spacer item to have preferred width w, preferred height h, horizontal size policy hPolic...
The QStandardItemModel class provides a generic model for storing custom data.
The QStandardItem class provides an item for use with the QStandardItemModel class.
\macro QT_RESTRICTED_CAST_FROM_ASCII
bool isEmpty() const noexcept
Returns true if the string has no characters; otherwise returns false.
bool isNull() const
Returns true if this string is null; otherwise returns false.
const QChar at(qsizetype i) const
Returns the character at the given index position in the string.
QString toLower() const &
The QStyleHintReturnMask class provides style hints that return a QRegion.
\variable QStyleOptionToolButton::features
The QStyleOption class stores the parameters used by QStyle functions.
void initFrom(const QWidget *w)
The QStylePainter class is a convenience class for drawing QStyle elements inside a widget.
static bool useFullScreenForPopup()
The QStyle class is an abstract base class that encapsulates the look and feel of a GUI.
StateFlag
This enum describes flags that are used when drawing primitive elements.
virtual QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc, const QWidget *widget=nullptr) const =0
Returns the rectangle containing the specified subControl of the given complex control (with the styl...
@ SH_ComboBox_ListMouseTracking
@ SH_ComboBox_UseNativePopup
@ SH_Menu_FlashTriggeredItem
@ SH_ComboBox_PopupFrameStyle
@ SH_ComboBox_LayoutDirection
@ SH_ComboBox_AllowWheelScrolling
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...
static QRect alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle)
Returns a new rectangle of the specified size that is aligned to the given rectangle according to the...
virtual SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, const QPoint &pt, const QWidget *widget=nullptr) const =0
Returns the sub control at the given position in the given complex control (with the style options sp...
virtual int pixelMetric(PixelMetric metric, const QStyleOption *option=nullptr, const QWidget *widget=nullptr) const =0
Returns the value of the given pixel metric.
virtual void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *w=nullptr) const =0
Draws the given primitive element with the provided painter using the style options specified by opti...
SubControl
This enum describes the available sub controls.
@ SC_ComboBoxListBoxPopup
The QTableView class provides a default model/view implementation of a table view.
void setSingleShot(bool singleShot)
void start(int msec)
Starts or restarts the timer with a timeout interval of msec milliseconds.
bool isActive() const
Returns true if the timer is running (pending); otherwise returns false.
bool singleShot
whether the timer is a single-shot timer
void stop()
Stops the timer.
The QTreeView class provides a default model/view implementation of a tree view.
bool isExpanded(const QModelIndex &index) const
Returns true if the model item index is expanded; otherwise returns false.
QHeaderView * header() const
Returns the header for the tree view.
The QValidator class provides validation of input text.
void * data()
Returns a pointer to the contained object as a generic void* that can be written to.
bool isValid() const
Returns true if the storage type of this variant is not QMetaType::UnknownType; otherwise returns fal...
int toInt(bool *ok=nullptr) const
Returns the variant as an int if the variant has userType() \l QMetaType::Int, \l QMetaType::Bool,...
void setMinimumWidth(int w)
void newState(QList< State > &states, const char *token, const char *lexem, bool pre)
T toNativePixels(const T &value, const C *context)
Combined button and popup list for selecting options.
void setter(QUntypedPropertyData *d, const void *value)
@ WA_X11NetWmWindowTypeCombo
FontHash * qt_app_fonts_hash()
DBusConnection * connection
void qScrollEffect(QWidget *w, QEffects::DirFlags orient, int time)
typedef QByteArray(EGLAPIENTRYP PFNQGSGETDISPLAYSPROC)()
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
constexpr const T & qMin(const T &a, const T &b)
constexpr const T & qBound(const T &min, const T &val, const T &max)
constexpr const T & qMax(const T &a, const T &b)
GLenum GLsizei GLsizei GLint * values
[15]
GLsizei const GLfloat * v
[13]
GLint GLsizei GLsizei height
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLdouble GLdouble GLdouble GLdouble top
GLenum GLenum GLsizei count
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum GLuint GLintptr offset
GLint GLint GLint GLint GLint GLint GLint GLbitfield mask
GLdouble GLdouble GLdouble GLdouble q
GLenum GLenum GLsizei void * row
GLint GLenum GLboolean normalized
static QPlatformTheme::Font platformFont(QQuickTheme::Scope scope)
QScopeGuard< typename std::decay< F >::type > qScopeGuard(F &&f)
[qScopeGuard]
static bool match(const uchar *found, uint foundLen, const char *target, uint targetLen)
const char className[16]
[1]
QSqlQueryModel * model
[16]
QList< QChar > characters
obj metaObject() -> className()
myObject disconnect()
[26]
QItemSelection * selection
[0]
lineEdit setCompleter(completer)
QCompleter * completer
[0]