我目前正在研究我的机电一体化/机器人学硕士论文项目。 y 项目的目标是读取 .STL 文件并计算工业机器人的路径。
到目前为止,一切对我来说都很好,但现在我的教授要我开发一个 GUI,因为到目前为止我只是使用命令窗口并手动编写所有参数。现在我正在使用 Qt Creator 并为我的项目开发一个简单的 GUI。
在这个界面中,我得到了一个用于 ascii 文件的 RadioButton。为了让我的函数正常工作,我必须确定用户输入的是 ascii 文件还是二进制文件。但这是我的第一个问题。在命令窗口中,我只是检查 argv[]
中的字符串 "-ascii"
。如果用户输入此内容,则标志设置为 false。
if(0 == strcmp(argv[i], "-ascii")) {
isBinaryFormat = false;
}
现在我只想在 GUI 中做同样的事情。如果 RadioButton 被选中,则标志设置为 false。所以我在main.cpp
文件
if(ui->radioButton->isChecked()) {
isBinaryFormat = false;
}
但是ui在main函数中是未知的。在谷歌上搜索帮助后,我刚刚找到了在 mainwindow.cpp
文件中编写代码的教程。但是如何将主窗口文件中的信息发送到 main.cpp
文件中的主要函数。
第二个问题是,如果我使用QFileDialog::getOpenFilename
方法,我如何将文件名传递给我的其他函数。这个想法是,用户在他的 PC 上的任何地方选择一个文件,然后程序打开该文件并对其进行处理。但在这里我遇到了同样的问题。我可以浏览文件,但如何将信息从 mainwindow.cpp
传输到我的 main.cpp
。
我很感激我得到的任何帮助。非常感谢一个孤独的coder
最佳答案
首先,您不要在main.cpp
中编写UI 代码。
您可以在 MainWindow.cpp
和 MainWindow.h
中的 MainWindow
类所在的位置编写它。
然后您的 ui->
将工作,因为它随后可以访问该 namespace 。
我不明白你为什么要在 Main.cpp
中有函数?
如果不查看更多代码,您不太可能得到答案。
如果你想在类中使用外部函数,要么直接在类中声明方法,要么创建一个新文件,如 global_function.h
和 .cpp
,你可以包括在你的类(class)。 (不要忘记头球后卫)
此外,该代码不应该是这样的:
if(!ui->radioButton->isChecked())
{
isBinaryFormat = false;
}
因为:
If the RadioButton is checked flag is set to false.
QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
"/home",
tr("Images (*.png *.xpm *.jpg)"));
getOpenFileName( )
将返回一个包含所选文件的路径和文件名的字符串,然后您可以将其传递给您的函数。
请阅读更多有关如何使用 Qt 的信息.
关于c++ - QT Creator Main.cpp 主窗口.cpp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33693900/