Skip to main content

QT6 настройка окна

Компоновщики (Layouts).

Нужны для автоматического упорядочивания и изменения размеров виджетов при изменении размера окна. Без Layouts виджеты имеют фиксированные позиции и размеры,размеры. интерфейсИмпортируются "ломается"все притипы ресайзекомпоновщиков иличерез на

разных
from мониторах.PyQt6.QtWidgets import QHBoxLayout

Типы Layouts в Qt Designer 

Vertical Layout (Вертикальный компоновщик) Располагает виджеты сверху вниз в столбик. 
layout = QVBoxLayout()
layout.addWidget(button1)
layout.addWidget(button2)
Horizontal Layout (Горизонтальный компоновщик) Располагает виджеты слева направо в строку.
Grid Layout (Сеточный компоновщик) Располагает виджеты в таблице (строках и столбцах). 
layout = QGridLayout()
layout.addWidget(button1, 0, 0)  # строка 0, столбец 0
layout.addWidget(button2, 0, 1)  # строка 0, столбец 1
Form Layout (Формовый компоновщик) Идеален для форм (метка + поле ввода).
Располагает виджеты в две колонки: labels слева, поля справа.

Базовый подход:

  • Перетащите виджеты на форму
  • Выделите несколько виджетов (зажав Ctrl)
  • Нажмите правой кнопкой → "Lay out" → Выберите нужный тип
  • Или используйте панель инструментов сверху (кнопки с иконками Layouts)

Вложенные Layouts:

Main Vertical Layout
├── Horizontal Layout (для кнопок)
│   ├── Кнопка "Открыть"
│   ├── Кнопка "Сохранить"
│   └── Кнопка "Выход"
└── Text Edit (занимает оставшееся пространство)

Растяжения (Stretch):

В коде: layout.addStretch()
В Designer: есть специальный виджет "Horizontal Spacer" / "Vertical Spacer"

Выравнивание: В Property Editor настраивается

  • layoutStretch — пропорции растяжения
  • alignment — выравнивание содержимого
  • spacing — расстояние между виджетами
  • margin — отступ от краев

Для управления классом окна, класс создается, затем настраиваются нужные свойства

from PyQt6.QtWidgets import QApplication, QWidget 
from PyQt6.QtGui import QIcon 
import sys 
 
class Window(QWidget): 
    def __init__(self): 
        super().__init__() 
        self.setGeometry(200,200, 700, 400) 
 
app = QApplication(sys.argv) 
window = Window() 
window.show() 
sys.exit(app.exec())

Свойства:

         
        self.setWindowIcon(QIcon('pyqt6lessons\images\python.png')) 
        self.setStyleSheet('background-color:green') 
        self.setWindowOpacity(0.5) 

Свойство Применение
Размеры окна

self.setGeometry(x,y, height, width)

self.setGeometry(200,200, 700, 400)

Заголовок окна self.setWindowTitle("Python GUI Development")