使用qt为opencv程序构建一个gui

时间:2016-05-26 08:32:49

标签: c++ qt user-interface

我开发了一个opencv程序,我从输入中获取一些文件夹路径,所以我决定用qt创建一个gui。 gui很简单,基本上它是一些按钮。 问题是我无法将字符串从按钮传递到另一个按钮。

std::string MainWindow::on_pushButton_3_clicked()
{
    QString salvataggi=QFileDialog::getExistingDirectory(
                this,
                tr("Open File"),
                "/home/"
                );
    salvat= salvataggi.toStdString();
    return salvat;
}

我尝试使用指针,但没有任何重新启动。

std::string MainWindow::on_pushButton_3_clicked()
{
    QString salvataggi=QFileDialog::getExistingDirectory(
                this,
                tr("Open File"),
                "/home/"
                );
    savee= &salvat;
    *savee = salvataggi.toStdString();
    return savee;
}
你知道我哪里错了吗? 感谢

1 个答案:

答案 0 :(得分:1)

此方法是回调函数,必须返回void。它是从主循环调用的,由Qt引擎处理;并且它不关心回调的返回。

如果要从回调方法中存储一些字符串,只需在MainWindow类中添加一些成员变量:

class MainWindow : public QMainWindow
{
    // ...
    std::string my_string;
    //...
};

并从回调中获得您想要的价值。

如果您只想要用户提供此信息,请退出窗口:this->close();,然后从MainWindow对象中获取字符串:

int main(int argc, char *argv[])
{
    Application a(argc, argv);
    MainWindow win;
    win.show();
    a.exec();
    /* do what you want with win.my_string */
    //...
}