Qt-如何从同一文件中的另一个函数获取变量值
Qt新手。还在学呢。我有clone.ui、clone.h和clone.cpp。克隆用户界面有两个按钮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
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后,按预期工作:)干杯!