Seite 1 von 1
vseparator wird nicht sofort angezeigt
Verfasst: Donnerstag 25. August 2011, 14:21
von dall♀
hallo-hallo,
in der GUI meines programms, die ich mit pygtk und glade erstellt habe, habe ich eine tabellenspalte freigelassen, um dort im programm zur laufzeit eine neue tabelle und mit ihr einige steuerelemente einzufügen, darunter auch ein vseparator in der mitte. der wird aber beim programmstart nicht angezeigt, sondern erst, wenn ich ein anderes steuerelement der tabelle anklicke oder das fenster vergrößere. dachte erst, dass der separator vielleicht von den anderen elementen "verdrängt" wird und habe via property eine mindestbreite gesetzt. die wird zwar auch akzeptiert, aber ebenfalls erst nach anklicken eines anderen steuerelements oder bei vergrößern des fensters. was könnte hier das problem sein?
Re: vseparator wird nicht sofort angezeigt
Verfasst: Donnerstag 25. August 2011, 17:10
von Dauerbaustelle
Kannste mal etwas Code zeigen?
Re: vseparator wird nicht sofort angezeigt
Verfasst: Montag 29. August 2011, 12:35
von dall♀
also, hier hole ich die tabelle aus dem xml-file, das von glade generiert wurde:
Code: Alles auswählen
table = Globals.WTREE.get_widget('chanTable')
table.resize((len(Globals.CONFIGFILE.Channels)/2)+1, 7)
dann erstelle ich einige steuerelemente in einer for-schleife, die dann folgendermaßen immer in die tabelle eingefügt werden:
Code: Alles auswählen
table.attach(Globals.CONFIGFILE.Channels[key].SlotBox, col+0, col+1, position, position+1)
table.attach(Globals.CONFIGFILE.Channels[key].ValueBox, col+1, col+2, position, position+1)
table.attach(Globals.CONFIGFILE.Channels[key].PlotBox, col+2, col+3, position, position+1)
nach der for-schleife füge ich dann noch den besagten vseparator ein:
Code: Alles auswählen
chanSep = gtk.VSeparator()
chanSep.set_property('width-request', 30)
table.attach(chanSep, 3, 4, 0, len(Globals.CONFIGFILE.Channels)/2 + 1)
chanSep.show()
ist das in etwa, was du sehen wolltest?

Re: vseparator wird nicht sofort angezeigt
Verfasst: Montag 29. August 2011, 12:47
von dall♀
hier auch noch mal zwei bilder des ganzen.
einmal ohne separator:
nach verändern der größe des fensters wird der separator angezeigt:
beim start des programms ist die tabelle noch leer. sobald ein configfile geladen wurde, werden diese kanäle mit den checkboxen und entries sowie eigentlich auch der separator angezeigt. wenn ich vorher das fenster schon einmal vergrößert oder verkleinert habe, wird der separator sofort nach laden des configfiles angezeigt.
weiß jemand, woran das liegen könnte? gibt es so eine art paint-event, das ich manuell auslösen könnte?
Re: vseparator wird nicht sofort angezeigt
Verfasst: Montag 29. August 2011, 13:30
von Dauerbaustelle
Ich meinte lauffähigen Code sodass ich's selbst ausprobieren kann.
Re: vseparator wird nicht sofort angezeigt
Verfasst: Montag 29. August 2011, 13:48
von dall♀
dazu ist es ein wenig zu komplex.. darf ich aber vermutlich leider sowieso nicht, weil's für die firma ist und so

Re: vseparator wird nicht sofort angezeigt
Verfasst: Montag 29. August 2011, 13:51
von LivingOn
gibt gtk einfach mal die Chance noch ausstehende Events zu verarbeiten
Re: vseparator wird nicht sofort angezeigt
Verfasst: Montag 29. August 2011, 14:02
von dall♀
LivingOn hat geschrieben:gibt gtk einfach mal die Chance noch ausstehende Events zu verarbeiten
hi livingOn, hab's versucht, er rappelt auch einige male durch die schleife durch, aber es bringt leider nicht den gewünschten erfolg
