Qt的新手。还在学习它。我有clone.ui,clone.h和clone.cpp。 clone ui有2个按钮。
Clone.h
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?
}
我来到这里,我错过了什么吗?任何想法/建议都非常有用。
答案 0 :(得分:2)
您已创建一个包含数据成员Clone
的班级(QString destination_path
)。
由于它是一个成员变量,因此它具有类范围(因为您可以在同一个Clone::
对象的任何Clone
成员函数中访问相同的变量。
问题在于,您通过在QString destination_path
中声明另一个 Clone::on_pushButton__Browse_clicked()
来隐藏它。
void Clone::on_pushButton__Browse_clicked()
{
...
// this *hides* the class member with the same name
QString destination_path = QFileDialog::getExistingDirectory(....);
...
}
解决方案是从行的开头删除QString
,这意味着您现在正在分配给类对象的数据成员。
void Clone::on_pushButton__Browse_clicked()
{
...
// now you're assigning to your object's data member
destination_path = QFileDialog::getExistingDirectory(....);
...
}
稍后,在Clone::on_btn_Add_clicked()
您可以访问destination_path
,并在Clone::on_pushButton__Browse_clicked