#c #qt #qstring
#c #qt #qstring
Вопрос:
file.cpp
fileTxt::fileTxt()
{
}
fileTxt::~fileTxt()
{
}
void fileTxt::setFileTxt(Ui::Dialog *ui)
{
QString fileName="test.txt"
}
void fileTxt::elabFileTxt(Ui::Dialog *ui)
{
ui->label_7->setText(fileName);
}
у меня есть два метода внутри класса fileTxt.
В методе setFileTxt я устанавливаю имя файла члена QString в test.txt .
В файле.для имени файла h установлено значение private.
Почему fileName не передается в метод elabFileTxt, если два метода находятся в одном классе? Label_7 ничего не выводит. Если я использую «имя файла», label_7 выводит имя файла.
Комментарии:
1. Это очень простой вопрос. Я предлагаю вам потратить некоторое время на изучение основ C , прежде чем внедрять код в Qt. «Язык программирования C » (Б. Страуструп) — хорошее место для начала.
Ответ №1:
Вы повторно объявляете и определяете локальную переменную вместо глобальной переменной вашего класса, чего вы хотите, так это:
void fileTxt::setFileTxt(Ui::Dialog *ui)
{
fileName="test.txt";
}
Комментарии:
1. Да, это очень новая ошибка bie (me). Спасибо
Ответ №2:
Вы не можете вернуть a QString
из функции с void
возвращаемым типом.
Но здесь вы можете использовать преимущество объектной ориентации.
Вы добавляете QString
член в класс и устанавливаете его.
class fileTxt //...
{
//...
private:
QString fileName;
};
а затем используйте переменную-член
void fileTxt::setFileTxt(Ui::Dialog *ui)
{
fileName="test.txt" //uses class member fileName
}
void fileTxt::elabFileTxt(Ui::Dialog *ui)
{
ui->label_7->setText(fileName);
}