• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 70, 文章 - 0, 評論 - 9, 引用 - 0
            數(shù)據(jù)加載中……

            QTableView, QTableWidget 用法整理

            1  根據(jù)數(shù)據(jù)內(nèi)容設(shè)定寬
                resizeColumnToContents, resizeColumnsToContents
            void QTableView::resizeColumnToContents ( int column ) [slot]
            void QTableView::resizeColumnsToContents () [slot]

            2  去掉網(wǎng)格 setShowGrid

            3  委托
                需要在單元格里進(jìn)行特別處理,如需要QLineEdit, QComcoBox等時,需要用委托機(jī)制來實現(xiàn)。
                委托需要實現(xiàn)的幾個函數(shù)
                QTableView, QTableWidget對其數(shù)據(jù)進(jìn)行委托:setItemDelegate, setItemDelegateForColumn, setItemDelegateForRow
                委托時QItemDelegate需要重新實現(xiàn)的函數(shù):createEditor(創(chuàng)建控件),setEditorData(設(shè)置值),setModelData,updateEditorGeometry(設(shè)置大小)
                部分實現(xiàn)代碼示例
            QWidget *LLineEditDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
            {
                QLineEdit 
            *editor = new CompleteLineEdit(parent);
                
            return editor;
            }


            void LLineEditDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
            {
                QString value 
            = index.model()->data(index, Qt::EditRole).toString();
                QLineEdit 
            *lineEdit = static_cast<QLineEdit *>(editor);
                lineEdit
            ->setText(value);
            }


            void LLineEditDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
            {
                QLineEdit 
            *lineEdit = static_cast<QLineEdit *>(editor);
                QString value 
            = lineEdit->text();
                model
            ->setData(index, value, Qt::EditRole);
            }


            void LLineEditDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const
            {
                editor
            ->setGeometry(option.rect);
            }

            posted on 2011-03-24 09:58 seahouse 閱讀(5588) 評論(0)  編輯 收藏 引用 所屬分類: Qt

            无码精品久久久天天影视| 久久这里的只有是精品23| 久久精品国产乱子伦| 精品国产乱码久久久久久浪潮| 久久精品国产久精国产思思| 久久精品一区二区三区AV| 久久精品久久久久观看99水蜜桃| 思思久久精品在热线热| 欧美日韩精品久久久免费观看| 久久久久se色偷偷亚洲精品av | 久久人做人爽一区二区三区| 久久久久人妻一区精品| 亚洲精品国产第一综合99久久| 欧美亚洲国产精品久久| 久久综合九色综合网站| 国产成人精品久久免费动漫| 亚洲一本综合久久| 久久精品三级视频| 久久久久人妻一区二区三区| 久久精品中文无码资源站 | 久久99久久99精品免视看动漫 | 精品久久久无码中文字幕| 久久国产精品二国产精品| 亚洲日韩欧美一区久久久久我| 精品久久久久久中文字幕大豆网| 精品久久久久久无码中文字幕一区 | 久久久久久毛片免费看| 久久久久99这里有精品10 | 99久久精品免费看国产免费| 中文字幕久久亚洲一区| 国产精品久久一区二区三区| 亚洲精品成人网久久久久久| 日产精品久久久久久久性色| 国产精品嫩草影院久久| 中文精品久久久久人妻不卡| 精品久久久久一区二区三区| 亚洲va久久久噜噜噜久久男同| 国产亚洲美女精品久久久| 亚洲级αV无码毛片久久精品 | 久久青青草原精品国产软件| 亚洲国产精品无码久久一线|