QT二维阵列图形网格

时间:2013-11-03 22:47:39

标签: c++ arrays qt grid

我正在制作一个二维网格(2-d Cellular Automaton)。所以我为控制台制作了完整的代码。但现在我需要用GUI实现它。我正在使用linux,所以我读到QT Creator将是最好的选择。 有人可以给我一个小小的提示。如何开始更好。您建议使用哪些视图/ widjets?任何帮助都会有用。 在c ++代码中,我创建了一个大小为15/15元素的二维字符数组,其中包含类型为“1”或“0”的元素。 我将非常感谢任何帮助!提前谢谢。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

以下是如何在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();