Как получить доступ к нестатической функции Qt Ui из статической функции-члена другого класса? - PullRequest
0 голосов
/ 10 января 2019

Итак, я и мои друзья разрабатываем Connect4 на C ++. Сначала мы разработали логику игры в консольном приложении Visual Studio. Мы придумали 3 класса: «Логика», «GameUi» (это название, вероятно, не подходит) и «Gui». (Я должен упомянуть, что все члены этих классов являются статическими членами, поэтому никаких экземпляров) Как только логика сработала, моя работа была перенести ее на Qt. И вот проблема:

Таким образом, в основном, когда игрок сделал ввод (он же. Игрок выбрал столбец, в который он хочет добавить срез (?)), Класс Logic обрабатывает этот ввод и обновляет вектор, в котором мы сохраняем поле. , После этого логика вызывает класс GamUi, который затем должен вызывать функцию в классе Gui (обратите внимание, что класс Gui теперь является классом Qt). Проблема в том, что я не могу вызвать нестатическую функцию в классе Qt, чтобы изменить пользовательский интерфейс из статической функции из другого класса. Сначала я подумал о том, чтобы сделать Ui общедоступным, что, по мнению интернета, не очень хорошее программирование.

Большое спасибо заранее

Ps: Пожалуйста, не судите меня за мои не говорящие по-английски и мои не очень хорошие навыки c ++.

1 Ответ

0 голосов
/ 10 января 2019

Предполагая, что GUI является одноэлементным, вы можете закодировать статический метод GUI :: instance (), который возвращает указатель на себя. Звоните из любой точки мира, и у вас есть указатель. Более того, [наследуйте от QObject и] используйте сигналы и слоты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...