Qt — подключение() множества объектов пользовательского интерфейсаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Qt — подключение() множества объектов пользовательского интерфейса

Сообщение Anonymous »


В настоящее время я пытаюсь создать Qt-приложение с одним окном/страницей, которое имеет множество взаимодействующих виджетов (важно отметить), однако мне трудно найти хороший способ структурировать проект.

Как следует из названия и часто предлагается, я попробовал использовать функцию «Продвигать в» в QtDesigner, а также создать новые классы форм Qt Designer для каждого отдельного виджета, чтобы модульно структурировать и поддерживать чистоту кода (это вообще хорошая идея?), однако, насколько мне известно, в этом случае нет хорошего способа использовать метод QObject::connect, поскольку вы должны передать оба виджета в качестве аргументов, чего вы не можете сделать с отдельными классами форм дизайнера, если только вы не включите сгенерированный файл ui_*.h или используйте что-то вроде синглтона/моностата для создания нового объекта и доступа к нему таким образом, если Qt вообще с этим согласен.

Единственный другой вариант, о котором я знаю с моими текущими знаниями, - это сделать все функциональными членами MainWindow, что кажется ужасной идеей, или я мог бы вообще отказаться от дизайнерских форм и создавать виджеты полностью в коде (нежелательно). , но я сделаю это при необходимости), а также создам их экземпляры и соединим их в MainWindow.cpp, но похоже, что со временем это приведет к созданию единого монолитного файла MainWindow.

Мне сложно найти пример кода моей проблемы. В других проектах, похоже, таких проблем нет, поскольку они (по-видимому) в основном представляют собой автономные, изолированные виджеты. В конце концов я склоняюсь к последнему варианту: отказаться от файлов пользовательского интерфейса и создать экземпляр и подключить большинство виджетов в MainWindow.cpp, но я не уверен, что это лучшее решение. Вот основная схема моей проблемы: https://albumizr.com/a/a35j
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»