Wypisanie zawartości pliku do pola LineEdit [QT]

0

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?

0

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.

0

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));

}

0

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.

1

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());
    }
}

W sumie podejrzewam, że powinieneś zainteresować się klasą `QSettings`.

1 użytkowników online, w tym zalogowanych: 0, gości: 1