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);
}
}