Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在QT中创建了一个文本浏览器,但代码的行为与';不存在?_C++_Qt - Fatal编程技术网

C++ 在QT中创建了一个文本浏览器,但代码的行为与';不存在?

C++ 在QT中创建了一个文本浏览器,但代码的行为与';不存在?,c++,qt,C++,Qt,我对QT很陌生,所以这个问题的答案可能很简单。我今年要为我们的飞思卡尔汽车做一个终端,它只是一辆自动绕轨道行驶的汽车。我们使用的是线扫描相机,它可以为您提供一行128像素长的数据,您可以将其细化为“白色”或“黑色”(轨迹边缘)值。去年,该团队在QT中制造了这个终端,用于通过蓝牙修改某些系数、停止电机以及各种东西。文本浏览器用于显示直线摄影机看到的内容 去年,他们将两个摄像头组合在一起创建了一个图像,但今年我们正在配置它们,它们将生成两个不同的轨迹图像。当然,我需要制作两个文本浏览器,每个摄像头一

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

去年,他们将两个摄像头组合在一起创建了一个图像,但今年我们正在配置它们,它们将生成两个不同的轨迹图像。当然,我需要制作两个文本浏览器,每个摄像头一个。应该只是复制代码和更改一些名称,对吗?显然不是

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

…\ui\u main window.h:1363:错误:C2065:“tb\u摄像头\u out\u 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\u camera\u out\u close有关。

我似乎已经解决了这个问题。奇怪的是,为了修复出现的错误,我不仅要编辑该标题,还要删除它并运行qmake来恢复它。然后,我不得不删除所有以前的构建,以便在运行它时让它显示出来。

您的代码的下一行类似于:
gridLayout\u 4->addWidget(tb\u camera\u out\u close,2,0,1,5)很确定是这样的,我只是忘了复制它,但看起来qt已经撤消了我对该头文件的更改。我很确定你不能编辑ui头文件,因为qt应该为你做这件事。事实上,它甚至在顶部说,这些变化将丢失。我想问题是ui没有更改头文件?这是正确的。ui标头将自动生成。您是否已将新的Textbrowser添加到Qt Designer内的布局中?我从来没有用过设计师,所以我现在真的不知道设计师是如何工作的。你说你让设置匹配了。请注意,没有唯一标识符或几何信息(位置)被更改为相同。我似乎已经解决了问题。奇怪的是,为了修复出现的错误,我不仅要编辑该标题,还要删除它并运行qmake来恢复它。然后,我不得不删除所有以前的构建,以便在运行它时让它显示出来。我确实为UI部分使用了设计器。无论如何谢谢你的帮助!很高兴你成功了!你试过“重建”吗?重建将在生成项目之前删除所有文件,并应具有相同的效果。