Название: Вывод сообщения в графический интерфейс из другого файла. Отправлено: Hero Sanya от Май 25, 2020, 14:25 Так, я писал код в рабочую программу, но потом понял, что не получается это сделать. Создал специальный примерочный код.
В нём тоже не получается. Компилятор естественно не показывает ошибок. Даже, если вместо переменной, я вставлю сразу тупо любой текст, он тоже не выведется, но, если дополнить код, отладочным сообщением(cout<<"я работаю"; ), то оно выведется и сразу после ui и после. То есть метод работает и вызывается, но не работает сам вызов setText'а. .cpp - файл, который хочет вызвать метод, который выведет посланную переменную в интерфейс. Код: void one(){ mainwindow.cpp - тот самый метод Код: void MainWindow::vivod_na_ekran(int i){ Метод я сделал публичным. Код: public slots: Хотя на самом деле пытался и через публичную ui(по одной из подсказок, это называлось ленивым способом), но происходило тоже самое. Название: Re: Вывод сообщения в графический интерфейс из другого файла. Отправлено: Пантер от Май 25, 2020, 14:41 У тебя MainWindow уничтожается сразу после выхода из функции one.
Название: Re: Вывод сообщения в графический интерфейс из другого файла. Отправлено: Hero Sanya от Май 25, 2020, 14:49 У тебя MainWindow уничтожается сразу после выхода из функции one. Ну он же вызывает метод и даже отправляет туда переменную. Как это мешает ui->setText.Название: Re: Вывод сообщения в графический интерфейс из другого файла. Отправлено: kambala от Май 25, 2020, 15:08 У тебя MainWindow уничтожается сразу после выхода из функции one. из-за этого форма сразу же исчезает с экрана вместе со всем своим содержимымНазвание: Re: Вывод сообщения в графический интерфейс из другого файла. Отправлено: Пантер от Май 25, 2020, 15:19 Просто поменяй свой код на вот этот и проверь:
Код
Название: Re: Вывод сообщения в графический интерфейс из другого файла. Отправлено: Hero Sanya от Май 25, 2020, 15:41 Просто поменяй свой код на вот этот и проверь: Код: void one(){ Ну, в этом случае, появляется второй экран, который перегораживает первый, не позволяя с ним что либо делать. Если убрать vivod->show(), то останется обычный экран, на котором изменение текста не происходит. Название: Re: Вывод сообщения в графический интерфейс из другого файла. Отправлено: Пантер от Май 25, 2020, 15:49 А зачем ты делаешь MainWindow vivod? Что-то мне кажется, что у тебя опять напутано все в плане c++. Приведи минимальный полный код.
Название: Re: Вывод сообщения в графический интерфейс из другого файла. Отправлено: Hero Sanya от Май 25, 2020, 16:44 А зачем ты делаешь MainWindow vivod? Что-то мне кажется, что у тебя опять напутано все в плане c++. Приведи минимальный полный код. Это и есть минимальный полный код.Больше только весь код. но там добавить нечего. код кнопки: Код: void MainWindow::on_pushButton_clicked() Код метода, который выводит переменную. Код: void MainWindow::vivod_na_ekran(int i){ Код вызывающей функции: Код: #include "mainwindow.h" .h Код: #ifndef FOUR_H Просто, выводится цифра, на подменённом экране, не закрывая старого даже. А проблема в том, что через подмену экрана я не могу реализовать. У меня внутри функции будет, что то типо счётчика загрузки. Название: Re: Вывод сообщения в графический интерфейс из другого файла. Отправлено: Пантер от Май 25, 2020, 18:00 Ты вызываешь из MainWindow свободную функцию, которая не имеет доступа к этому MainWindow. Сделай one членом класса MainWindow или передавай в one указатель на MainWindow
Код
Название: Re: Вывод сообщения в графический интерфейс из другого файла. Отправлено: Hero Sanya от Май 25, 2020, 18:14 Ты вызываешь из MainWindow свободную функцию, которая не имеет доступа к этому MainWindow. Сделай one членом класса MainWindow или передавай в one указатель на MainWindow Да, с указателем, сработало. Спасибо.Код
|