在Qt Creator中创建一个列表并实现翻页效果的代碼
时间: 2024-03-20 15:44:17 浏览: 86
以下是一个基于 Qt Creator 的示例代码,可以创建一个列表并实现翻页效果:
```cpp
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建主窗口
QWidget *window = new QWidget;
window->setWindowTitle("List with Pagination");
// 创建列表
QListWidget *listWidget = new QListWidget(window);
for (int i = 0; i < 100; ++i) {
listWidget->addItem(QString("Item %1").arg(i + 1));
}
// 创建分页控件
QSpinBox *spinBox = new QSpinBox(window);
spinBox->setRange(1, 10);
spinBox->setValue(1);
QPushButton *prevButton = new QPushButton("Prev", window);
QPushButton *nextButton = new QPushButton("Next", window);
QHBoxLayout *pageLayout = new QHBoxLayout;
pageLayout->addWidget(prevButton);
pageLayout->addWidget(spinBox);
pageLayout->addWidget(nextButton);
// 实现翻页效果
QObject::connect(prevButton, &QPushButton::clicked, [=]() {
int currentPage = listWidget->currentRow() / spinBox->value();
if (currentPage > 0) {
listWidget->setCurrentRow((currentPage - 1) * spinBox->value());
}
});
QObject::connect(nextButton, &QPushButton::clicked, [=]() {
int currentPage = listWidget->currentRow() / spinBox->value();
if (currentPage < listWidget->count() / spinBox->value()) {
listWidget->setCurrentRow((currentPage + 1) * spinBox->value());
}
});
// 布局
QVBoxLayout *mainLayout = new QVBoxLayout(window);
mainLayout->addWidget(listWidget);
mainLayout->addLayout(pageLayout);
window->show();
return app.exec();
}
```
这个示例代码中,我们首先创建了一个主窗口,并在其中创建了一个列表和一个分页控件,然后通过 `QObject::connect` 函数将翻页按钮与列表控件关联起来,实现翻页效果。最后,我们将列表和分页控件放入主窗口中,使用垂直布局进行排列。
阅读全文