Jeweils ein Slider Element für grob und Fein Tuning

Plattformunabhängige GUIs mit wxWidgets.
feldmaus
User
Beiträge: 284
Registriert: Donnerstag 12. Oktober 2006, 16:48

Jeweils ein Slider Element für grob und Fein Tuning

Beitragvon feldmaus » Freitag 27. Februar 2009, 14:51

Hi Leute,

ich kriege es mal wieder nicht hin. :(
Daher bräcuhte ich mal euren Rat.

Ich arbeite an einer grafischen Anwendung in der 2 horizonale Slider
Elemente von einander abhängig sein sollen.

Ein Slider Element stellt die die Grobe Frequenz ein und ein weiteres Slider
Element stellt die Fein Einstellung ein.

Die Variable <self.usrp_freq> soll voreingestellt werden auf 10e3.
Das grobe Slider Element kann von 0 bis 29e3 geändert werden.
Das feine Slider Element kann nur um +-1.45e3 um den derzeitigen
Wert vom groben Slider Element bewegt werden.

Was mache ich falsch?
Oder wie könnte ich es richtiger machen?

Hier ein Teil meines Codes:

Code: Alles auswählen

class uebertragungschar_LF_RX(grc_wxgui.top_block_gui):

   def __init__(self, options):
      grc_wxgui.top_block_gui.__init__(self,
         __title__+' - '+__author__+' - '+__version__)

      ##################################################
      # Parameters
      ##################################################
 . . .
      self.usrp_freq_min = options.usrp_freq_min
      self.usrp_freq_max = options.usrp_freq_max

      ##################################################
      # Variables
      ##################################################
      self.usrp_freq = 10e3
. . .

      ##################################################
      # Controls
      ##################################################
      self._usrp_freq_control = grc_wxgui.slider_horizontal_control(
         window=self.GetWin(),
         callback=self.set_usrp_freq,
         label="Oszillatorfrequenz Grob",
         value=self.usrp_freq,
         min=self.usrp_freq_min,
         max=self.usrp_freq_max,
         num_steps=290,
         slider_length=400,
      )
      self.Add(self._usrp_freq_control)
      self._usrp_freq_fine_control = grc_wxgui.slider_horizontal_control(
         window=self.GetWin(),
         callback=self.set_usrp_freq,
         label="Oszillatorfrequenz Fein",
         value=self.usrp_freq,
         min=self._usrp_freq_control.get_value()-1.45e3,
         max=self._usrp_freq_control.get_value()+1.45e3,
         num_steps=29,
         slider_length=400,
      )
      self.Add(self._usrp_freq_fine_control)

. . .

   def set_usrp_freq(self, freq):
      self.usrp_freq = freq
      self.set_middle_freq_fft_plot(self.usrp_freq)
      self.usrp_simple_source_x.set_frequency(self.usrp_freq)
      self._usrp_freq_fine_control.set_value(freq)

. . .

if __name__ == '__main__':
   parser = OptionParser()
. . .
   parser.add_option("--usrp_freq_min", dest="usrp_freq_min", type="float", default=0)
   parser.add_option("--usrp_freq_max", dest="usrp_freq_max", type="float", default=29e6)
   (options, args) = parser.parse_args()   
   tb = uebertragungschar_LF_RX(options)
   tb.Run()


Grüße Markus

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder