Каков стандартный способ организации кода Qt? - PullRequest
2 голосов
/ 16 июня 2011

Я хочу знать, каков стандартный способ организации кода Qt с использованием Qt Creator?У меня есть этот вопрос, потому что я новичок в Qt и изучаю Qt, следуя учебнику на основе c ++, т.е. учебнику по адресной книге Qt.Код очень хорошо разбит в этом уроке в заголовочных файлах и файлах cpp.Но когда я пытался собрать одно и то же приложение с использованием Qt Creator, оно было совершенно другим.Я имею в виду, что в заголовочном файле и в файле cpp нет даже декларации элементов управления.Они просто сбрасывают все в файл пользовательского интерфейса.

Ответы [ 2 ]

1 голос
/ 17 июня 2011

Вот что я делаю:

Создайте код из Qt Creator.Это дает вам класс с таким именем, как Ui :: MyDialog.Затем создайте класс, производный от Ui :: MyDialog.Создайте слоты, необходимые для диалога в производном классе.

В конструкторе вызовите метод setupUi (), а затем подключите слоты к сигналам в виджетах диалога.В другом месте вашей программы (возможно, в функции main ()) создайте производный класс и затем вызовите его метод show ().

Я заметил, что Qt Creator не показывает вам код, сгенерированный из вашего диалогаФайл пользовательского интерфейса.Возможно, было бы полезно использовать Qt Designer для просмотра кода C ++, который он производит.Это может дать вам лучшее представление о том, что делать с Creator.

Хорошей книгой для изучения Qt является C ++ GUI Программирование на Qt 4 от Blanchette и Summerfield: http://www.amazon.com/gp/product/0132354160/ref=ase_trolltech/. Если вы заинтересованы вQt, я очень рекомендую это.

0 голосов
/ 17 июня 2011

Хотя среды GUI IDE, кажется, побуждают вас смешивать код GUI с программной логикой, вам не нужно это делать.Вы можете использовать конструктор графического интерфейса пользователя для разметки графического интерфейса пользователя, а в классе-обертке соединять сигналы и слоты ваших виджетов, необходимые для логики графического интерфейса пользователя, и излучать пользовательские сигналы, чтобы программная логика в другом классе могла воздействовать на него, не смешивая их.

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