在QT中制作了一个文本浏览器,但代码就像它不存在一样?

Made a Text Browser in QT but the Code Acts Like it Doesn't Exist?

本文关键字:代码 一样 不存在 文本 QT 一个 浏览器      更新时间:2023-10-16

我对QT很陌生,所以也许这个问题的答案很简单。今年,我正在为我们的飞思卡尔汽车制作一个终端,它只是一辆自动驾驶绕轨道行驶的汽车。我们使用线扫描相机,为您提供一行 128 像素长的数据,您可以将其细化为"白色"或"黑色"(轨道边缘)值。去年,该团队在QT中制作了这个终端,用于修改某些系数,停止电机以及通过蓝牙进行各种操作。使用文本浏览器来显示线路摄像机看到的内容。

去年,他们将两台摄像机组合在一起,创建了一张图像,但今年我们正在配置它们,它们将生成两张不同的赛道图像。当然,我需要制作两个文本浏览器,每个相机一个。应该只是复制代码并更改某些名称的情况吗?显然不是。

我使用 design gui 将文本浏览器放置在窗口中,为其命名,并使其设置与其他浏览器匹配。我进入了主窗口 c 文件的代码并在那里调整了代码。对于对其他浏览器的每次引用,我都确保其中一个是与此浏览器相同的代码行。当我完成并去构建项目时,它告诉我浏览器不是"UI::MainWindow"的成员,并将我指向ui_mainwindow.h文件。所以我进入了那个标题并在那里做了同样的事情。但是当我构建它时,它给了我一个错误:

...\ui_mainwindow.h:1363:错误:C2065:"tb_camera_out_close":未声明的标识符

这怎么可能?似乎没有任何对其他文本浏览器的引用,它工作正常。我该如何声明这一点?当我放置它时,gui 界面不应该为我完成吗?

以下是涉及的主窗口 C 文件中的代码:

ui->tb_camera_out->setText(msgs_received[1] + 'n' + ui->tb_camera_out->toPlainText());
ui->tb_camera_out_close->setText(msgs_received[2] + 'n' + ui->tb_camera_out_close->toPlainText());

tb_camera_out是旧的相机代码(我知道 toplaintext() 部分不起作用,我也试图让文本向下滚动而不是像实际驾驶时那样向上滚动,但我需要先解决这个主要问题)

这是我添加的标头中的代码:

    tb_camera_out = new QTextBrowser(centralWidget);
    tb_camera_out->setObjectName(QStringLiteral("tb_camera_out"));
    sizePolicy.setHeightForWidth(tb_camera_out->sizePolicy().hasHeightForWidth());
    tb_camera_out->setSizePolicy(sizePolicy);
    tb_camera_out->setMinimumSize(QSize(450, 0));
    tb_camera_out->setMaximumSize(QSize(16777215, 16777215));
    tb_camera_out->setStyleSheet(QLatin1String("background-color: rgb(0, 0, 0);n" "color: rgb(31, 234, 0);"));
    gridLayout_4->addWidget(tb_camera_out, 1, 0, 1, 5);
    tb_camera_out_close = new QTextBrowser(centralWidget);
    tb_camera_out_close->setObjectName(QStringLiteral("tb_camera_out_close"));
    sizePolicy.setHeightForWidth(tb_camera_out_close->sizePolicy().hasHeightForWidth());
    tb_camera_out_close->setSizePolicy(sizePolicy);
    tb_camera_out_close->setMinimumSize(QSize(450, 0));
    tb_camera_out_close->setMaximumSize(QSize(16777215, 16777215));
    tb_camera_out_close->setStyleSheet(QLatin1String("background-color: rgb(0, 0, 0);n" "color: rgb(31, 234, 0);"));

同样,旧代码位于顶部,引用tb_camera_out。我添加的内容与tb_camera_out_close相关联。

我似乎已经解决了这个问题。奇怪的是,为了修复出现的错误,我不仅必须编辑该标头,而且必须删除它并运行 qmake 来恢复它。然后,我不得不删除所有过去的构建,以使该内容在运行时甚至显示出来。