Russian Qt Forum

Qt => Вопросы новичков => Тема начата: shadow от Июль 16, 2018, 15:40



Название: PyQT + MDI
Отправлено: shadow от Июль 16, 2018, 15:40
Доброго времени суток!

Подскажите как реализовать такую вещь.

У меня есть MDI приложение в дочерних окнах я рисую QGraphicsItem-мы (шестигранники) я хочу чтобы при наведении на шестигранник в главном окне (MainWindow) в статус баре (statusBar) отображался номер шестигранника? Как реализовать передачу данных между дочерним окном и главным окном?


Спасибо!


Название: Re: PyQT + MDI
Отправлено: shadow от Июль 19, 2018, 13:35
Неужели невозможно реализовать такой функционал???? :( :(


Название: Re: PyQT + MDI
Отправлено: shadow от Июль 19, 2018, 14:48
Реализовал в тупую(или так и надо?!) передачей указателя на родительское окно:

Код:
    def createMdiChild(self):
        child = MapWindow(self)
        self.mdiArea.addSubWindow(child)
        return child

Также в следующем классе:

Код:
class MapWindow(QWidget):
    def __init__(self, parentwidget):
        super(MapWindow, self).__init__()
        self.parentwidget = parentwidget
.....
.....
    def add_node(self):
        self.setWindowTitle("Test")
        self.Number = 1
        for fa in range(10):
            node = Hexagon(self.parentwidget)
            self.setup(node)
Ну и наконец:
Код:
   
class Hexagon(QGraphicsItem):
    def __init__(self, mainwindowpointer):
        super(Hexagon, self).__init__()
        self.mainwindowpointer = mainwindowpointer

 def hoverEnterEvent(self, event):
        # print(self.Number)
        self.setSelected(True)
        self.mainwindowpointer.statusBar().showMessage("Number: {}".format(self.Number))

Как такой вариант реализации?