QT 二维数组图形网格

QT 2-dimensional array graphical grid

本文关键字:网格 图形 二维数组 QT      更新时间:2023-10-16

我正在制作一个二维网格(二维元胞自动机)。所以我为控制台编写了完整的代码。但是现在我需要使用 GUI 实现它。我正在使用linux,所以我读出QT Creator将是最佳选择。有人可以给我一个小提示吗?如何开始更好。您建议为此使用哪些视图/Widjets?任何帮助都会很有用。在 c++ 代码中,我制作了一个大小为 15/15 的二维 char 数组,其元素类型为"1"或"0"。我将非常感谢任何帮助!提前谢谢你。

方法之一:创建一个 QImage 并使用 setPixel 填充您的数据。将其转换为QPixmap并使用QLabel显示它。

下面是如何在 GUI 上显示数组的两个简单示例。当然,根据您的需要,也可能有其他变化。

具有网格布局的小组件

QWidget *mainWidget = new QWidget;
QGridLayout *layout = new QGridLayout;
for (int r = 0; r < 15; r++) {
    for (int c = 0; c < 15; c++) {
        QLabel *label = new QLabel("1", mainWidget); // Text could be 1 or 0.
        layout->addWidget(label, r, c);
    }
}
mainWidget->setLayout(layout);
mainWidget->show();

使用表视图

QTableWidget *table = new QTableWidget(15, 15);
for (int r = 0; r < 15; r++) {
    for (int c = 0; c < 15; c++) {
         QTableWidgetItem *item = new QTableWidgetItem("1"); // Text could be 1 or 0.
         table->setItem(r, c, item);
    }
}
table->show();