c++ QTableWidget 实现瀑布流
时间: 2023-10-05 11:11:33 浏览: 92
jq实现瀑布流
4星 · 用户满意度95%
要实现瀑布流布局,你可以使用 QTableWidget 进行操作。以下是一个简单的示例代码:
```cpp
#include <QApplication>
#include <QTableWidget>
#include <QHeaderView>
#include <QTableWidgetItem>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建 QTableWidget 对象
QTableWidget tableWidget;
tableWidget.setColumnCount(3); // 设置列数为3,可以根据需要进行调整
tableWidget.horizontalHeader()->setVisible(false); // 隐藏水平表头
tableWidget.verticalHeader()->setVisible(false); // 隐藏垂直表头
tableWidget.setShowGrid(false); // 隐藏网格线
// 设置每个单元格的大小
int cellWidth = 200;
int cellHeight = 200;
tableWidget.setIconSize(QSize(cellWidth, cellHeight));
// 添加内容到表格中
int itemCount = 10; // 假设有10个元素
for (int i = 0; i < itemCount; ++i)
{
QTableWidgetItem *item = new QTableWidgetItem();
item->setIcon(QIcon("path/to/image.png")); // 设置图标或图片路径
tableWidget.addItem(item);
}
// 设置瀑布流布局
int columnCount = tableWidget.columnCount();
int rowCount = std::ceil(itemCount / static_cast<double>(columnCount)); // 计算行数
tableWidget.setRowCount(rowCount); // 设置行数
for (int i = 0; i < rowCount; ++i)
{
for (int j = 0; j < columnCount; ++j)
{
int index = i * columnCount + j;
if (index < itemCount)
{
QTableWidgetItem *item = tableWidget.item(i, j);
tableWidget.setCellWidget(i, j, item);
}
}
}
// 显示窗口
tableWidget.show();
return app.exec();
}
```
你可以根据自己的需求修改代码中的图标或图片路径、单元格大小等参数。这样就可以使用 QTableWidget 实现瀑布流布局了。
阅读全文