qt学习:Qt中Item Widget初步探索
2015-07-14 15:20
525 查看
一般简单的都是用Item-based的List Widget,Qt中给出了List Widget,Tree Widget,Tabel Widget三种,这里就简单了解一下List Widget和Tree Widget的使用。Tabel Widget的使用应该也类似。
List Widget的使用
List Widget的使用比较简单,加入数据时直接用addItem()函数。读取数据时采用currentItem->text()方法,本次实验先向List Widget中写入一些内容,然后单击button按钮时,以消息box的形式将选择行的内容显示出来。
实验的效果如下:
![](http://pic002.cnblogs.com/images/2012/381513/2012073111474128.png)
实验代码及注释如下:
Tree Widget的使用
Tree Wdiget中各个item是有层次关系的,也就是要区分父item和子item。这次实验是参考youtube中C++ Qt教程。完成的功能是在窗体的构造函数中新建几个item,包含了父item和子item,选中其中的一个item然后单击后会更改item里面文本的颜色。因此包含了Tree Widget的设置和读取2种简单的操作。
效果如下:
![](http://pic002.cnblogs.com/images/2012/381513/2012073111481253.png)
程序代码和注释如下:
总结:Item Widget在实际应用中比较广泛,其中Qt中的使用也很方便,可以将各种Item widget组合起来用。
List Widget的使用
List Widget的使用比较简单,加入数据时直接用addItem()函数。读取数据时采用currentItem->text()方法,本次实验先向List Widget中写入一些内容,然后单击button按钮时,以消息box的形式将选择行的内容显示出来。
实验的效果如下:
![](http://pic002.cnblogs.com/images/2012/381513/2012073111474128.png)
实验代码及注释如下:
#include "dialog.h" #include "ui_dialog.h" #include <QtCore> #include <QtGui> Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); //向listWdget中写入数据 for (int i = 10; i > 0; i--) { ui->listWidget->addItem("hello "+QString::number(i)); ui->listWidget->addItem("world"+QString::number(i)); } } Dialog::~Dialog() { delete ui; } void Dialog::on_pushButton_clicked() { //将数据读取出来并以消息box的形式显示出来。 QMessageBox::information(this, "clicked", ui->listWidget->currentItem()->text()); }
Tree Widget的使用
Tree Wdiget中各个item是有层次关系的,也就是要区分父item和子item。这次实验是参考youtube中C++ Qt教程。完成的功能是在窗体的构造函数中新建几个item,包含了父item和子item,选中其中的一个item然后单击后会更改item里面文本的颜色。因此包含了Tree Widget的设置和读取2种简单的操作。
效果如下:
![](http://pic002.cnblogs.com/images/2012/381513/2012073111481253.png)
程序代码和注释如下:
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QtGui> #include <QtCore> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); //设置TreeWidget的列数 ui->treeWidget->setColumnCount(2); //给每一列设置标签 ui->treeWidget->setHeaderLabels(QStringList() << "number" << "good"); addroot("one","very good"); addroot("two", "very good"); addroot("three", "very_good"); } MainWindow::~MainWindow() { delete ui; } void MainWindow::addroot(QString name, QString description) { //从TreeWidget中构造出1个QTreeWidgetItem. QTreeWidgetItem *item = new QTreeWidgetItem(ui->treeWidget); //向2列加入内容 item->setText(0, name); item->setText(1, description); //将该条目置顶,好像是置于下一个条目的底部 ui->treeWidget->addTopLevelItem(item); //增加子条目 addchild(item, "here1", "very good1"); addchild(item, "here2", "very good2"); addchild(item, "here3", "very good3"); } void MainWindow::addchild(QTreeWidgetItem *parent, QString name, QString dscription) { //这里QTreeWidgetItem构造函数时是不需要参数的,因为它被建立后就加载到parent上了 QTreeWidgetItem *item = new QTreeWidgetItem(); item->setText(0, name); item->setText(1, dscription); parent->addChild(item); } void MainWindow::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); }
总结:Item Widget在实际应用中比较广泛,其中Qt中的使用也很方便,可以将各种Item widget组合起来用。
相关文章推荐
- qt工程中Pro文件
- qt 的 signals宏和slots宏
- SPOJ QTREE7 lct
- qt学习:四种方法实现界面的显示功能
- QTabWidget
- QT toLocal8Bit奇怪的问题
- 【QT】 屏幕旋转、尺寸设置
- QTableView添加按钮
- QTableView
- 摄像头在liunx上的QT显示和OK6410 ARM开发板上的使用
- pyqt demo
- Qt入门之信号与槽机制
- 提升方式创建自己的QT控件(弹出式菜单按钮)
- A previous installation of Qt5 Visual Studio Add-in was detected. 解决方法
- smart210上Qt应用程序开发实例(加法计算器)
- 错误:QtXml: No such file or directory
- QT父窗口和子窗口互相通信
- QT5.3.2在ARM上的移植
- Qt批量操作Excel
- SPOJ QTREE6 lct