Pyqt - QMenu динамично заполнен и нажат

При лжи о компиляторе он накажет Вас.

, Если буфер содержит данные, которые просто проходят, и Вы не будете управлять ими всегда, это не имеет значения.

Однако, если необходимо воздействовать на содержимое буфера тогда, корректное описание типа сделает код более простым. Никакой "интервал val = buf [я] & 0xff"; ерунда.

Так, думайте о том, что на самом деле данные и как необходимо использовать их.

6
задан crackerbunny 23 September 2009 в 07:53
поделиться

2 ответа

Вместо используя onFilmSet непосредственно в качестве получателя вашего соединения, используйте лямбда-функцию, чтобы вы могли передавать дополнительные параметры:

receiver = lambda film=film: self.onFilmSet(self, film)
self.connect(menuItem_Film, SIGNAL('triggered()'), receiver)
11
ответ дан 8 December 2019 в 16:06
поделиться

Взгляните на систему свойств Qt. Вы можете динамически добавить свойство, содержащее строку или что угодно, что определяет действие. Затем вы можете использовать метод sender () в слоте, чтобы получить QObject, вызывающий слот. Затем запросите свойство, которое вы установили, и сделайте все, что захотите, соответственно.

Но это не лучший способ сделать это. Использование sender () не рекомендуется, поскольку это нарушает объектно-ориентированный принцип модульности.

Лучшим методом было бы использование класса QSignalMapper.

1
ответ дан 8 December 2019 в 16:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: