Qt-如何从同一文件中的另一个函数获取变量值

Qt-如何从同一文件中的另一个函数获取变量值,qt,qt5,Qt,Qt5,Qt新手。还在学呢。我有clone.ui、clone.h和clone.cpp。克隆用户界面有两个按钮 浏览按钮->选择目标路径 添加按钮->克隆(复制)文件 克隆 QString destination_path; QFileDialog *fdialog; Clone.cpp已被删除 QFileInfo finfo; // Declare outside function to increase scope QString destination_name; void Clo

Qt新手。还在学呢。我有clone.ui、clone.h和clone.cpp。克隆用户界面有两个按钮

  • 浏览按钮->选择目标路径
  • 添加按钮->克隆(复制)文件
  • 克隆

    QString destination_path;
    QFileDialog *fdialog;
    
    Clone.cpp已被删除

       QFileInfo finfo; // Declare outside function to increase scope
       QString destination_name; 
    
    void Clone:: on_pushButton__Browse_clicked()
    {  
      /*get the destination path in QString using QFileDialog 
        Got destination_path */
    
          QString destinatino_path = QFileDialog::getExistingDirectory(....);
          QFile finfo(destination_path);
         // QFileDialog  finfo(destionation_path)  
    
     }`  
    
    在同一个文件Clone.cpp中

        void Clone:: on_btn_Add_clicked()
       { 
          // how to get the  same destination_path value here... 
          //using QFile or some other way?    
    
        }
    
    我撞到这里了,我遗漏了什么吗?任何想法/建议都非常有用。

    您已经创建了一个类(
    Clone
    ),它有一个数据成员
    QString destination\u path

    由于它是一个成员变量,因此它具有类作用域(如中所示,您可以在任何
    Clone::
    member函数中访问相同
    Clone
    对象的相同变量)

    问题是,您通过在
    Clone::on_button\u Browse\u clicked()
    中声明另一个
    QString destination\u path
    来隐藏它

    解决方案是从行的开头删除
    QString
    ,这意味着您现在正在为类对象的数据成员赋值

    void Clone::on_pushButton__Browse_clicked()
    {  
        ...
    
        // now you're assigning to your object's data member
        destination_path = QFileDialog::getExistingDirectory(....); 
    
        ...
    } 
    
    稍后,在
    Clone::on_btn\u Add_clicked()
    中,您可以访问
    destination_path
    ,并在
    Clone::on_button_Browse_clicked>中为其分配值,您已经创建了一个类(
    Clone
    ),该类具有数据成员
    QString destination_path

    由于它是一个成员变量,因此它具有类作用域(如中所示,您可以在任何
    Clone::
    member函数中访问相同
    Clone
    对象的相同变量)

    问题是,您通过在
    Clone::on_button\u Browse\u clicked()
    中声明另一个
    QString destination\u path
    来隐藏它

    解决方案是从行的开头删除
    QString
    ,这意味着您现在正在为类对象的数据成员赋值

    void Clone::on_pushButton__Browse_clicked()
    {  
        ...
    
        // now you're assigning to your object's data member
        destination_path = QFileDialog::getExistingDirectory(....); 
    
        ...
    } 
    

    稍后,在
    Clone::on_btn\u Add_clicked()
    中,您可以访问
    destination\u path
    ,并在
    Clone::on_button\u Browse\u clicked

    中为其分配值,getExistingDirectory返回一个目录,如果您想要复制一个文件,您想要复制的文件是什么?想要复制可执行文件吗。一旦得到目录路径,文件路径将是“目录路径+可执行文件”getExistingDirectory返回一个目录,并且您要复制一个文件,您要复制的文件是什么?要复制可执行文件吗。一旦得到目录路径,文件路径将是“目录路径+可执行文件”是,正确。移除QString后,按预期工作:)干杯!是的,没错。移除QString后,按预期工作:)干杯!