birdwatcher (birdwatcher) wrote,
birdwatcher
birdwatcher

Category:

Ой (интересно только пианистам)

Первый раз вижу в Qt очевидный маразм. Как известно, размещением виджетов в окне управляет лейаут окна. В него можно запихивать сами виджеты, а можно другие лейауты -- для создания сложных дизайнов рекурсивно. Так, у класса QGridLayout есть методы addWidget(QWidget) и addLayout(QLayout), а также обобщённый addItem(QLayoutItem). Как и следует ожидать, QLayoutItem это абстрактный класс, означающий "нечто, размещением чего управляет QLayout". У него, естественно, есть специализации QWidgetItem, QLayout, и еще QSpacerItem (используется для заполнения пустого места).
Внимание, сюрприз: методом QGridLayout::addItem(QLayoutItem) нельзя пользоваться для добавления виджетов и лейаутов, что особо оговаривается в документации: Warning: Do not use this function to add child layouts or child widget items. Use addLayout() or addWidget() instead.
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 9 comments