用C++代码写一个Qtablewidget 单机可以选中不连续的多行代码
时间: 2023-03-31 14:01:30 浏览: 114
可以使用以下代码实现:
QTableWidget *tableWidget = new QTableWidget(this);
tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
tableWidget->setRowCount(10);
tableWidget->setColumnCount(3);
// 选中第1、3、5行
tableWidget->setItemSelected(tableWidget->item(, ), true);
tableWidget->setItemSelected(tableWidget->item(2, ), true);
tableWidget->setItemSelected(tableWidget->item(4, ), true);
相关问题
用C++代码写一个Qtablewidget 单击可以选中不连续的多行代码
可以使用以下代码实现:
```c
// 获取选中的行数
int rowCount = ui->tableWidget->rowCount();
QList<int> selectedRows;
for(int i = ; i < rowCount; i++){
if(ui->tableWidget->item(i, )->isSelected()){
selectedRows.append(i);
}
}
// 取消所有选中状态
ui->tableWidget->clearSelection();
// 选中指定行
for(int i = ; i < selectedRows.size(); i++){
ui->tableWidget->item(selectedRows.at(i), )->setSelected(true);
}
```
这段代码可以获取 QTableWidget 中选中的行数,并且可以选中不连续的多行代码。
Qtablewidget一行中某列多行
QTableWidget是一个在Qt库中用于显示表格数据的控件,在它的单元格中,默认情况下是一行只有一行内容。如果你想要在同一行显示多行文字,可以采用自定义布局的方式来实现。一种常见的做法是在单元格内部添加一个`QTextEdit`或`QLabel`,然后设置其`wordWrap`属性为`true`,使其自动换行。
另一种方法是通过事件处理程序,比如`cellChanged`信号,当用户输入导致单元格变化时动态调整文本的样式,如使用`QRichText`或`QTextBrowser`来容纳多行文本,并控制其滚动条。
以下是简单示例:
```cpp
// 创建QTableWidgetItem并添加到QTableWidget中
QTableWidgetItem *item = new QTableWidgetItem();
QTextEdit *textEdit = new QTextEdit(this);
textEdit->setWordWrap(true); // 设置换行
item->setData(Qt::DisplayRole, textEdit);
tableWidget->setItem(row, column, item);
```
阅读全文