Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: OPGELOST Python probleempje  (gelezen 1442 keer)

Offline BaukeP

  • Lid
OPGELOST Python probleempje
« Gepost op: 2010/08/18, 20:30:58 »
Hallo,

Ik ben nogal nieuw in deze materie, maar ik zou graag wat hulp hebben bij het volgende:

Ik ben bezig met een biljartprogje en daar roep ik een aparte class aan voor het maken van bijvoorbeeld het invoerscherm. Ik geef daarbij een tekst mee (bv "Invoeren uitslagen"). In het gedeelte wat het scherm maakt (met een aantal sizers) roep ik o.a. de eerder genoemde tekst aan:

box1Sizer.Add(wx.StaticText(self, -1, tekst, size=(450, -1)), 0, wx.ALIGN_CENTER_HORIZONTAL, 5)
box1Sizer.Add(wx.StaticLine(self), 0, wx.EXPAND|wx.TOP|wx.BOTTOM, 5)

Ik heb nu het hele scherm klaar en werkend, maar ik wil in de bovenste regel het StaticText-gedeelte aanpassen met:
Het font, moet iets zijn van wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD) en de variabele tekst moet ook gecentreerd (in de 450px).

En ik krijg dit niet voor elkaar, dus graag wat hulp

Bauke
« Laatst bewerkt op: 2010/08/21, 22:45:39 door BaukeP »

Re: Python probleempje
« Reactie #1 Gepost op: 2010/08/18, 22:27:46 »
Probeer dit eens:

statictext = wx.StaticText(self, -1, tekst, size=(450, -1))
font = wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD)
statictext.SetFont(font)
box1Sizer.Add(statictext, 0, wx.ALIGN_CENTER_HORIZONTAL, 5)

Offline BaukeP

  • Lid
Re: Python probleempje
« Reactie #2 Gepost op: 2010/08/18, 23:52:28 »
Hallo Nunslaughter,

Het kan niet in één gecombineerd commando? Ik had eerst alles apart, maar vond het een hele lijst! Vandaar dat ik het wat korter wilde.
Nu ik erover nadenk is dat inderdaad ook niet het handigst. Krijg problemen met de invoervelden denk ik. Heb ik op dezelfde manier gedaan ... en daar heb ik nu geen variabele voor.

speler2Sizer.Add(wx.TextCtrl(self, -1, ""), (1,5), (1,2), flag= wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL, border=5)

Deze staat er nu voor ieder invoerveld en ik neem aan dat:
var = speler2Sizer.Add(wx.TextCtrl(self, -1, ""), (1,5), (1,2), flag= wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL, border=5)
niet gaat werken.

Bedankt, ik blijf leren

Bauke

Re: Python probleempje
« Reactie #3 Gepost op: 2010/08/19, 09:59:47 »
Citaat
Het kan niet in één gecombineerd commando? Ik had eerst alles apart, maar vond het een hele lijst! Vandaar dat ik het wat korter wilde.
Het is niet meteen slecht om wat meer regels te typen. Zeker naar leesbaarheid toe.
Misschien kan het ook in 1 regel, test dit eens:
wx.StaticText(self, -1, tekst, size=(450, -1)).SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD))
Maar ook al zou dit werken, dan zou ik het niet aanraden.

Citaat
Deze staat er nu voor ieder invoerveld en ik neem aan dat:
var = speler2Sizer.Add(wx.TextCtrl(self, -1, ""), (1,5), (1,2), flag= wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL, border=5)
niet gaat werken.
Dit lijkt mij inderdaad niet goed, omdat ge de sizer in variable var gaat steken. Ge moet het invoerveld in het variabele zetten en deze dan meegeven aan de sizer, zodat ge later in het programma deze variabele terug kunt oproepen om de tekst in het invoerveld op te vragen of te veranderen.


Nuja, ik heb nog nooit met wx gewerkt, dus ik kan ook wat verkeerd zeggen :). Hun docs zijn wel handig: http://www.wxpython.org/docs/api/wx-module.html

Offline BaukeP

  • Lid
Re: Python probleempje
« Reactie #4 Gepost op: 2010/08/20, 13:17:59 »
Bovenstaande code werkt niet helaas, maar ik kom steeds verder. Bedankt eerst! (ik kom vast nog eens terug  :D)

Bauke