MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
this->setupUi(this);
this->setupActions();
this->setWindowTitle(tr("CuteEdit"));
label = new QLabel(tr("No Open Files"));
this->setCentralWidget(label);
label->setAlignment(Qt::AlignCenter);
}
С помощью приведенного выше кода я получаю GUI, подобный этому (это скриншот всего экране, наблюдайте только за окном, отображаемым в середине страницы электронной книги). (Я использовал QT Designer)
Теперь я хочу, чтобы пользователь выбрал File-> Open.. Появится диалоговое окно, и файл будет выбран.. Его содержимое должно отображаться в виджете * textEdit.. Функция для этого ниже..
void MainWindow::loadFile()
{
QString filename = QFileDialog::getOpenFileName(this);
QFile file(filename);
if (file.open(QIODevice::ReadOnly|QIODevice::Text))
{
label->hide();
textEdit->setPlainText(file.readAll());
mFilePath = filename;
QMainWindow::statusBar()->showMessage(tr("File successfully loaded."), 3000);
}
}
Окно вылетает на строке: -
textEdit->setPlainText(file.readAll());
Но если я прокомментирую строку: -
это-> setCentralWidget (метка);
я имею в виду, что я удаляю метку как центральный виджет, программа работает, как и ожидалось.. Почему?
А еще мне не совсем понятна концепция CentralWidget. Пожалуйста, руководство.