您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Qt学习之路(Qt中ItemWidget初步探索)
Qt学习之路_9(Qt中ItemWidget初步探索)Qt界面设计中有model-based的ListView,有Item-based的ListWidget,关于这2者到底有什么区别,暂时也没弄太明白,这些都是界面设计中的设计模式,从MVC发展而来。以后用到的时候自然会明白的。一般简单的都是用Item-based的ListWidget,Qt中给出了ListWidget,TreeWidget,TabelWidget三种,这里就简单了解一下ListWidget和TreeWidget的使用。TabelWidget的使用应该也类似。ListWidget的使用ListWidget的使用比较简单,加入数据时直接用addItem()函数。读取数据时采用currentItem-text()方法,本次实验先向ListWidget中写入一些内容,然后单击button按钮时,以消息box的形式将选择行的内容显示出来。实验的效果如下:实验代码及注释如下:#includedialog.h#includeui_dialog.h#includeQtCore#includeQtGuiDialog::Dialog(QWidget*parent):QDialog(parent),ui(newUi::Dialog){ui-setupUi(this);//向listWdget中写入数据for(inti=10;i0;i--){ui-listWidget-addItem(hello+QString::number(i));ui-listWidget-addItem(world+QString::number(i));}}Dialog::~Dialog(){deleteui;}voidDialog::on_pushButton_clicked(){//将数据读取出来并以消息box的形式显示出来。QMessageBox::information(this,clicked,ui-listWidget-currentItem()-text());}TreeWidget的使用TreeWdiget中各个item是有层次关系的,也就是要区分父item和子item。这次实验是参考youtube中C++Qt教程。完成的功能是在窗体的构造函数中新建几个item,包含了父item和子item,选中其中的一个item然后单击后会更改item里面文本的颜色。因此包含了TreeWidget的设置和读取2种简单的操作。效果如下:程序代码和注释如下:#includemainwindow.h#includeui_mainwindow.h#includeQtGui#includeQtCoreMainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui-setupUi(this);//设置TreeWidget的列数ui-treeWidget-setColumnCount(2);//给每一列设置标签ui-treeWidget-setHeaderLabels(QStringList()numbergood);addroot(one,verygood);addroot(two,verygood);addroot(three,very_good);}MainWindow::~MainWindow(){deleteui;}voidMainWindow::addroot(QStringname,QStringdescription){//从TreeWidget中构造出1个QTreeWidgetItem.QTreeWidgetItem*item=newQTreeWidgetItem(ui-treeWidget);//向2列加入内容item-setText(0,name);item-setText(1,description);//将该条目置顶,好像是置于下一个条目的底部ui-treeWidget-addTopLevelItem(item);//增加子条目addchild(item,here1,verygood1);addchild(item,here2,verygood2);addchild(item,here3,verygood3);}voidMainWindow::addchild(QTreeWidgetItem*parent,QStringname,QStringdscription){//这里QTreeWidgetItem构造函数时是不需要参数的,因为它被建立后就加载到parent上了QTreeWidgetItem*item=newQTreeWidgetItem();item-setText(0,name);item-setText(1,dscription);parent-addChild(item);}voidMainWindow::on_pushButton_clicked(){//如果是设置改变文字的颜色的话,那么当按钮按下后,需要把item中的条目焦点移开才能看到效果//ui-treeWidget-currentItem()-setTextColor(0,Qt::green);//ui-treeWidget-currentItem()-setTextColor(1,Qt::red);//改变文本背景的颜色也是一样的效果ui-treeWidget-currentItem()-setBackgroundColor(0,Qt::green);ui-treeWidget-currentItem()-setBackgroundColor(1,Qt::red);}总结:ItemWidget在实际应用中比较广泛,其中Qt中的使用也很方便,可以将各种Itemwidget组合起来用。
本文标题:Qt学习之路(Qt中ItemWidget初步探索)
链接地址:https://www.777doc.com/doc-2854633 .html