Вместо этого я использую 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 () в качестве альтернативы кстати в моём случае?
setMargin() не существует в Qt4 (PySide), он существовал в начальных версиях Qt5, но в настоящее время устарел, вместо этого вы должны использовать метод setContentsMargins():
setMargin()
setContentsMargins()
self.right = QVBoxLayout() <b>self.right.setContentsMargins(10, 10, 10, 10)</b>