Re: [dabo-users] Tab-Index of UI-Objects?

Author: john

Posted: 2017-01-13 at 10:01:26

Personally I don't use Class Designer or a .cdxml file. I find it very

easy to manually create the form. I guess I started doing because in

the beginning the Class Designer was not easy to work with - especially

try to add a new control or to move one.

So today I just move the control's code to the order I want and location

required by the task.

I too like the dGridSizer. I use it all the time and it has helped me

with spacing, sizing, and positions of the controls within a panel.

Today the only issue I have with Dabo is the fact that wxPython does not

have a stable version that supports python 3.x. Of course that's not

Dabo's fault.

To be honest I believe I will soon will be moving on to Electron (uses

html,css,JavaScript, Chrome, NodeJS to create the ui for a desktop app).

Johnf

On 01/13/2017 01:26 AM, Max Voß wrote:

> Hi Johnf, thanks for your reply.

>

> In my last message I completely messed up the indeces, so please it

> ignore it, it will only confuse you here is the correct version.

>

> Am Mittwoch, den 11.01.2017, 08:48 -0800 schrieb john:

>> How did you create the UI form? Did you use the class designer?

>>

>> Or did you manually create each of the controls - something like:

>>

>> dabo.ui.dTextBox(self, RegID="CaseID",Width=225, DataSource =

>> 'public.esenroll', DataField = 'caseno')

>>

> Well, I have chosen a third way. I manualy created a .cdxml-File

> (without the class designer, since my Form is huge and I don't like what

> it does to my .cdxml) that looks like this: (I stripped it down to the

> essentials for readability)

>

> ...

> <dGridSizer>

> <dTextBox rowColPos="(1, 1)" DataField="sph_r"></dTextBox>

> <dTextBox rowColPos="(1, 2)" DataField="sph_l"></dTextBox>

> <dTextBox rowColPos="(2, 1)" DataField="cyl_r"></dTextBox>

> <dTextBox rowColPos="(2, 2)" DataField="cyl_l"></dTextBox>

> <dTextBox rowColPos="(3, 1)" DataField="ach_r"></dTextBox>

> <dTextBox rowColPos="(3, 2)" DataField="ach_l"></dTextBox>

> <dTextBox rowColPos="(4, 1)" DataField="add_r"></dTextBox>

> <dTextBox rowColPos="(4, 2)" DataField="add_l"></dTextBox>

> ...

> </dGridSizer>

> ...

>

> This results in the TabOrder sph_r,sph_l,cyl_r,cyl_l,...

> But I want sph_r,cyl_r,ach_r,...,sph_l,cyl_l,...

>

>> Normally, the order or tab order is set to match top to bottom and left

>> to right within a panel (and of course a sizer can also influence the

>> order).

> Ok, maybe I can rearange my textfields and put all *_r fields in one

> dSizer and *_l fields in a second one. - To bad I really liked the

> dGridSizer.

>

>> There is one property 'TabStop' True or False that is available.

> That I have found, but it is no use to me in my situation, since I want

> TabStop but just a different order.

>

>> That said, take a look at dDialog.py around line 365:

>> for pos, btn in enumerate(buttons[1:]):

>> btn.MoveAfterInTabOrder(buttons[pos-1])

>>

>> The above is used for the class->_addControls.

>>

>> Johnf

>> On 01/11/2017 08:26 AM, Max Voß wrote:

>>> Hello,

>>>

>>> is it possible to set a kind of tab-index in a dabo-Form?

>>>

>>> I have got a dPage-Object with a lot of dTextBoxes, dDropDownLists and

>>> so on but they appear in a different order on the Page than I want to

>>> step through them with the tabulator-key. The "tab-index" seems to

>>> depend only on the position on the Page. At least I have not found a

>>> corresponding property in the Object Inspector. Or did I just miss it?

>>>

>>> Thanks in advance for your anwsers,

>>>

>>> greetings Max

>>>

>

>

_______________________________________________

Post Messages to: Dabo-users@leafe.com

Subscription Maintenance: http://mail.leafe.com/mailman/listinfo/dabo-users

Searchable Archives: http://leafe.com/archives/search/dabo-users

This message: http://leafe.com/archives/byMID/6bb440d3-c863-4968-f573-12a4ad9cb1b6@jfcomputer.com

©2017 john