layout alignment перестал работать на QcomboBox

Встретился с неожиданной проблемой. Уже достаточно долго пытаюсь понять, почему оно не работает. Хотя на другом разрабатываемом окне работает, вот фото: введите сюда описание изображения

Подскажите в чём проблема? прикладываю файл ui: https://drive.google.com/file/d/18X7rWxU67Q4Cfj1vJkaHvNkx9vaGXfU7/view?usp=sharing

Так же, при выравнивании линии по центр горизонтали, она просто исчезает: введите сюда описание изображения

введите сюда описание изображения


Update

Так же, прошу обратить внимание, что на этом окне, при расширении программы, правое боковое меню(логирование) не меняет свой размер, а всю основную часть занимает центральная часть. Хотя в первом окне, которое сделано точно так же, логирование расширяется и занимает большую часть пространства


Ответы (1 шт):

Автор решения: S. Nick

У меня, выравнивание компоновщика для объекта с именем comboBox работает.

введите сюда описание изображения

введите сюда описание изображения

Видимо надо делать более глубокий анализ тех мест, где выравнивание работает и где выравнивание не работает.

Попробуйте преобразовать ваш q1613210.ui (название вымышленное) в файл, например q1613210_ui.py, выполнив:

pyuic5 q1613210.ui -o q1613210_ui.py -x 

и теперь, в вашем любимом редакторе, посмотрите описание объектов, где выравнивание работает и где выравнивание не работает.
Также посмотрите как вы добавляете в менеджер компоновки self.verticalLayout_2 объекты line_3 и line_4.

Будьте внимательны при добавлении свойств:
minimumSize : QSize
maximumSize : QSize
void QWidget::setFixedSize(int w, int h)
и т.п.
Применяйте их только если четко понимаете что вы хотите сделать.

Также рекомендую изучить класс QSizePolicy - это атрибут макета, описывающий горизонтальную и вертикальную политику изменения размера.

Далее полученный q1613210_ui.py используйте так:

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from q1613210_ui import Ui_MainWindow


class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        
        # тут ваша логика
        # ...
        self.comboBox.addItems(["1", "2", "3", "4",])
        # ...
        
        
if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec())        

PS Не задавайте много вопросов в одном посте. Один вопрос в одном посте.

→ Ссылка