亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? qabstractitemmodel.cpp

?? QT 開發環境里面一個很重要的文件
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
void QAbstractItemModel::fetchMore(const QModelIndex &){    // do nothing}/*!  Returns true if there is more data available for \a parent,  otherwise false.  The default implementation always returns false.  \sa fetchMore()*/bool QAbstractItemModel::canFetchMore(const QModelIndex &) const{    return false;}/*!    Returns the item flags for the given \a index.    The base class implementation returns a combination of flags that    enables the item (\c ItemIsEnabled) and allows it to be    selected (\c ItemIsSelectable).    \sa Qt::ItemFlags*/Qt::ItemFlags QAbstractItemModel::flags(const QModelIndex &index) const{    Q_D(const QAbstractItemModel);    if (!d->indexValid(index))        return 0;    return Qt::ItemIsSelectable|Qt::ItemIsEnabled;}/*!    Sorts the model by \a column in the given \a order.    The base class implementation does nothing.*/void QAbstractItemModel::sort(int column, Qt::SortOrder order){    Q_UNUSED(column);    Q_UNUSED(order);    // do nothing}/*!  Returns a model index for the buddy of the item represented by \a index.  When the user wants to edit an item, the view will call this function to  check whether another item in the model should be edited instead, and  construct a delegate using the model index returned by the buddy item.  In the default implementation each item is its own buddy.*/QModelIndex QAbstractItemModel::buddy(const QModelIndex &index) const{    return index;}/*!    Returns a list of indexes for the items where the data stored under    the given \a role matches the specified \a value. The way the search    is performed is defined by the \a flags given. The list that is    returned may be empty.    The search starts from the \a start index, and continues until the    number of matching data items equals \a hits, the search reaches    the last row, or the search reaches \a start again, depending on    whether \c MatchWrap is specified in \a flags.    By default, this function will perform a wrapping, string-based comparison    on all items, searching for items that begin with the search term specified    by \a value.*/QModelIndexList QAbstractItemModel::match(const QModelIndex &start, int role,                                          const QVariant &value, int hits,                                          Qt::MatchFlags flags) const{    QModelIndexList result;    uint matchType = flags & 0x0F;    Qt::CaseSensitivity cs = flags & Qt::MatchCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive;    bool recurse = flags & Qt::MatchRecursive;    bool wrap = flags & Qt::MatchWrap;    bool allHits = (hits == -1);    QString text; // only convert to a string if it is needed    QModelIndex p = parent(start);    int from = start.row();    int to = rowCount(p);    // iterates twice if wrapping    for (int i = 0; (wrap && i < 2) || (!wrap && i < 1); ++i) {        for (int r = from; (r < to) && (allHits || result.count() < hits); ++r) {            QModelIndex idx = index(r, start.column(), p);            if (!idx.isValid())                 continue;            QVariant v = data(idx, role);            // QVariant based matching            if (matchType == Qt::MatchExactly) {                if (value == v)                    result.append(idx);            } else { // QString based matching                if (text.isEmpty()) // lazy conversion                    text = value.toString();                QString t = v.toString();                switch (matchType) {                case Qt::MatchRegExp:                    if (QRegExp(text, cs).exactMatch(t))                        result.append(idx);                    break;                case Qt::MatchWildcard:                    if (QRegExp(text, cs, QRegExp::Wildcard).exactMatch(t))                        result.append(idx);                    break;                case Qt::MatchStartsWith:                    if (t.startsWith(text, cs))                        result.append(idx);                    break;                case Qt::MatchEndsWith:                    if (t.endsWith(text, cs))                        result.append(idx);                    break;                case Qt::MatchFixedString:                    if (t.compare(text, cs) == 0)                        result.append(idx);                    break;                case Qt::MatchContains:                default:                    if (t.contains(text, cs))                        result.append(idx);                }            }            if (recurse && hasChildren(idx)) { // search the hierarchy                result += match(index(0, idx.column(), idx), role,                                (text.isEmpty() ? value : text),                                (allHits ? -1 : hits - result.count()), flags);            }        }        // prepare for the next iteration        from = 0;        to = start.row();    }    return result;}/*!    Returns the row and column span of the item represented by \a index.    Note: span is not used currently, but will be in the future.*/QSize QAbstractItemModel::span(const QModelIndex &) const{    return QSize(1, 1);}/*!  Called to let the model know that it should submit whatever it has cached  to the permanent storage. Typically used for row editing.  Returns false on error, otherwise true.*/bool QAbstractItemModel::submit(){    return true;}/*!  Called to let the model know that it should discart whatever it has cached.  Typically used for row editing.*/void QAbstractItemModel::revert(){    // do nothing}/*!  Returns the data for the given \a role and \a section in the header  with the specified \a orientation.  \sa Qt::ItemDataRole, setHeaderData(), QHeaderView*/QVariant QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const{    Q_UNUSED(orientation);    if (role == Qt::DisplayRole)        return section + 1;    if (role == Qt::TextAlignmentRole)        return Qt::AlignCenter;    return QVariant();}/*!  Sets the \a role for the header \a section to \a value.  The \a orientation gives the orientation of the header.  Note that the headerDataChanged() signal must be emitted explicitly  when reimplementing this function.  \sa Qt::ItemDataRole, headerData()*/bool QAbstractItemModel::setHeaderData(int section, Qt::Orientation orientation,                                       const QVariant &value, int role){    Q_UNUSED(section);    Q_UNUSED(orientation);    Q_UNUSED(value);    Q_UNUSED(role);    return false;}/*!    \fn QModelIndex QAbstractItemModel::createIndex(int row, int column, void *ptr) const    Creates a model index for the given \a row and \a column with the internal pointer \a ptr.    This function provides a consistent interface that model subclasses must    use to create model indexes.*//*!    \fn QModelIndex QAbstractItemModel::createIndex(int row, int column, int id) const    \obsolete    Use QModelIndex QAbstractItemModel::createIndex(int row, int column, quint32 id) instead.*//*!    \fn QModelIndex QAbstractItemModel::createIndex(int row, int column, quint32 id) const    Creates a model index for the given \a row and \a column with the internal    identifier, \a id.    This function provides a consistent interface that model subclasses must    use to create model indexes.*//*!  \internal*/void QAbstractItemModel::encodeData(const QModelIndexList &indexes, QDataStream &stream) const{    QModelIndexList::ConstIterator it = indexes.begin();    for (; it != indexes.end(); ++it)        stream << (*it).row() << (*it).column() << itemData(*it);}/*!  \internal */bool QAbstractItemModel::decodeData(int row, int column, const QModelIndex &parent,                                    QDataStream &stream){    int top = INT_MAX;    int left = INT_MAX;    int bottom = 0;    int right = 0;    QVector<int> rows, columns;    QVector<QMap<int, QVariant> > data;    while (!stream.atEnd()) {        int r, c;        QMap<int, QVariant> v;        stream >> r >> c >> v;        rows.append(r);        columns.append(c);        data.append(v);        top = qMin(r, top);        left = qMin(c, left);        bottom = qMax(r, bottom);        right = qMax(c, right);    }    // insert the dragged items into the table, use a bit array to avoid overwriting items,    // since items from different tables can have the same row and column    int dragRowCount = 0;    int dragColumnCount = right - left + 1;    // Compute the number of continuous rows upon insertion and modify the rows to match    QVector<int> rowsToInsert(bottom + 1);    for (int i = 0; i < rows.count(); ++i)        rowsToInsert[rows.at(i)] = 1;    for (int i = 0; i < rowsToInsert.count(); ++i) {        if (rowsToInsert[i] == 1){            rowsToInsert[i] = dragRowCount;            ++dragRowCount;        }    }    for (int i = 0; i < rows.count(); ++i)        rows[i] = top + rowsToInsert[rows[i]];    QBitArray isWrittenTo(dragRowCount * dragColumnCount);    // make space in the table for the dropped data    int colCount = columnCount(parent);    if (colCount == 0) {        insertColumns(colCount, dragColumnCount - colCount, parent);        colCount = columnCount(parent);    }    insertRows(row, dragRowCount, parent);    row = qMax(0, row);    column = qMax(0, column);    // set the data in the table    for (int j = 0; j < data.size(); ++j) {        int relativeRow = rows.at(j) - top;        int relativeColumn = columns.at(j) - left;        int destinationRow = relativeRow + row;        int destinationColumn = relativeColumn + column;        int flat = (relativeRow * dragColumnCount) + relativeColumn;        // if the item was already written to, or we just can't fit it in the table, create a new row        if (destinationColumn >= colCount || isWrittenTo.testBit(flat)) {            destinationColumn = qBound(column, destinationColumn, colCount - 1);            destinationRow = row + dragRowCount;            insertRows(row + dragRowCount, 1, parent);            flat = (dragRowCount * dragColumnCount) + relativeColumn;            isWrittenTo.resize(++dragRowCount * dragColumnCount);        }        if (!isWrittenTo.testBit(flat)) {            QModelIndex idx = index(destinationRow, destinationColumn, parent);            setItemData(idx, data.at(j));            isWrittenTo.setBit(flat);        }    }    return true;}/*!    Begins a row insertion operation.    When reimplementing insertRows() in a subclass, you must call this    function \e before inserting data into the model's underlying data    store.    The \a parent index corresponds to the parent into which the new    rows are inserted; \a first and \a last are the row numbers that the    new rows will have after they have been inserted.    \table 80%    \row \o \inlineimage modelview-begin-insert-rows.png Inserting rows    \o Specify the first and last row numbers for the span of rows       you want to insert into an item in a model.    For example, as shown in the diagram, we insert three rows before    row 2, so \a first is 2 and \a last is 4:    \code    beginInsertRows(parent, 2, 4);    \endcode    This inserts the three new rows as rows 2, 3, and 4.    \row    \o \inlineimage modelview-begin-append-rows.png Appending rows    \o To append rows, insert them after the last row.    For example, as shown in the diagram, we append two rows to a    collection of 4 existing rows (ending in row 3), so \a first is 4    and \a last is 5:    \code    beginInsertRows(parent, 4, 5);    \endcode    This appends the two new rows as rows 4 and 5.    \endtable    \sa endInsertRows()*/void QAbstractItemModel::beginInsertRows(const QModelIndex &parent, int first, int last){    Q_ASSERT(first >= 0);    Q_ASSERT(last >= first);    Q_D(QAbstractItemModel);    d->changes.push(QAbstractItemModelPrivate::Change(parent, first, last));    emit rowsAboutToBeInserted(parent, first, last);    d->rowsAboutToBeInserted(parent, first, last);}/*!    Ends a row insertion operation.    When reimplementing insertRows() in a subclass, you must call this    function \e after inserting data into the model's underlying data    store.    \sa beginInsertRows()*/void QAbstractItemModel::endInsertRows(){    Q_D(QAbstractItemModel);    QAbstractItemModelPrivate::Change change = d->changes.pop();    d->ro

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人蜜臀av电影| 久久亚洲综合色一区二区三区| 欧美日韩精品三区| 精品国产三级电影在线观看| 国产精品伦一区| 久久福利视频一区二区| 91麻豆精品在线观看| 久久综合九色综合欧美就去吻| 一级女性全黄久久生活片免费| 国产成人精品午夜视频免费| 欧美精品少妇一区二区三区| 日本不卡免费在线视频| 99综合电影在线视频| 精品国产乱码久久久久久图片 | 一级做a爱片久久| 蜜桃av一区二区三区电影| 91麻豆精品视频| 久久九九99视频| 久久精品国产久精国产爱| 91国产福利在线| 亚洲男人都懂的| 99精品欧美一区二区三区小说| 久久精品日产第一区二区三区高清版| 香蕉久久一区二区不卡无毒影院| www.成人在线| 中文字幕不卡的av| 福利电影一区二区三区| 久久久久久一级片| 韩国欧美一区二区| 久久综合网色—综合色88| 美女一区二区在线观看| 8x8x8国产精品| 天天操天天色综合| 欧美日韩国产一级二级| 亚洲电影欧美电影有声小说| 色综合久久久久综合99| 亚洲欧美二区三区| 91久久国产综合久久| 洋洋成人永久网站入口| 欧美午夜在线一二页| 亚洲福利视频三区| 欧美高清一级片在线| 美日韩一级片在线观看| 精品久久久久久久久久久久久久久 | 欧美第一区第二区| 久草热8精品视频在线观看| 日韩欧美视频一区| 国产精品一区二区三区四区| 国产日产欧美一区二区三区| 丰满亚洲少妇av| 亚洲人快播电影网| 欧美午夜寂寞影院| 美脚の诱脚舐め脚责91| 精品成人一区二区三区| 国产福利视频一区二区三区| 综合色天天鬼久久鬼色| 欧美亚洲日本国产| 日韩精品一二区| 久久综合九色综合欧美亚洲| 成人激情文学综合网| 亚洲精选视频在线| 欧美一区二区三区视频| 粉嫩在线一区二区三区视频| 亚洲欧美色图小说| 日韩一区二区免费电影| 成人精品免费看| 国产福利不卡视频| 一区二区三区欧美久久| 日韩欧美国产精品| 99久久国产综合色|国产精品| 一个色综合av| 久久网站热最新地址| 一本一道波多野结衣一区二区| 午夜精品久久久久久久99水蜜桃| 26uuu久久天堂性欧美| 色哟哟在线观看一区二区三区| 日本不卡一区二区| 亚洲人妖av一区二区| 日韩一级片在线播放| 99久久久久久| 久久91精品久久久久久秒播| 夜夜揉揉日日人人青青一国产精品 | 99久久久精品免费观看国产蜜| 亚洲一区二区三区四区中文字幕| 日韩女优毛片在线| 99精品国产一区二区三区不卡| 日韩电影在线免费| 亚洲欧美一区二区视频| 欧美一三区三区四区免费在线看 | 日韩高清不卡一区二区三区| 自拍偷拍亚洲欧美日韩| 欧美成人女星排行榜| 日本电影亚洲天堂一区| 国产精品小仙女| 午夜免费欧美电影| 亚洲男女毛片无遮挡| 久久精品免费在线观看| 欧美一区二区三区视频免费| 在线观看免费一区| 99精品久久久久久| 成人福利视频网站| 国产精一区二区三区| 男男视频亚洲欧美| 午夜精品一区二区三区电影天堂| 国产精品久久久久久福利一牛影视 | 久久久久久久久久久电影| 日韩一区二区电影在线| 欧美日韩精品久久久| 欧洲一区在线观看| 91日韩一区二区三区| 丁香激情综合国产| 国产精品911| 国产成人丝袜美腿| 国产一区高清在线| 激情综合网最新| 久久99精品久久久久婷婷| 日本一不卡视频| 蜜桃久久精品一区二区| 免费在线成人网| 蜜桃在线一区二区三区| 美国三级日本三级久久99| 免费一级欧美片在线观看| 久久精品999| 国产一区三区三区| 成人午夜又粗又硬又大| av一区二区三区在线| 99re在线精品| 欧美视频一区二区三区四区| 欧美日韩一区二区欧美激情| 在线91免费看| 精品欧美一区二区在线观看| 2022国产精品视频| 日本一区二区三区电影| 国产精品福利一区| 亚洲精品中文在线观看| 香蕉av福利精品导航| 久久er99热精品一区二区| 国产资源在线一区| 成人黄色大片在线观看| 一本久久a久久精品亚洲| 在线观看91视频| 日韩欧美国产高清| 中文字幕中文字幕在线一区| 亚洲精选视频在线| 久草精品在线观看| 色狠狠av一区二区三区| 91精品国产综合久久久久久久 | 高清av一区二区| 一本色道久久综合亚洲91| 91麻豆精品国产91久久久使用方法 | 国产成人免费网站| 在线观看视频欧美| 精品伦理精品一区| 专区另类欧美日韩| 久久99精品国产麻豆婷婷| 91首页免费视频| 日韩一区二区三区高清免费看看 | 精品1区2区在线观看| 国产精品情趣视频| 日韩在线一区二区| 成人av网址在线观看| 欧美日韩国产综合视频在线观看| 精品久久五月天| 一区二区三区丝袜| 成人影视亚洲图片在线| 欧美精品丝袜久久久中文字幕| 欧美极品xxx| 日本三级亚洲精品| 成人av集中营| 日韩精品一区二| 一区二区三区在线免费观看| 国产一区二区成人久久免费影院 | 国产亚洲精品中文字幕| 亚洲午夜免费电影| 成人爱爱电影网址| 久久久久成人黄色影片| 婷婷六月综合网| 色综合欧美在线| 国产欧美1区2区3区| 麻豆成人久久精品二区三区红| 色综合久久中文字幕| 欧美国产亚洲另类动漫| 九九在线精品视频| 91麻豆精品国产91久久久久久久久 | 久久综合网色—综合色88| 日日夜夜免费精品| 欧美日韩在线播放三区四区| 国产精品免费观看视频| 国产乱人伦精品一区二区在线观看 | 久久精品国产网站| 欧美揉bbbbb揉bbbbb| 亚洲精选视频在线| 色婷婷狠狠综合| 亚洲欧美成人一区二区三区| 成人激情免费视频| 国产精品毛片久久久久久久| 成人免费黄色大片| 欧美国产欧美亚州国产日韩mv天天看完整 | 久久精品网站免费观看| 国产一区在线看|