Witam,
Gdzie muszę wywołać procedurę wczytywania zawartości pliku, tak aby po otwarciu nowego okienka z MenuBar automatycznie pobierała mi się zawartość pliku tekstowego do stworzonych wcześniej Line Edit?
Witam,
Gdzie muszę wywołać procedurę wczytywania zawartości pliku, tak aby po otwarciu nowego okienka z MenuBar automatycznie pobierała mi się zawartość pliku tekstowego do stworzonych wcześniej Line Edit?
No dobra, ale z czym masz problem? Czy może na gotowca czekasz?
Zestaw klas do użycia do wczytania danych: QTextStream
, QTextCodec
(dla ustalenia kodowania), QFile
.
Wczytanie danych już mam, ale zaimplementowane są po naciśnięciu buttona a ja chce aby automatycznie się wczytały kiedy otworze nowe okno.
void Dialog::on_pushButton_4_clicked()
{
QFile file("C:\\dane.txt");
if (!file.open(QIODevice::ReadOnly))
QMessageBox::information(0,"info",file.errorString());
QTextStream in(&file);
ui->lineEdit->setText(in.readLine(0));
ui->lineEdit_2->setText(in.readLine(10000));
}
Zrób sobie jakąś metodę, która weźmie od Ciebie obiekt klasy QFile
, wczyta te dane i wprowadzi je do LineEditów. Wywołaj ją przed otwarciem nowego okna.
Dialog d(this) ;
d.someMethod(file) ;
d.exec() ;
Ewentualnie wywołaj tę metodę z konstruktora, tak jak napisał @MarekR22.
Powinno być tak:
void Dialog::loadEditorsContents()
{
QFile file("C:/dane.txt"); // tak slash może, a nawet powinien być w tą stronę
if (!file.open(QIODevice::ReadOnly)) {
QMessageBox::information(0,"info",file.errorString());
} else {
QTextStream in(&file);
// in->setCodec("UTF-8");
ui->lineEdit->setText(in.readLine());
ui->lineEdit_2->setText(in.readLine());
}
}