首页 > 编程知识 正文

qt列表控件,web view

时间:2023-05-05 18:25:55 阅读:18546 作者:1635

QT提供model/view结构管理数据并展示数据。

我不熟悉从事J2ee开发的人。 Model、View、Controller和qt的model/view模式与MVC相同。

model提供数据模型,view呈现数据,delegate呈现数据项。 model、view、delegate通过信号/时隙机制进行通信。

我以前在QML上学过ListView。

导入Qt 4.7列表模型{ id : fruitmodellistelement } name : ' apple ' cost :2.45 }列表模型{ name : ' orange ' ccccost

组件{ id : fruitdelegateitem } width :200; height :50 text { text : name } text { text : ' $ ' cost; anchors.right 3360 parent.right//doublethepricewhenclicked.mouse area { anchors.fill 3360 parentonclicked 3360 fruit managed

导入Qt 4.7 listview { anchors.fill : parent model 3360 fruitmodeldelegate 3360 fruit delegate }

以下是一个简单的ListView示例:

# ifndef main window _ h # define main window _ h # includeqmainwindow # includeqlistview # includeqstandarditem # includeqstand class main window : publicqmainwindow { q _ object public : explicit main window (q构件* parent=0); ~主窗口(; private : ui :3360 main window * ui; QListView *listView; 标准模型*标准模型; 私有插槽:语音锁定(qmodelindexindex; (; #endif //MAINWINDOW_H

# include ' main window.h ' # include ' ui _ main window.h ' # includeqradialgradient # includeqdebugmainwint listview=newqlistview(this; 标准数据模型=newqstandarditemmodel (this; 字符串列表列表; strlist.append (字符串1 ); strlist.append(string2); strlist.append (字符串3 ); strlist.append (字符串4 ); strlist.append (字符串5 ); strlist.append (字符串6 ); strlist.append (字符串7 ); strList 'string8'; strList ='string9'; int nCount=strList.size (

); for(int i = 0; i < nCount; i++) { QString string = static_cast<QString>(strList.at(i)); QStandardItem *item = new QStandardItem(string); if(i % 2 == 1) { QLinearGradient linearGrad(QPointF(0, 0), QPointF(200, 200)); linearGrad.setColorAt(0, Qt::darkGreen); linearGrad.setColorAt(1, Qt::yellow); QBrush brush(linearGrad); item->setBackground(brush); } standardItemModel->appendRow(item); } listView->setModel(standardItemModel); listView->setFixedSize(200,300); connect(listView,SIGNAL(clicked(QModelIndex)),this,SLOT(itemClicked(QModelIndex)));}MainWindow::~MainWindow(){ delete ui;}void MainWindow::itemClicked(QModelIndex index){ qDebug() << index.data().toString();}

 

   

   对于以上例子说明:

   QStringList用于提供了一个String的List集合.继承自QList<QString>.

   公共方法:

  


 QStringList
 () QStringList ( const QString & str ) QStringList ( const QStringList & other ) QStringList ( const QList<QString> & other )boolcontains ( const QString & str, Qt::CaseSensitivity cs = Qt::CaseSensitive ) constQStringListfilter ( const QString & str, Qt::CaseSensitivity cs = Qt::CaseSensitive ) constQStringListfilter ( const QRegExp & rx ) constintindexOf ( const QRegExp & rx, int from = 0 ) constintindexOf ( const QString & value, int from = 0 ) constintindexOf ( QRegExp & rx, int from = 0 ) constQStringjoin ( const QString & separator ) constintlastIndexOf ( const QRegExp & rx, int from = -1 ) constintlastIndexOf ( const QString & value, int from = -1 ) constintlastIndexOf ( QRegExp & rx, int from = -1 ) constintremoveDuplicates ()QStringList &replaceInStrings ( const QString & before, const QString & after, Qt::CaseSensitivity cs = Qt::CaseSensitive )QStringList &replaceInStrings ( const QRegExp & rx, const QString & after )voidsort ()QStringListoperator+ ( const QStringList & other ) constQStringList &operator<< ( const QString & str )QStringList &operator<< ( const QStringList & other )

 添加元素可使用append(),+=,<<

 迭代元素有三种方式:

        使用Java索引风格:for (int i = 0; i < font.size(); ++i) cout << fonts.at(i).toLocal8Bit().constData() <<endl;//Java迭代器风格:QStringListIterator iterator(fonts);while(iterator.hasNext()) count << iterator.next().toLocal8Bit().constData() << endl;//STL迭代器风格:QStringList::const_iterator constIterator;for (const_iterator = fonts.constBegin(); const_iterator != fonts.constEnd(); ++constIterator) cout << (*const_iterator).toLocal8Bit().constData() << endl;

        还有QList,QString 的一大堆方法 ,呵呵.

      

        QStandardItemModel类提供了一个用来存储自定义数据的普通的model。       

        QStandardItemModel可以用来存储标准的QT数据类型。它是Model/View之一。提供了典型的item-base工作模型。它的Item是QStandardItem类型的.         

        QStandardItemModel实现了QAbstractItemModel接口,也就意味着这个model能被用于提供任何支持这个接口的的view(如QListView,QTableView,QTreeView,和你自己定义的View)

        QStandardItem类提供了用于QStandardItemModel的Item,通常包含文本,图标或复选框等.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。