Wednesday, 15 August 2012

python - Can't assign proper value to QCombBox using PySide -



python - Can't assign proper value to QCombBox using PySide -

since pyside can't pickled, i've decided manually write scheme parameters file that, when opened via qfiledialog, can used populate qwidgets appropriate data...so far, works except 1 of qwidgets, databox, qcombobox in separate class.

as you'll see in next code, set print lines see values of list stores parameters. in stdout, can see values should be, qcombobox.setedittext() method doesn't assign value combo box displays text set it...the images linked show 2 things "openfile" case: text displayed in qcombobox (databox) positioned strangely (it works, should centered), , 2 separate instances of figurecanvas display info showing same info (since boxes beingness assigned same value first value in dictionary/qcombobox). these 2 instances of databox should have da_0 & da_1 in them, both have da_0.

i tried different method of qcombobox class, setitemtext(), didn't display info or populate databox.

here links screenshots of gui in both savefile case , openfile case.

here's relevant code & full code. apologize formatting in gist...copying textedit didn't work will.

this method, openfile, pulls appropriate info file, setedittext() method doesn't set databox show it. clear, value da_1 prints right before added combo box, 1 time it's added combo box, goes wrong...these 2 of import lines of code observe:

print "databox value ", self.graphvalues[x] # works fine self.opts[opt].databox.setedittext(self.graphvalues[x]) # doesn't work @ all

self.opts dictionary of strings (names of figures/plots) paired instances of class handles setting graphing options

databox qcombobox holds strings (names of figures/plots)

# read parameters file , sets sim/graphvalues (1.1) def openfile(self): self.filepath, _= qfiledialog.getopenfilename(self, 'open file', \ '~/', 'c files (*.c);;simulations (*.sim)' ) fullpath = self.filepath.split("/") title = fullpath[-1] self.w.setwindowtitle(title) if self.filepath[-4:] == ".sim": open(self.filepath, 'r') f: self.simvalues = [""] value = f.readline() while 1: if value != "\n": self.simvalues.append(value) value = f.readline() else: break self.graphvalues = [""] value = f.readline() while 1: if value != "\n": self.graphvalues.append(value) value = f.readline() else: break self.files = f.readlines() self.numsim.settext(self.simvalues[1]) self.numtrials.settext(self.simvalues[2]) self.numticks.settext(self.simvalues[3]) self.numgraphs.settext(self.simvalues[4]) self.dirpath = self.simvalues[5] x = 1 opt in self.opts: self.opts[opt].styleselect.setedittext(str(self.styles[opt])) self.opts[opt].databox.additems(self.files) if self.opts[opt].styleselect.currenttext() == "1": print "databox value ", self.graphvalues[x] self.opts[opt].databox.setedittext(self.graphvalues[x]);x+=1 print "xlabel value ", self.graphvalues[x] self.opts[opt].xlabel.settext(self.graphvalues[x]);x+=1 print "ylabel value ", self.graphvalues[x] self.opts[opt].ylabel.settext(self.graphvalues[x]);x+=1 print "xrange value ", self.graphvalues[x] self.opts[opt].xrange.settext(self.graphvalues[x]);x+=1 print "yrange value ", self.graphvalues[x] self.opts[opt].yrange.settext(self.graphvalues[x]);x+=1 elif self.opts[opt].styleselect.currenttext() == "2": pass else: pass self.plot()

this method, savefile, not necessary show, wanted clear issue not writting data.

# saves sim & graph values , writes them file (1.2) def savefile(self): self.filepath, _= qfiledialog.getsavefilename(self, 'save file', \ '~/', 'simulations (*.sim)' ) fullpath = self.filepath.split("/") title = fullpath[-1] self.w.setwindowtitle(title) self.simvalues = [str(self.numsim.text()),str(self.numtrials.text()), \ str(self.numticks.text()),str(self.numgraphs.text())] self.simvalues.append(self.dirpath) self.graphvalues = [] opt in self.opts: self.styles[opt] = self.opts[opt].styleselect.currenttext() if self.opts[opt].styleselect.currenttext() == "1": self.graphvalues.append(self.opts[opt].databox.currenttext()) self.graphvalues.append(self.opts[opt].xlabel.text()) self.graphvalues.append(self.opts[opt].ylabel.text()) self.graphvalues.append(self.opts[opt].xrange.text()) self.graphvalues.append(self.opts[opt].yrange.text()) elif self.opts[opt].styleselect.currenttext() == "2": pass else: pass open(self.filepath, 'w') f: item in self.simvalues: f.write(item+"\n") f.write("\n") item in self.graphvalues: f.write(item+"\n") f.write("\n") item in self.files: f.write(item+"\n")

here stdout print lines:

databox value da_1 xlabel value other ylabel value things xrange value len(data) yrange value y range databox value da_0 xlabel value ylabel value stuff xrange value len(data) yrange value y range

python pyside

No comments:

Post a Comment