移动网站建设作业,应用市场app下载安装到手机,wordpress商城主题 原创,深圳注册公司个人数字证书目录 1.概述 2.QListWidget 类常用的属性和方法 3.QListWidget列表框的信号和槽 4.QListWidget 类常用操作示例 4.1 初始化列表 4.2 插入项 4.3 删除当前项和清空列表 4.4 遍历并选择项 4.5 QListWidgetItem常用信号 5.QListWidget 类简单应用 1.概述 Qt 中用于项 (Item #… 目录 1.概述 2.QListWidget 类常用的属性和方法 3.QListWidget列表框的信号和槽 4.QListWidget 类常用操作示例 4.1 初始化列表 4.2 插入项 4.3 删除当前项和清空列表 4.4 遍历并选择项 4.5 QListWidgetItem常用信号 5.QListWidget 类简单应用 1.概述 Qt 中用于项 (Item 处理的组件有两类一类是 ItemViews 包括 QListView 、 QTreeView 、 QTableView、QColumnView等另一类是ItemWidgets,包括QListWidget、QTreeWidget和 QTableWidget。 ItemViews基于模型视图ModelAfiew结构视图View与模型数据ModelData关 联实现数据的显示和编辑。 ItemWidgets是直接将数据存储在每一个项里例如QListWidget的每一行是一个项 QTreeWidget 的每个节点是一个项 QTableWidget 的每一个单元格是一个项。一个项存储了文字、 文字的格式、自定义数据等。 使用 Qt 框架开发 GUI 程序如果需要以列表的方法展示数据可以优先考虑用 QListWidget 类实现。 2.QListWidget 类常用的属性和方法 表 1 QListWidget常用属性和方法 3.QListWidget列表框的信号和槽 表 2 QListWidget信号和槽函数 4.QListWidget 类常用操作示例 4.1 初始化列表 列表框里一行是一个项是一个QListWidgetItem类型的对象向列表框添加一个项就需要 创建一个QListWidgetItem类型的实例aItem然后设置 aItem 的一些属性再用QListWidget: Addltem()函数将该 aItem 添加到列表框里。 QListWidgetItem有许多函数方法可以设置项的很多属性如设置文字、图标、选中状态 还可以设置flags。 void MainWindow::on_actListIni_triggered()
{ //初始化项QListWidgetItem *aItem; //每一行是一个QListWidgetItemQIcon aIcon;aIcon.addFile(:/images/icons/check2.ico); //设置ICON的图标bool chkui-chkBoxListEditable-isChecked();//是否可编辑ui-listWidget-clear(); //清除项for (int i0; i10; i){QString strQString::asprintf(Item %d,i);aItemnew QListWidgetItem(); //新建一个项aItem-setText(str); //设置文字标签aItem-setIcon(aIcon);//设置图标aItem-setCheckState(Qt::Checked); //设置为选中状态if (chk) //可编辑, 设置flagsaItem-setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);else//不可编辑, 设置flagsaItem-setFlags(Qt::ItemIsSelectable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);ui-listWidget-addItem(aItem); //增加一个项}
} 4.2 插入项 插入项使用QListWidget的insertltem(introwQListWidgetItem*item)函数在某一行row的前 面插入一个QListWidgetItem对象item也需要先创建这个item并设置好其属性。 void MainWindow::on_actListInsert_triggered()
{ //插入一个项
// QListWidgetItem *aItem;QIcon aIcon;aIcon.addFile(:/images/icons/check2.ico); //图标bool chkui-chkBoxListEditable-isChecked(); //是否可比那几QListWidgetItem* aItemnew QListWidgetItem(New Inserted Item); //创建一个项aItem-setIcon(aIcon);//设置图标aItem-setCheckState(Qt::Checked); //设置为checkedif (chk) //设置标记aItem-setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);elseaItem-setFlags(Qt::ItemIsSelectable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);ui-listWidget-insertItem(ui-listWidget-currentRow(),aItem); //在当前行的上方插入一个项
} 4.3 删除当前项和清空列表 takeltem()函数只是移除一个项并不删除项对象所以还需要用delete从内存中删除它。 要清空列表框的所有项只需调用QListWidget::clear()函数即可。 void MainWindow::on_actListDelete_triggered()
{ //删除当前项int rowui-listWidget-currentRow();//当前行QListWidgetItem* aItemui-listWidget-takeItem(row); //移除指定行的项但不deletedelete aItem; //需要手工删除对象
} 4.4 遍历并选择项 函数QListWidget1tem:setCheckState(Qt::CheckStatestate设置列表项的复选状态枚举类型 Qt::CheckState有3种取值。 Qt::Unchecked不被选中。 Qt::PartiallyChecked部分选中。在目录树中的节点可能出现这种状态比如其子节点没 有全部被勾选时。 Qt::Checked,被选中。 void MainWindow::on_actSelALL_triggered()
{ //项全选int cntui-listWidget-count();//项个数for (int i0; icnt; i){QListWidgetItem *aItemui-listWidget-item(i);//获取一个项aItem-setCheckState(Qt::Checked);//设置为选中}
} 4.5 QListWidgetItem常用信号 void MainWindow::on_listWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
{ //listWidget当前选中项发生变化QString str;if (current ! NULL) //需要检测变量指针是否为空{if (previousNULL) //需要检测变量指针是否为空str当前current-text();elsestr前一项previous-text(); 当前项current-text();ui-editCutItemText-setText(str);}
} 5.QListWidget 类简单应用 #include QtGui/QApplication
#include QWidget
#include QLabel
#include QListWidget
#include QHBoxLayout
#include QIconint main(int argc, char *argv[])
{QApplication a(argc, argv);QLabel *label new QLabel;label-setFixedWidth(100);QListWidget *listWidget new QListWidget;listWidget-addItem(new QListWidgetItem(QIcon(QObject::tr(images/china.png)), QObject::tr(China)));listWidget-addItem(new QListWidgetItem(QIcon(QObject::tr(images/hk.png)), QObject::tr(Hong Kong)));listWidget-addItem(new QListWidgetItem(QIcon(QObject::tr(images/macau.png)), QObject::tr(Macau)));QHBoxLayout *mainlayout new QHBoxLayout;mainlayout-addWidget(listWidget);mainlayout-addWidget(label);QObject::connect(listWidget, SIGNAL(currentTextChanged(QString)), label, SLOT(setText(QString)));QWidget *widget new QWidget;widget-setLayout(mainlayout);widget-setWindowTitle(QObject::tr(QListWidget Demo));widget-show();return a.exec();
}