1) Нет ничего плохого в том, что вы сделали в 1, если вы хотите использовать атрибуты из базового класса, тогда вам нужно вызвать базовый класс init () или даже если ur использует методы из базового класса, которые использует атрибуты своего собственного класса, тогда вам нужно вызвать baseclass init ()
2) Вы не можете использовать super для запуска init с First и Second, потому что python использует MRO (порядок разрешения метода)
см. следующий код: это иерархия алмазов
class A(object):
def __init__(self):
self.a = 'a'
print self.a
class B(A):
def __init__(self):
self.b = 'b'
print self.b
class C(A):
def __init__(self):
self.c = 'c'
print self.c
class D(B,C):
def __init__(self):
self.d = 'd'
print self.d
super(D, self).__init__()
d = D()
print D.mro()
Он печатает:
d
b
[<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <type 'object'>]
MRO питона будет D, B, C, A
, если у B нет метода init для C.
3) Вы не можете использовать все методы, чтобы иметь такую же подпись.
Сделайте так, чтобы кнопки имели ширину, пропорциональную ширине вида.
Затем добавьте константу соотношения сторон 1: 1, чтобы кнопки оставались квадратными.
Затем расположите кнопки относительно размеров экрана (не совсем).
Это должно сделать работу за вас.
Установка пропорциональной ширины
Предположим, что размер основного вида в конструкторе интерфейса составляет 375 x 667. Предположим, вы положили на нее кнопку 90 х 90. Чтобы он всегда имел ширину, пропорциональную ширине основного вида,
Выполнение вышеизложенного гарантирует, что для разных значений ширины экрана ширина кнопки также будет изменяться пропорционально.
Вот скриншоты с iPhone XR и iPhone 5s, которые я взял из образца, который я только что сделал, чтобы попробовать это. Как видите, кнопки остаются в пределах экрана и сохраняют свою форму. Надеюсь, это поможет.
Похоже, вы не определили ограничения кнопки для супервизора. Например: левый край, верхний край ...
* изменить: опубликовать жалобу ниже #raisedeybrow Вам нужно будет определить (добавить ограничения), как далеко от края (слева и сверху, справа и снизу) вы хотите, чтобы ваши кнопки / кнопки были. Затем примените к кнопкам приоритеты обтекания и сжатия содержимого, чтобы все они масштабировались так, как вам хочется. Некоторые из них должны быть больше, другие, которые вы не хотите, чтобы они сжимались и т. Д. Можно установить, если хотите, чтобы они выглядели плавными