c++ - QT Creator Main.cpp 主窗口.cpp

标签 c++ qt multiple-instances

我目前正在研究我的机电一体化/机器人学硕士论文项目。 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.cppMainWindow.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/

相关文章:

java - 是否可以在同一程序的多个实例的多个线程之间进行通信?

java - java中实现mouseLIstener和mouseMotionListener的类

c++ - 如何将 std::string 转换为构造函数中的几种类型中的任何一种?

c++ - qt 错误 : undefined reference to `str2ba'

c++ - 如何将 C++ std::vector 传输到 openCL 内核?

c++ - 有没有一种简单的方法可以在 QWidget 的子项上触发 hoverenter/hoverleave 事件?

ios - 除了通过 app delegate 获取 rootViewController 之外,还有其他方法吗

c++ - 使用 ubuntu 终端在 c++ 上运行线程类的问题

c++ - 在 C++ 中制作 QPushButton

c++ - 向 QToolBar 添加一些文本