Qt编程:QListWidget与QStackedWidget实战技巧

需积分: 9 3 下载量 105 浏览量 更新于2024-09-17 1 收藏 108KB PDF 举报
本文主要总结了Qt开发中常用的5种控件的使用方法,包括QListWidget和QStackedWidget,旨在分享实践经验,帮助开发者更好地理解和应用这些控件。 在Qt编程中,QListWidget是一种常用的列表控件,用于展示一系列可选择的项目。创建一个新的QListWidget实例可以通过以下代码实现: ```cpp QListWidget* listwidget = new QListWidget; ``` 为了设置listwidget中的item,你可以指定其图标和文本,如下所示: ```cpp QIcon icon; // 初始化图标 QString name; // 初始化文本 QListWidgetItem* itm = new QListWidgetItem(QIcon(icon), name); ``` 将item添加到listwidget有两种方式,一是添加到最后: ```cpp listwidget->addItem(itm); ``` 二是插入到特定位置(例如第一个位置): ```cpp listwidget->insertItem(0, itm); ``` 选中特定行可使用`setCurrentRow()`函数: ```cpp listwidget->setCurrentRow(int row); // row是你要选中的行号 ``` 获取当前选中的item索引可以这样操作: ```cpp QModelIndex curSelItm = listwidget->currentIndex(); ``` 当listwidget中的item被点击时,可以连接信号和槽来处理: ```cpp connect(listwidget, SIGNAL(clicked(QModelIndex)), this, SLOT(selectItem(QModelIndex))); ``` 调整item的高度可以设定大小提示: ```cpp QSize size; size.setHeight(45); ui->listWidget->item(5)->setSizeHint(size); ``` 给当前选中的item设置背景图片: ```cpp QImage _image("strPath + menu_bg.png"); // 加载图片 listWidget->currentItem()->setBackground(QBrush(_image)); ``` 另一种常见的控件是QStackedWidget,它用于在多个页面之间进行切换。创建QStackedWidget并添加页面: ```cpp QStackedWidget* stackedWidget = new QStackedWidget; // 新建一个QStackedWidget实例 stackedWidget->addWidget(QWidget *page); // 添加一个QWidget作为页面 stackedWidget->insertWidget(int index, QWidget *page); // 在特定位置插入一个页面 ``` 显示特定索引的页面: ```cpp stackedWidget->setCurrentIndex(int index); // index是你想要显示的页面的索引 ``` 当QListWidget的当前项发生变化时,可以连接信号和槽来更新QStackedWidget的页面: ```cpp connect(listWidget, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, SLOT(changePage(QListWidgetItem*, QListWidgetItem*))); ``` 通过以上的方法,开发者能够熟练地使用QListWidget和QStackedWidget,提高Qt应用的交互性和用户体验。