Переместите и измените размер QPushButton при изменении размера события PyQt5Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Переместите и измените размер QPushButton при изменении размера события PyQt5

Сообщение Гость »


Я хотел бы иметь возможность изменять размер графического интерфейса PyQt5 с помощью кнопки «Макет», изменяя размер/перемещая ее вместе с окном, но когда я не использую resizeEvent, растянутая часть окна остается пустой, а кнопки вообще не двигайся...

Кроме того, я бы не хотел создавать макет сетки (или любой макет PyQt), потому что он как бы убивает CSS, который я сделал для своих кнопок внутри Qt Designer (я создал там файл пользовательского интерфейса)...

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

класс NoName_GUI(QDialog): защита __init__(сам): супер().__init__() loadUi(os.path.join(__VENV__, "GUI.ui"), self) self.init_objects() защита init_objects (сам): self.button_list: list = [ #Это все QPushButton, а также их настоящие имена собственная кнопка1, self.button2, собственная кнопка3, self.button5, self.button_idk, self.button_yes_i_do ] self.button_pos: dict = {} for button в self.button_list: #Сохраняем проценты для местоположений... self.button_pos[кнопка] = {} self.button_pos[button]["x"] = button.pos().x() / 800 # QDialog по умолчанию имеет размер 800x450 пикселей self.button_pos[кнопка]["y"] = button.pos().y() / 450 self.button_pos[button]['h'] = button.height() / 800 self.button_pos[кнопка]['w'] = button.width()/450 Защиту resizeEvent (я, событие): супер().resizeEvent(событие) для кнопки в self.button_list: new_x = (self.button_pos[button]["x"] * self.width()).__round__() # Положение новой кнопки равно (0+(original_% of new_length);0) (и это для всех остальных вещей ) new_y = (self.button_pos[button]["y"] * self.height()).__round__() new_width = (self.button_pos[button]["w"] * self.width()).__round__() new_height = (self.button_pos[button]["h"] * self.height()).__round__() button.setGeometry(new_x, new_y, new_width, new_height) self.bgwidget.setGeometry(0, 0, self.width(), self.height()) #Фон также растягивается, здесь нет проблем приложение = QApplication(sys.argv) welc = NoName_GUI() виджет = QtWidgets.QStackedWidget() widget.addWidget(welc) виджет.setMinimumWidth(800) виджет.setMinimumHeight(450) widget.setWindowTitle("NoName.py") виджет.шоу() пытаться: sys.exit(app.exec_()) кроме: проходить При удалении этой части resizeEvent кнопки находятся в нужных местах, но они не перемещаются и не растягиваются, чтобы «поместиться» в окно... Кстати, вот CSS, который я использовал для своих кнопок в QtDesigner:

border-radius:20px; шрифт: 75 14pt «Магнето»; цвет фона: RGB(130, 200, 200); При создании сетки граница радиуса больше не работает, поэтому я бы не хотел его использовать...


Изображение


Обратите внимание, что все функции кнопок нормально работают в моем проекте, поэтому все, что мне нужно, это изменить их размер.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»