Fix difficulty menu behaviour

master
En Yi 2018-07-10 17:19:29 +08:00
parent daef9e01b9
commit 7aace4df50
1 changed files with 14 additions and 3 deletions

View File

@ -71,14 +71,18 @@ class DifficultyDisplayer(QGraphicsWidget):
self.setSizePolicy(self.size_policy) self.setSizePolicy(self.size_policy)
self.selected = False self.selected = False
self.focus_changed = False
self.setFlag(QGraphicsItem.ItemIsFocusable, True) self.setFlag(QGraphicsItem.ItemIsFocusable, True)
def paint(self, painter, style, widget=None): def paint(self, painter, style, widget=None):
painter.setPen(self.box_pen) painter.setPen(self.box_pen)
painter.drawRect(self.diff_box) painter.drawRect(self.diff_box)
painter.drawText(self.diff_box, Qt.AlignCenter, "Normal") painter.drawText(self.diff_box, Qt.AlignCenter, "Normal")
#painter.drawRect(self.boundingRect())
def mousePressEvent(self, event): def mousePressEvent(self, event):
#if not self.focus_changed:
print('Click')
self.selected = not self.selected self.selected = not self.selected
for btn in self.diff_buttons: for btn in self.diff_buttons:
btn.setVisible(self.selected) btn.setVisible(self.selected)
@ -86,13 +90,20 @@ class DifficultyDisplayer(QGraphicsWidget):
if self.selected: if self.selected:
self.setFocus() self.setFocus()
else: else:
self.clearFocus() print('Out of focus')
# self.focus_changed = False
#def boundingRect(self): def boundingRect(self):
# return QRectF(-20, -(self.height+10)*4 -20, self.width+40, (self.height+20) * 5) if self.selected:
return QRectF(-10, -(self.height+10)*4 -10, self.width+20, (self.height+10) * 4+5)
else:
return super().boundingRect()
def focusOutEvent(self, event): def focusOutEvent(self, event):
print("diff focus out")
self.selected = False self.selected = False
self.focus_changed = True
for btn in self.diff_buttons: for btn in self.diff_buttons:
btn.setVisible(False) btn.setVisible(False)
self.notFocus.emit() self.notFocus.emit()