import sys
from PyQt4 import QtGui
class Frame(QtGui.QFrame):
def __init__(self, parent=None):
"""
здесь просто описываем макет фрейма
свойства и методы
:param parent:
"""
QtGui.QFrame.__init__(self, parent)
self.x = 17
self.y = 17
self.color = "red"
self.setStyleSheet('background: {0};'.format(self.color))
self.setFrameShape(QtGui.QFrame.Box)
self.setFixedSize(self.x, self.y)
def mousePressEvent(self, event):
if self.color is "red":
self.setStyleSheet('QWidget {background:green;}')
self.color = "green"
print ("JR")
else:
self.setStyleSheet('QWidget {background: red;}')
self.color = "red"
class Base(QtGui.QWidget):
def __init__(self):
super(Base, self).__init__()
self.startUW()
self.fields()
def startUW(self):
record = QtGui.QPushButton(u"Записать", self)
record.move(100, 18)
play = QtGui.QPushButton(u"Проиграть", self)
play.move(190, 18)
self.setWindowTitle("Indicator Generator v0.1")
self.setFixedSize(300, 250)
self.move(300, 250)
self.add_frames()
# c 55 по 62 строку закоментировать после прочтения
# написал так что бы было понятнее
# а здесь создаём экземпляр класса
self.frame_1 = Frame(self)
# как то его размещаем
self.frame_1.move(48, 60)
# ещё экземпляр
self.frame_1 = Frame(self)
# и как то его размещаем
self.frame_1.move(48 + 25, 60)
def add_frames(self, count=8):
distance = 25
start_x = 48
y = 60
for i in range(count):
self.frame_1 = Frame(self)
self.frame_1.move(start_x, y)
start_x += distance
def fields(self):
i = 10
self.field = []
for name in range(2):
self.field.append(QtGui.QLineEdit(self))
self.field[name].setFixedSize(40, 25)
self.field[name].move(i, 20)
i += 45
def main():
app = QtGui.QApplication(sys.argv)
gui = Base()
gui.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
! абсолютное позиционироание не удобно и сложно и здесь безсмысленно
и зачем здесь именно фрейм не понял - если из за рамки , то её к любому виджету привязать можно