TLDR:
Я переключаюсь между вкладками моей программы, вызывая .hide () в исходном виджете и вызывая .show () в виджете, на который нужно переключиться, но при этом он становится только начальным виджетом, и ни один из остальных те, которые вписываются в мое окно.
Можно ли вообще гарантировать, что окно всегда соответствует тому месту, которое требуется в данный момент отображаемому виджету?
Чтобы было ясно, я на самом деле вызываю show () / hide () для QFrames, которые содержат виджеты, между которыми я переключаюсь. Единственное, что находится за рамкой, это кнопка возврата.
подробности:
Нажатие кнопки в моем виджете приводит к вызову .hide () для этого виджета и .show () для дочернего виджета; это механизм моей программы для переключения между окнами / вкладками (основной вид имеет несколько кнопок, каждая из которых соответствует новому окну, а каждое окно имеет кнопку возврата, чтобы вернуться к основному виду)
При первоначальном отображении мое окно выглядит нормально: все элементы на главном экране хорошо отображаются и идеально соответствуют окну. Но проблема возникает, когда я переключаюсь на другой виджет (опять же, я делаю это, вызывая .hide () для текущего виджета и вызывая .show () для виджета, на который нужно переключиться). Окно остается того же размера, даже если виджет, на который переключается, часто больше или меньше, чем основной вид.
Технически, это QFrames, что я вызываю show () / hide () на. Единственная вещь внутри каждого QFrame - это соответствующий виджет. Таким образом, у меня может быть кнопка возврата, которая не зависит от того, какой виджет я использую, поэтому не каждый виджет, который я добавляю, должен создавать свою собственную кнопку возврата.
Макеты, похоже, здесь не помогают, я думаю, потому что они больше предназначены для управления подвиджетами родительского виджета, а не для управления виджетами верхнего уровня внутри окна. Если бы я мог просто как-то изменить размер окна, то я мог бы взять размеры текущего виджета и изменить размер окна, чтобы он был точно таким же, но я не знаю, существует ли функция, изменяющая размер вашего окна.