При лжи о компиляторе он накажет Вас.
, Если буфер содержит данные, которые просто проходят, и Вы не будете управлять ими всегда, это не имеет значения.
Однако, если необходимо воздействовать на содержимое буфера тогда, корректное описание типа сделает код более простым. Никакой "интервал val = buf [я] & 0xff"; ерунда.
Так, думайте о том, что на самом деле данные и как необходимо использовать их.
Вместо используя onFilmSet
непосредственно в качестве получателя вашего соединения, используйте лямбда-функцию, чтобы вы могли передавать дополнительные параметры:
receiver = lambda film=film: self.onFilmSet(self, film)
self.connect(menuItem_Film, SIGNAL('triggered()'), receiver)
Взгляните на систему свойств Qt. Вы можете динамически добавить свойство, содержащее строку или что угодно, что определяет действие. Затем вы можете использовать метод sender () в слоте, чтобы получить QObject, вызывающий слот. Затем запросите свойство, которое вы установили, и сделайте все, что захотите, соответственно.
Но это не лучший способ сделать это. Использование sender () не рекомендуется, поскольку это нарушает объектно-ориентированный принцип модульности.
Лучшим методом было бы использование класса QSignalMapper.