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

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

Update
Так же, прошу обратить внимание, что на этом окне, при расширении программы, правое боковое меню(логирование) не меняет свой размер, а всю основную часть занимает центральная часть. Хотя в первом окне, которое сделано точно так же, логирование расширяется и занимает большую часть пространства
Ответы (1 шт):
У меня, выравнивание компоновщика для объекта с именем 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 Не задавайте много вопросов в одном посте. Один вопрос в одном посте.



