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
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')
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). There is one property 'TabStop' True or False that is available.
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/1484151990.2212.22.camel@optik-stahr.de
Hi Johnf, thanks for your reply.
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="(2, 1)" DataField="sph_l"></dTextBox> <dTextBox rowColPos="(1, 2)" DataField="cyl_r"></dTextBox> <dTextBox rowColPos="(2, 2)" DataField="cyl_l"></dTextBox> <dTextBox rowColPos="(1, 3)" DataField="ach_r"></dTextBox> <dTextBox rowColPos="(2, 3)" DataField="ach_l"></dTextBox> <dTextBox rowColPos="(1, 4)" DataField="add_r"></dTextBox> <dTextBox rowColPos="(2, 4)" 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
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
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
Am 2017-01-13 um 17:01 schrieb john johnf@jfcomputer.com:
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).
I hear you – for web apps I’m leaving my beloved Python/Django behind for Meteor/Angular (i.e. also node.js).
Greetlings, Hraban
I'm not leaving Django. I have had great success with Django. I see no reason to leave Django. Django works with almost anything I've come across - that includes Angular, React, etc.. BTW check out 'vue'.
I am moving to Electron for desktop applications - only. Don't get me wrong Dabo is more than functional. It's just that Dabo's UI is based on wxPython and wxPython is preventing Dabo from moving forward and the use of python 3.x. Python 2.7.x is fine but most folks are moving forward to 3.x. Also wxPython (even Phoenix) is not adding any bells and whistles where as CSS is allowing so many in the web world.
Honestly, I'm not to sure about Electron's future. It is using Chrome and I know that is not going away anytime soon. But I have to be concerned that Google might drop support due to lack of general interest in desktop apps. I was at first concerned with the size of an Electron app. But I realized that as I added pages the size did not change much. Performance is good if not better than Dabo on the desktop. So there is a lot to like.
As far as NodeJS - well I like the fact that it is well supported by the community - but so is Django. I don't believe NodeJS's asynchronous I/O is faster than Django when comes to serving data - at least not for small websites. So I wouldn't leave Django for NodeJS.
Johnf
On 01/13/2017 08:17 AM, Henning Hraban Ramm wrote:
Am 2017-01-13 um 17:01 schrieb john johnf@jfcomputer.com:
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).
I hear you – for web apps I’m leaving my beloved Python/Django behind for Meteor/Angular (i.e. also node.js).
Greetlings, Hraban _______________________________________________ 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/7745DB9C-617A-43BA-B85C-7E46D832AB9A@fiee.ne...
As far as NodeJS - well I like the fact that it is well supported by the community - but so is Django. I don't believe NodeJS's asynchronous I/O is faster than Django when comes to serving data - at least not for small websites. So I wouldn't leave Django for NodeJS.
Django is good for many projects, and I guess I’ll continue using it for websites, since my workflow is comfortable enough.
But for "desktopy" web apps, where most of the coding is in JS on the Client UI anyway, Meteor/Angular/React seems to be the better framework. I’m still at the beginning of my node.js journey, but I hit too many blocks while trying to do my current project in Django. And using dabo, i.e. installing an app on every user’s computer, would be a promise for a support desaster. I used dabo only ever as a convenient UI framework, never really needed the 3-tier setup. I could stay on Python 2.7, but I found the availability of dabo’s documentation too unreliable.
Greetlings, Hraban
The issue of deployment is real - for sure. But I have used a both just creating an exe and install all on a server. I have found the best for me was to install all the python stuff on the client and the rest on a server. The last allows for one place to make changes.
Dabo's doc's have not helped me much. Most of what I have learned came from Ed Leaf and Paul McNett and this forum. Also I had a background with FoxPro and Dabo is patterned after Fox.
Johnf
On 01/13/2017 09:11 AM, Henning Hraban Ramm wrote:
As far as NodeJS - well I like the fact that it is well supported by the community - but so is Django. I don't believe NodeJS's asynchronous I/O is faster than Django when comes to serving data - at least not for small websites. So I wouldn't leave Django for NodeJS.
Django is good for many projects, and I guess I’ll continue using it for websites, since my workflow is comfortable enough.
But for "desktopy" web apps, where most of the coding is in JS on the Client UI anyway, Meteor/Angular/React seems to be the better framework. I’m still at the beginning of my node.js journey, but I hit too many blocks while trying to do my current project in Django. And using dabo, i.e. installing an app on every user’s computer, would be a promise for a support desaster. I used dabo only ever as a convenient UI framework, never really needed the 3-tier setup. I could stay on Python 2.7, but I found the availability of dabo’s documentation too unreliable.
Greetlings, Hraban _______________________________________________ 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/4181D4F8-1FC5-42D3-A800-5CC4DCDDB242@fiee.ne...