PDA

View Full Version : Property editor fully featured?



brcain
19th September 2006, 15:50
Hello,

I know (and appreciate) that Qt Designer is "open source". But, it doesn't seem to be as fully featured as comercial tools I've used. Perhaps I'm still just on the learning curve.

It seems that the property editor doesn't provide access to **ALL** the widgets' attributes. For example, I haven't found out how to get to the QGridLayout attributes: row, column, row span, and column span. I know you can do this (somewhat) graphically, but, sometimes it is easier (and necessary) to edit with the property editor.

I've also noticed that occasionally the tool will crash ... causing the UI file I'm working on to be empty. I've noticed this especially happens more when changing the central widget type (e.g. to QWorkSpace ... editing the UI file by hand and reloading into Designer). So, I have to be very careful that I keep backups.

Has anyone else had similar experiences?

Thanks,
Ben

high_flyer
19th September 2006, 15:57
It seems that the property editor doesn't provide access to **ALL** the widgets' attributes
This has nothing to do with the capabilties of Designer, each widget plugin exposes the properties it wants.
When you program your own designer plugin you can expose any and all properties of your custom widget.
So what ever properties that are not exposed, its because the trolls thought there is no need to expose them.
If you feel you need extra properties exposed to designer, you can always create a new designer plugin based on the widget you are interested in, and expose any properties you like.

brcain
19th September 2006, 16:02
So what ever properties that are not exposed, its because the trolls thought there is no need to expose them.
If you feel you need extra properties exposed to designer, you can always create a new designer plugin based on the widget you are interested in, and expose any properties you like.

I respectfully disagree ... that a user should have to re-invent the plugins to get to all the attributes. My point is that the tool IMHO ;) seems not so fully featured ... again compared to commercial tools I've used in the past.

I'm not opposed to learning the correct way of doing things. But, my impression is that it still needs features added.

high_flyer
19th September 2006, 16:08
I respectfully disagree
With what?
With the fact that a widget designer plugin can decide which properties it exposes to designer and which not?
That is a fact, nothing you can agree or dissagree about.
If you mean you disagree with the concept, and you think that designer should ALWAYS expose ALL properties of ALL widgets, then that is ok, you should bring it up to the rolls.
I personlly though, do think that the current conept is a good one.
It allows the plugins to decide what to expose, just like a class has private and protected sections.
The control should be in the hands of the creator, not the user <- only my oppinion.

brcain
19th September 2006, 16:18
The control should be in the hands of the creator, not the user <- only my oppinion.

My point is I have noticed something very useful in the past that is not present with Designer ... as far as I can tell. It's obvious that they make the decisions they make. I wasn't trying to be a dolt ;)

high_flyer
19th September 2006, 16:24
Yes but you are missing the point - its not lacking on part of designer - Designer can expose ANY property that a widget will allow it to expose, thus designer is not limited relative to other tools you are speaking of, but has a greater functionality (allowing the widgets control on exposed properties, something other tools, I guess do not do)

brcain
19th September 2006, 16:48
has a greater functionality (allowing the widgets control on exposed properties, something other tools, I guess do not do)

Yep. It's also open source. Don't get me wrong I do appreciate it. I'll take your advice and ask for new features.

wysota
19th September 2006, 18:10
Yep. It's also open source. Don't get me wrong I do appreciate it. I'll take your advice and ask for new features.

These things you want are not new features, they are tries to do something the hard way. They are all available by dragging widgets to the layout. Designer operates on widgets, not layouts. It exposes properties of widgets, not layouts. The "attributes" you want (meaning row, column, row span, column span of the layout) are (1) not properties, (2) computed by Designer automatically when you place widgets on the form and make laid out groups out of them, you needn't access them directly. If you want to do that yourself, open your favourite xml editor and modify the spans there - the .ui file uses xml notation.

Designer (and Qt at all) operates on abstractions. The concept of layouts is an abstraction too - thanks to them you don't have to worry how your widget will behave when resized, as it will be controlled using some abstract mechanism which you don't have to care about. The row and column number (not speaking of row or column span) is of no interest to you - just place your widgets as you want them and apply a layout. It will adjust to what you have designed.

brcain
19th September 2006, 18:25
Designer operates on abstractions. The concept of layouts is an abstraction too - thanks to them you don't have to worry how your widget will behave when resized.

I realize it's an abstraction ... an abstraction that is intended to be natural to the designer. My understanding is that Qt is trying to treat all things equal (thus no layout managers ... a design decision) ... yet have Qt Designer provide a natural view to the designer.

It's the abstraction I'm trying to work from. The notion of where a widget lives (logically ... i.e. a quadrant) in a QGridLayout is important and necessary to specify by the designer. Albeit, I freely admit I'm confused about how to specify it (and particular so change it) graphically in some cases.

ZB
19th September 2006, 19:58
I agree it could need some more features, especially being able to change the hierarchy in the object inspector via drag'n'drop, emptying containers and "flattening" them. Some more widgets to chose from would be great too since it does take quite some effort to get acquainted enough with it to be able to add custom widgets or even the ones native to Qt which are not available in the designer.

wysota
19th September 2006, 22:44
My understanding is that Qt is trying to treat all things equal (thus no layout managers ... a design decision)
I don't quite understand... You can operate on layouts in Designer, can't you?

