Неизменность размеров Основного Окна PyQt5
Как внутри класса основного окна PyQt5 сделать это окно - НЕИЗМЕННЫМ по размерам?
Update:
import sys
from PyQt5.QtWidgets import QApplication, QWidget
class MainWindow(QWidget):
def int__(self):
super().__init__()
self.setFixedSize(500, 200) # ((1) ЭТО - НЕ РАБОТАЕТ !!!)
if __name__ == "__main__":
app = QApplication(sys.argv)
w = MainWindow()
w.setWindowTitle('** Title **') #
# w.setFixedSize(500, 200) # ((2) СНАРУЖИ! - РАБОТАЕТ !!!)
w.show()
sys.exit(app.exec_())
Ответы (2 шт):
Да, можно.
QtWidgets.QWidget.setFixedSize(
w,h)Устанавливает ширину виджета в
wи высоту вh.
Update:
flags Qt::WindowFlags используется для указания различных свойств оконной системы для виджета.
Они довольно необычны, но необходимы в нескольких случаях.
Некоторые из этих флагов зависят от того, поддерживает ли их основной
оконный менеджер.
...
Существует также ряд флагов, которые можно использовать для настройки
внешнего вида окон верхнего уровня.
Они не влияют на другие окна:
Qt::MSWindowsFixedSizeDialogHint
Дает окну тонкую диалоговую границу в Windows.
Этот стиль традиционно используется для диалогов фиксированного размера.
import sys
from PyQt5.Qt import *
class MainWindow(QWidget):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setWindowFlags(
Qt.WindowCloseButtonHint |
Qt.MSWindowsFixedSizeDialogHint
)
self.setFixedSize(500, 200)
self.layout = QHBoxLayout(self)
self.layout.addWidget(
QLabel('Попробуйте изменить размеры окна.'),
alignment = Qt.AlignCenter
)
if __name__ == '__main__':
app = QApplication(sys.argv)
app.setFont(QFont("Bahnschrift Light", 18))
w = MainWindow()
w.setWindowTitle("** Title ** setFixedSize(500, 200) ")
w.setWindowIcon(QIcon("Qt.png"))
w.show()
sys.exit(app.exec_())
Большое спасибо ребята! Я в общем-то получил ответ на свой вопрос (как устанавливать и переустанавливать ФИКСИРОВАННЫЕ размеры Основного Окна приложения). Извините, я еще очень плохо ориентируюсь на сайте и даже не знаю как отметить Ваш ответ, как Правильный.
import sys
from PyQt5.Qt import *
class MainWindow(QWidget):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
# (изменение - ФИКСИРОВАННОГО Размера Основного Окна Приложения)
self.set_fixed_main_window_sizes(500, 200)
# (.....)
self.layout = QVBoxLayout(self)
self.layout.addWidget(
QLabel('Попробуйте изменить размеры окна.'),
alignment=Qt.AlignCenter
)
btn = QPushButton(' Change Fixed Sizes ')
btn.clicked.connect(lambda: self.set_fixed_main_window_sizes(300, 150))
self.layout.addWidget(btn)
# (изменение - ФИКСИРОВАННОГО Размера Основного Окна Приложения)
def set_fixed_main_window_sizes(self, width, height):
print(f'width: {width}, height: {height}') # .....
self.setWindowFlags(
Qt.WindowCloseButtonHint |
Qt.MSWindowsFixedSizeDialogHint
)
self.setFixedSize(width, height)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
app.setFont(QFont("Bahnschrift Light", 18))
w = MainWindow()
w.setWindowTitle("** Title ** setFixedSize(500, 200) ")
w.setWindowIcon(QIcon("Qt.png"))
# w.show()
sys.exit(app.exec_())
Я хотел научиться устанавливать размеры Основного Окна приложения - НЕИЗМЕННЫМИ. А потом, если возникнет необходимость, переустанавливать их и снова делать НЕИЗМЕННЫМИ. Теперь я знаю, как это сделать. Это делает метод класса Основного Окна приложения - set_fixed_main_window_sizes

