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: [email protected]
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/[email protected]

Reply via email to