Метод setMargin () не работает для QVBoxLayout в Qt Python - PullRequest
0 голосов
/ 26 февраля 2020

Вместо этого я использую PySide, поэтому в моей программе вместо

from PySide.QtGui import QVBoxLayout

Обычно это работает для импорта, но затем, когда я вызвал метод .setMargin () в качестве учебного пособия: https://doc.qt.io/qtforpython/tutorials/expenses/expenses.html#right -side -layout , я получил ошибку:

self.right = QVBoxLayout()
self.right.setMargin(10)

AttributeError: 'PySide.Qt Gui .QVBoxLayout' объект не имеет атрибута 'setMargin'

Я попытался найти setMargin () в библиотеке, и он появился здесь: https://doc.qt.io/qtforpython/PySide2/QtWidgets/QLayout.html#PySide2 .QtWidgets.PySide2.QtWidgets.QLayout.setMargin . Это означает, что я могу вызвать его, импортировав QLayout из Pyside.Qt Gui, но это не работает. Команда говорит:

NotImplementedError: 'QLayout' представляет абстрактный класс C ++ и не может быть создан

Не могли бы вы показать мне, как использовать setMargin () в качестве альтернативы кстати в моём случае?

1 Ответ

0 голосов
/ 26 февраля 2020

setMargin() не существует в Qt4 (PySide), он существовал в начальных версиях Qt5, но в настоящее время устарел, вместо этого вы должны использовать метод setContentsMargins():

self.right = QVBoxLayout()
<b>self.right.setContentsMargins(10, 10, 10, 10)</b>
...