QAbstractItemView::ScrollPerPixel
时间: 2023-08-06 08:04:20 浏览: 55
QAbstractItemView::ScrollPerPixel是Qt框架中QAbstractItemView类的一个枚举值,用于指定QAbstractItemView类中滚动条的滚动方式。具体来说,它表示滚动条按照像素滚动,而不是按照固定的行或列滚动。这意味着滚动条可以平滑地滚动,而不是一次性地滚动整行或整列。这个枚举值可以作为setVerticalScrollMode()和setHorizontalScrollMode()方法的参数来设置垂直和水平滚动条的滚动方式。
相关问题
QStringList head; head << "ID" << "生产订单号" << "开胶工单号" << "物料编码" << "生产总重" << "版本号" << "绑定机台" << "操作员" << "开始时间" << "结束时间"; QScroller *pScroller = QScroller::scroller(ui->tWidgetOrder); pScroller->grabGesture(ui->tWidgetOrder,QScroller::LeftMouseButtonGesture); ui->tWidgetOrder->setVerticalScrollMode(QListWidget::ScrollPerPixel); ui->tWidgetOrder->setColumnCount(head.count()); ui->tWidgetOrder->setHorizontalHeaderLabels(head); ui->tWidgetOrder->horizontalHeader()->setAutoScroll(true); ui->tWidgetOrder->setEditTriggers(QAbstractItemView::NoEditTriggers); ui->tWidgetOrder->setSelectionMode(QAbstractItemView::SingleSelection); ui->tWidgetOrder->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tWidgetOrder->setColumnHidden(0, true);点击行数获取到id的值
您可以在`QListWidget`的`itemSelectionChanged`信号中获取所选行的`QListWidgetItem`对象,然后通过`QListWidgetItem`的`data`方法获取该行的ID值。示例代码如下:
```cpp
connect(ui->tWidgetOrder, &QListWidget::itemSelectionChanged, this, [this]() {
QListWidgetItem *item = ui->tWidgetOrder->currentItem();
if (item) {
int id = item->data(Qt::UserRole).toInt();
qDebug() << "Selected ID:" << id;
}
});
```
在设置行数据时,您可以使用`QListWidgetItem`的`setData`方法将ID值设置为`Qt::UserRole`属性,示例代码如下:
```cpp
QListWidgetItem *item = new QListWidgetItem();
item->setData(Qt::UserRole, id);
//设置其他列的数据
ui->tWidgetOrder->addItem(item);
```
tableWidget冻结列
要在Qt中使表格控件(如QTableWidget)冻结列,可以使用QTableView控件的setHorizontalHeader()和setViewport()方法。以下是一个简单的示例代码:
```
QTableWidget *table = new QTableWidget(this);
table->setRowCount(10);
table->setColumnCount(5);
// 设置表格控件的水平头部
QHeaderView *header = table->horizontalHeader();
header->setFixedHeight(30);
header->setStretchLastSection(true);
// 冻结前两列
QTableView *view = new QTableView(table);
view->setModel(table->model());
view->setSelectionModel(table->selectionModel());
view->setFixedWidth(300);
view->setFixedHeight(table->height());
view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setEditTriggers(QAbstractItemView::NoEditTriggers);
view->setFocusPolicy(Qt::NoFocus);
view->setFrameStyle(QFrame::NoFrame);
view->setStyleSheet("QTableView {border: none;}");
view->setColumnWidth(0, 100);
view->setColumnWidth(1, 100);
view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setSelectionBehavior(QAbstractItemView::SelectRows);
view->setSelectionMode(QAbstractItemView::SingleSelection);
view->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
view->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
view->setViewportMargins(0, 0, 0, 0);
view->setHorizontalHeader(header);
view->setViewport(view);
view->show();
```
在这个例子中,我们创建了一个10行5列的表格控件,并冻结了前两列。我们创建了一个QTableView控件来显示这个表格,然后设置了一些属性来使其看起来像一个表格而不是一个视图。最后,我们将QTableView的水平头部设置为表格控件的头部,并将QTableView的视口设置为QTableView本身,以便它可以正确地显示表格。