我开发了一个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;
}
你知道我哪里错了吗?
感谢
答案 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 */
//...
}