文章目录
- QListWidget(纵向列表)
-
- QTableWidget(表格)
-
- QTreeWidget(树形控件)
-
QListWidget(纵向列表)
QListWidget里的每个元素都为 QListWidgetItem 类型的
属性 | 说明 |
---|
currentRow | 当前是第几行被选中 |
count | 一共有多少行 |
sortingEnabled | 是否允许排序 |
isWrapping | 是否允许换行 |
itemAlignment | 元素的对齐方式 |
selectRectVisible | 被选中元素矩形是否可见 |
spacing | 元素之间的间隔 |
方法 | 说明 |
---|
addItem(const QString& label) addItem(QListWidgetItem *item) | 添加元素 |
currentItem() | 返回当前选中的元素 |
setCurrentItem(QListWidgetItem* item) | 设置选中元素 |
setCurrentRow(int row) | 设置选中第几行的元素 |
insertItem(const QString& label, int row) insertItem(QListWidgetItem *item, int row) | 在指定位置插入元素 |
item(int row) | 返回表示 row 行的元素 |
takeItem(int row) | 删除指定行的元素,并返回这个被删除的元素 |
信号 | 说明 |
---|
currentItemChanged(QListWidgetItem* current, QListWidgetItem* old) | 选中不同元素时触发,参数为当前选中的元素和之前选中的元素 |
currentRowChanged(int) | 选中不同元素时触发,参数为当前选中元素的行数 |
itemClicked(QListWidgetItem* item) | 点击某个元素时触发 |
itemDoubleClicked(QListWidgetItem* item) | 双击某个元素时触发 |
itemEntered(QListWidgetItem* item) | 鼠标进入元素时触发 |
使用
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->listWidget->addItem("C++");ui->listWidget->addItem("Java");ui->listWidget->addItem("Qt");
}
void Widget::on_pushButton_clicked()
{const QString &text = ui->lineEdit->text();if(text.isEmpty()) return;ui->listWidget->addItem(text);
}
void Widget::on_pushButton_2_clicked()
{int row = ui->listWidget->currentRow();ui->listWidget->takeItem(row);
}
QTableWidget(表格)
QTableWidget中的每一个元素都是 QTableWidgetItem 类型的
方法 | 说明 |
---|
item(int row, int column) | 根据行列获取指定内容 |
setItem(int row, int column, QTableWidget*) | 根据行列设置元素 |
currentItem() | 返回选中的元素 |
currentRow() | 返回被选中元素是第几行 |
currentColumn() | 返回被选中元素是第几列 |
row(QTableWidgetItem* ) | 获取指定item的行号 |
column(QTableWidgetItem* ) | 获取指定item的列号 |
rowCount() | 获取表格的行数 |
columnCount() | 获取表格的列数 |
insertRow(int row) | 在第 row 行插入新行 |
insertColumn(int column) | 在第 column 列插入新列 |
removeRow(int row) | 删除第 row 行 |
removeColumn(int column) | 删除第 colimn 列 |
setHorizontalHeaderItem(int column, QTableWidget*) | 设置指定列的表头 |
setVerticalHeaderItem(int row, QTableWidget*) | 设置指定行的表头 |
信号 | 说明 |
---|
cellClicked(int row, int column) | 点击单元格触发 |
cellDoubleClicked(int row, int column) | 双击单元格触发 |
cellEntered(int row, int column) | 鼠标进入单元格触发 |
currentCellChanged(int row, int column, int previousRow, int previousColumn) | 选中不同单元格触发 |
使用
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->tableWidget->insertRow(0); ui->tableWidget->insertColumn(0);ui->tableWidget->insertColumn(1);ui->tableWidget->insertColumn(2);ui->tableWidget->setHorizontalHeaderItem(0, new QTableWidgetItem("学号"));ui->tableWidget->setHorizontalHeaderItem(1, new QTableWidgetItem("姓名"));ui->tableWidget->setHorizontalHeaderItem(2, new QTableWidgetItem("性别"));ui->tableWidget->setItem(0, 0, new QTableWidgetItem("0001"));ui->tableWidget->setItem(0, 1, new QTableWidgetItem("张三"));ui->tableWidget->setItem(0, 2, new QTableWidgetItem("男"));
}
void Widget::on_pushButton_clicked()
{int row = ui->tableWidget->rowCount();ui->tableWidget->insertRow(row);
}
void Widget::on_pushButton_3_clicked()
{int lie = ui->tableWidget->columnCount();ui->tableWidget->insertColumn(lie);const QString &text = ui->lineEdit->text();ui->tableWidget->setHorizontalHeaderItem(lie, new QTableWidgetItem(text));
}
void Widget::on_pushButton_2_clicked()
{int row = ui->tableWidget->currentRow();ui->tableWidget->removeRow(row);
}
void Widget::on_pushButton_4_clicked()
{int lie = ui->tableWidget->currentColumn();ui->tableWidget->removeColumn(lie);
}
QTreeWidget(树形控件)
QTreeWidget里的每个元素都是 QTreeWidgetItem 类型的
方法 | 说明 |
---|
clear | 清空所有子节点 |
addTopLevelItem(QTreeWidgetItem* item) | 新增顶层节点 |
topLevelItem(int index) | 获取指定下标的顶层节点 |
topLevelItemCount() | 获取顶层节点个数 |
indexOfTopLevelItem(QTreeWidgetItem* item) | 查询指定节点是顶层节点中的下标 |
takeTopLevelItem(int index) | 删除指定的顶层节点,并返回删除的元素 |
currentItem() | 获取当前选中的节点 |
setCurrentItem(QTreeWidgetItem* item) | 选中指定节点 |
setExpanded(bool) | 展开/关闭节点 |
setHeaderLabel(const QString& text) | 设置头字段名称 |
信号 | 说明 |
---|
currentItemChanged(QTreeWidgetItem* current, QTreeWidgetItem* old) | 切换选中元素时触发 |
itemClicked(QTreeWidgetItem* item, int col) | 点击元素时触发 |
itemDoubleClicked(QTreeWidgetItem* item, int col) | 双击元素时触发 |
itemEntered(QTreeWidgetItem* item, int col) | 鼠标进入时触发 |
itemExpanded(QTreeWidgetItem* item) | 元素被展开时触发 |
itemCollapsend(QTreeWidgetItem* item) | 元素被折叠时触发 |
QTreeWidgetItem
方法 | 说明 |
---|
addChild(QTreeWidgetItem* child) | 新增子节点 |
childCount() | 子节点个数 |
child(int index) | 获取指定下标的子节点 |
takeChild(int index) | 删除对应下标的子节点 |
removeChild(QTreeWidgetItem* child) | 删除对应的子节点 |
parent() | 获取该元素的父节点 |
使用
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QTreeWidgetItem *item = new QTreeWidgetItem();item->setText(0, "高校");ui->treeWidget->addTopLevelItem(item);
}
void Widget::on_pushButton_clicked()
{const QString &text = ui->lineEdit->text();if(text.isEmpty()) return;QTreeWidgetItem *item = new QTreeWidgetItem();item->setText(0, text);ui->treeWidget->addTopLevelItem(item);
}
void Widget::on_pushButton_2_clicked()
{const QString &text = ui->lineEdit->text();if(text.isEmpty()) return;QTreeWidgetItem *cur = ui->treeWidget->currentItem();if(cur == NULL) return;QTreeWidgetItem *item = new QTreeWidgetItem();item->setText(0, text);cur->addChild(item);cur->setExpanded(true);
}
void Widget::on_pushButton_3_clicked()
{QTreeWidgetItem *cur = ui->treeWidget->currentItem();if(cur == NULL) return;QTreeWidgetItem* parent = cur->parent();if(parent == NULL){int index = ui->treeWidget->indexOfTopLevelItem(cur);ui->treeWidget->takeTopLevelItem(index);}else{parent->removeChild(cur);}
}