0

我已经getOPenFileName在 qt 的处理程序中实现了(when_pushbutton_clicked更具体地说)。如何将生成的字符串保存QString在 main 中而不是处理程序中?

4

1 回答 1

0

您可以使用信号连接将文件名的路径保存在 QString 变量中。

const QString fileName = QFileDialog::getOpenFileName(0, tr("Select the file"), getLastDirectory(), "Txt Files (*.txt)");
if (fileName.isEmpty()) {
    // No file was selected
    return;
}
// then emit the signal
emit fileWasSelected(fileName);

在您的主要功能中,您无法通过简单的连接处理主类中的事件:

QObject::connect(yourClass, &YourClass::fileWasSelected, [&](const QString& filename) {
  // Now, do what you want with your path 
}):

另一种方法是将文件保存在私有变量中,并设置一个 getter:

class MyClass {
   ....
public:
    inline QString path() const { return _path; }
private:
    QString _path;
}

然后从 main 访问变量。

于 2017-07-05T10:24:29.027 回答