... yet have Qt Designer provide a natural view to the designer.
It does provide a way. Even two ways. One is placing widgets on the form first and then applying a layout. The other is to modify an existing layout by dragging objects which are part of it.


It's the abstraction I'm trying to work from. The notion of where a widget lives (logically ... i.e. a quadrant) in a QGridLayout is important and necessary to specify by the designer. Albeit, I freely admit I'm confused about how to specify it (and particular so change it) graphically in some cases.
Place widgets first, layouts later.



I agree it could need some more features, especially being able to change the hierarchy in the object inspector via drag'n'drop
This is something I'd like to see too, but I believe it is very hard to implement it. If you modify the hierarchy, the coordinates of widgets change, the layouts change, it would be hard to place those "pulled out" widgets in appropriate coordinates in their new parent to avoid a mess on the form.


emptying containers
Hmm.. have you tried selecting the contents of a container and pressing "Delete"? Or breaking container's layout and dragging widgets outside of the container?


and "flattening" them.
I don't know what you mean by "flattening" a container.


Some more widgets to chose from would be great
I'm sorry, who forbids you from adding more widgets to Designer?


too since it does take quite some effort to get acquainted enough with it to be able to add custom widgets
Are you serious with that? With Qt4 it is really easy - you open a context menu and choose "promote widget" and that's it, the easiest way to add custom widgets.


or even the ones native to Qt which are not available in the designer.
Which ones are you talking about? They are not there to choose from because of a reason. And if you insist, you can always make a plugin that makes it possible to place them directly on form. For Qt3 you can use wwWidgets (http://www.wysota.eu.org/wwwidgets) to place some of them on the form, but believe me, you won't be able to do anything serious with them without subclassing anyway...

ZB
20th September 2006, 14:36
I'm sorry, who forbids you from adding more widgets to Designer?
...


I think you are misunderstanding me, or not fully reading my post.

Emptying containers automatically, flattening widgets (not the widgets, their hierarchy) and having more native widgets to chose from is what the Qt Designer in itself is all about - adding comfort, and there is no wrong in saying it would be nice and comfortable to have without going through the effort (which I insist is alot for non-expert users) of extending the Qt Designer on your own.

If I said a glass of orange juice would be nice too, would you ask me sorry, but who forbids you to grow an orange tree and squeezing your own juice? I am simply saying it would be comfortable.

Thanks

wysota
20th September 2006, 15:19
I think you are misunderstanding me, or not fully reading my post.
So enlighten me :cool:


Emptying containers automatically,
What do you mean by "automatically"? Electric impulses start to circulate through your brain and the container contents get deleted? You have to push something, it doesn't matter if it is the delete key on your keyboard or some other special combination.


flattening widgets (not the widgets, their hierarchy)
I still don't understand what you mean by flattening widgets or their hierarchy... you mean to recursively reparent all widgets from a container to the form itself? Read my previous reply again, it would create a mess on the form, especially with more complex containers.


and having more native widgets to chose from
Again, what native widgets? Name three...


is what the Qt Designer in itself is all about - adding comfort, and there is no wrong in saying it would be nice and comfortable to have without going through the effort (which I insist is alot for non-expert users) of extending the Qt Designer on your own.
But who asks you to extend Designer? Most of the features you desire are already there, you just didn't discover them yet.


If I said a glass of orange juice would be nice too, would you ask me sorry, but who forbids you to grow an orange tree and squeezing your own juice? I am simply saying it would be comfortable.

No, I would say Designer is not meant to serve orange juice but to design widgets. Just like people start comparing Designer to some IDEs. Designer is not an IDE and is not meant to be one. And even if Designer was serving fuit juice, you'd be lost in the vast number of fruits to choose from while trying to get a simple thing done.

Besides, I doubt many people would appreciate serving fruit juice by a GUI designer. If you want/need a feature that is missing, you either have to implement it yourself or live without it by achieving the same effect in some other manner.

To be honest, I can't think of a reason to "flatten" hierarchy of a container, you'd still have to drag all the widgets around manually trying to place them on the form and creating a big mess. I don't see how having a button to create chaos on the form is superior to dragging the hierarchy of widgets out of the container using a single mouse movement. And what happens if you want to sustain the lowest hierarchy in a container? "Flattening" the container would force you to find and reinsert all the "lowest level" widgets to respective containers. With the current implementation that won't be a problem, because those low-level widgets would still reside inside their containers.

Too much possibilities to choose from create chaos. It is better to do one thing good then to do everything lousy. Next step you'll be asking for a button labeled "Implement my program for me".

ZB
20th September 2006, 16:09
No, I would say Designer is not meant to serve orange juice but to design widgets.

Let us agree to disagree before this turns into a flame war. Though you have to agree, being served orange juice by the Qt Designer would not be bad... it sure gets hot in my appartement during the summers...

Thank you for answering my posts!

wysota
20th September 2006, 16:57
Let us agree to disagree before this turns into a flame war.
Oh, you haven't seen me start flame wars yet :)

Though you have to agree, being served orange juice by the Qt Designer would not be bad... it sure gets hot in my appartement during the summers...
That was a metafore, I hope... At least I treated it as one :)