2015-06-03 3 views
-3

Кнопки 'G', 'H' работают, когда один из виджетов в фокусе, но 'F' нет.Полноэкранный режим не работает в galrywidget

Мой код:

# -*- coding: UTF-8 -*- 
import numpy 
from galry import * 

class MyPaintManager(PlotPaintManager): 
    def initialize(self): 
     self.add_visual(PlotVisual, x=self.parent.x, y=self.parent.y, color='b') 

class MyBindings_manager(Bindings): 
    def initialize_default(self): 
     super(MyBindings_manager, self).initialize_default() 
     self.set_fullscreen() 
     self.set('KeyPress', 'Fullscreen', key='F') 

class MyWidget(GalryWidget): 
    def initialize(self, x, y): 
     self.activate_grid = True 
     self.show_grid = True 
     self.is_fullscreen = True 
     self.x = x 
     self.y = y 

     self.set_companion_classes(
      paint_manager=MyPaintManager, 
      interaction_manager=PlotInteractionManager, 
#   binding_manager=MyBindings_manager 
      ) 
     self.initialize_companion_classes() 

class Window(QtGui.QWidget): 
    def __init__(self): 
     super(Window, self).__init__() 
     self.initUI() 

    def initUI(self): 
     layout = QtGui.QGridLayout(self) 
     sampleRate = 30000. 
     channelCount = 20 
     data = np.random.normal(size=1000000) 
     newData = data.reshape(channelCount,-1, order='F') 

     for channelNum in range(channelCount): 
      count = len(newData[channelNum]) 
      x = np.linspace(0, count/sampleRate, count) 
      graph = MyWidget(x=x, y=newData[channelNum]) 
      layout.addWidget(graph, channelNum % 4, channelNum/4) 
     self.setLayout(layout) 
     self.show() 

if __name__ == '__main__': 
    show_window(Window) 

Когда я раскомментировать эту строку

binding_manager=MyBindings_manager 

Я получил сообщение об ошибке:

TypeError: __init__() takes exactly 1 argument (2 given) 

Что я делаю неправильно?

ответ

0

Ваш BindingsManager должен иметь тип PlotBindings и не обязательно должен быть установлен в качестве класса компаньона.

Взгляните на https://github.com/klusta-team/klustaviewa/blob/master/klustaviewa/views/traceview.py, чтобы посмотреть, как это делается, в качестве примера.

Galry устарел и теперь был отменен Vispy, так что это не лучший выбор библиотеки для создания нового приложения!

+0

self.set_bindings (MyBindings_manager), но не работает. Я буду изучать vispy – n1k