PDA

View Full Version : Problems with new Qt style without decoration window



Jose D.
28th June 2009, 10:33
Hello.

I will try to explain. I am sorry because I speak little English.
I'm doing a new style. And I have several problems.
I need your help to know if I'm not going wrong way and other custiones which way to go.

1. It is a style for an application that must be uniform.
This application must have a border window itself.
I removed the decoration of the window.
I need to increase the space in the layer window (content), simulating the edge of a window itself. There is no "QStyle::... PM_ width" to handle this? or would be with QStyle::PM_Layout. I'm lost in the solution.

2. I need that style,
enclosed in a square across the area of Toolbars, and Central DockWidgets Widget without the menu.

3. Buttons to minimize, maximize and close, I had thought added to the application "setMenuWidget ()." Is it more correct?
I know that can not be a correct solution to all this, but the application that uses this style must have a very personalized look.

Thanks, if you understand my bad English writing and if you can helps.
Attached drawing of the idea.

wysota
28th June 2009, 11:03
Long story short - I don't think what you want to achieve is possible this way. What you want to do is to create a style for the window manager and not the application itself. You can mimic some of the things through the application style but not everything. What platforms is your application going to be deployed on?

Jose D.
28th June 2009, 11:10
Thank you. This will be for Linux

wysota
28th June 2009, 11:29
So maybe implement a proper decoration style for KDE if that is where your application is going to run? And then let your users decide if they like the style or not - I'm in general against forcing a non-standard look on one single application in the system and trying to be smarter than the user.

nish
29th June 2009, 09:36
So maybe implement a proper decoration style for KDE if that is where your application is going to run? And then let your users decide if they like the style or not - I'm in general against forcing a non-standard look on one single application in the system and trying to be smarter than the user.

you are a bit harsh here i think... and how come one be trying to outsmart a user? some of n00best users prefer winamp then media player classic or vlc

wysota
29th June 2009, 11:30
and how come one be trying to outsmart a user?
With a "I know you will prefer my looks of the system over the one you have now" approach.


some of n00best users prefer winamp then media player classic or vlc
Not all computer users are newbies and forcing your own style doesn't give them an alternative. "Free" is about freedom to choose - if you prefer using Windows (or an oddly looking application) over other alternatives, I have nothing against that, you have a right to do so.

nish
29th June 2009, 12:14
With a "I know you will prefer my looks of the system over the one you have now" approach.

may be i look at this problem at a different angle. My point is .. that a developer creates something and its his freedom to paint it to his liking. For example when a kid draws a car on paper he can put a truck's windshield on top of ferrari model, its his choice..its his creation. As a developer, i want my application to first appeal to me( or my boss). If the user do not like my design then he always has the choice of moving to the thousands of alternatives. I am not against guidelines, and i have never made a not standard looking app, i am just trying to say that not everybody thinks like "I know you will prefer my looks of the system over the one you have now" when he designs.



Not all computer users are newbies and forcing your own style doesn't give them an alternative. "Free" is about freedom to choose - if you prefer using Windows (or an oddly looking application) over other alternatives, I have nothing against that, you have a right to do so.

the developer is not forcing anything... dont buy the software if u dont like the skin.. simple as that. I personally think that if all the app looks like the same then there will be no innovation, there would be no XP luna theme, no Vista Aero theme. I have seen some very ugly applications trying to be skinnable.... i throw them away.. simple.

wysota
29th June 2009, 14:16
My point is .. that a developer creates something and its his freedom to paint it to his liking.

Only to a point where he tries to imitate window decorations (which are part of the system and not the application), system menus and interaction with the window as a whole.


For example when a kid draws a car on paper he can put a truck's windshield on top of ferrari model, its his choice..its his creation.
Yes but when you tell him the paper has to be dark-blue and the Ferrari has to be green it stops being his choice, especially if the kid prefers drawing on a yellow paper and his favourite crayon colour is red.


As a developer, i want my application to first appeal to me( or my boss). If the user do not like my design then he always has the choice of moving to the thousands of alternatives.
I don't think your boss would agree with the last sentence :)


I am not against guidelines, and i have never made a not standard looking app, i am just trying to say that not everybody thinks like "I know you will prefer my looks of the system over the one you have now" when he designs.
But this is exactly the case here. If you design your application - it's fine to do what you want. But if your application behaves differently than all the rest of the applications running on my system just because you prefer the title bar to be at the bottom of the window and when you double-click it, it expands to the full size of the desktop whereas at the same time the rest of the applications in the system have the title bar in the upper part of the window and when you click the decoration the window gets shaded/unshaded, I can say you are interfering with my look and feel of the system trying to force your ways because you don't let me decide what I want. This is what I understand by the developer trying to be smarter than the user.

If one wants to introduce such non-standard behaviour, he should do it the proper way - by implementing a theme/skin/style/whatever-it-is-called-on-your-platform for the window manager so that the user can get a coherent behaviour across all applications. We have to remember one very important thing - window decorations are not part of the application but rather part of the windowing system on your platform.

nish
29th June 2009, 15:32
Only to a point where he tries to imitate window decorations (which are part of the system and not the application), system menus and interaction with the window as a whole.
sometimes i want a small widget on my desktop showing time/weather/news. Hey.. the title bar is taking too much space...



Yes but when you tell him the paper has to be dark-blue and the Ferrari has to be green it stops being his choice, especially if the kid prefers drawing on a yellow paper and his favourite crayon colour is red.
who told the kid not to use his choice? this my whole point. let me put it this way... the kid(developer) wants to use yellow paper but the teacher(user) wants him to use white paper because all other kids have submitted their painting(application) on the standard white paper, and especially the teacher is allergic to anything but white paper.



I don't think your boss would agree with the last sentence :)

ya. i think i overstated. the developer should change the design if majority rejects.. i did it



But this is exactly the case here. If you design your application - it's fine to do what you want. But if your application behaves differently than all the rest of the applications running on my system just because you prefer the title bar to be at the bottom of the window and when you double-click it, it expands to the full size of the desktop whereas at the same time the rest of the applications in the system have the title bar in the upper part of the window and when you click the decoration the window gets shaded/unshaded, I can say you are interfering with my look and feel of the system trying to force your ways because you don't let me decide what I want. This is what I understand by the developer trying to be smarter than the user.
hmmm.. i am yet to see an application so dramatic... But ofcourse there are limits to everything and some commonsense should prevail.



If one wants to introduce such non-standard behaviour, he should do it the proper way - by implementing a theme/skin/style/whatever-it-is-called-on-your-platform for the window manager so that the user can get a coherent behaviour across all applications. We have to remember one very important thing - window decorations are not part of the application but rather part of the windowing system on your platform.
agreed. but as i noted before... some times its better to design and innovate in a *proper* way even if it is playing with window decorations... like the previous example of widgets and to give u the latest ... take a look at google chrome browser... they have a fake title bar at maximized mode which saves you the extra two lines of scrolling... this is not implemented by any style/skin... just totally deleting the window manager's title bar. I really like this feature... i dont want to go into full screen modes of other browsers which hides the task bar.. i am always switching between applications and i like the click on taskbar rather then alt-tab. So if all the applications uses standard window decorations and gui guidlines......... Wouldn't it be restricting at least some of the user's freedom?(may be 99% of ppl like standard window decorations but 1% like me will not mind some change):)

wysota
29th June 2009, 15:56
sometimes i want a small widget on my desktop showing time/weather/news. Hey.. the title bar is taking too much space...
So you can disable it but don't disable it and try to mimic it back.


who told the kid not to use his choice? this my whole point. let me put it this way... the kid(developer) wants to use yellow paper but the teacher(user) wants him to use white paper because all other kids have submitted their painting(application) on the standard white paper, and especially the teacher is allergic to anything but white paper.
I don't think the kid-teacher and developer-user analogy is a good one here :)



ya. i think i overstated. the developer should change the design if majority rejects.. i did it
We all did :)



agreed. but as i noted before... some times its better to design and innovate in a *proper* way even if it is playing with window decorations...
But the proper way is to develop a theme not teach your application things that are someone elses job.


like the previous example of widgets and to give u the latest ... take a look at google chrome browser... they have a fake title bar at maximized mode which saves you the extra two lines of scrolling... this is not implemented by any style/skin... just totally deleting the window manager's title bar. I really like this feature... i dont want to go into full screen modes of other browsers which hides the task bar.. i am always switching between applications and i like the click on taskbar rather then alt-tab. So if all the applications uses standard window decorations and gui guidlines.........
And still Google Chrome is not cross-platform and if they (finally) deploy the browser on Unices with a Windows-like title bar and decorations people are most probably going to laugh at them at best.


Wouldn't it be restricting at least some of the user's freedom?(may be 99% of ppl like standard window decorations but 1% like me will not mind some change):)

So give them a choice. Make an option to have one looks or the other. Not force your way through just because you have a significant slice of the market and can afford a "take it or leave it" policy.

Jose D.
29th June 2009, 17:02
First I appreciate your comments.
It is always interesting to share opinions.

I tell you.
A potential client has asked me if I can make an application for managing your business.

I am a KDE user but the client do not understand integration at the desktop, or KDE, or Kwin, etc.. He only understands that the application that is using Windows and this application has windows colors, depending on the area of this, customers, orders, etc, without edge.

This application is made with a bad code in visual basic and it works very badly. I think that the program uses a third party plugin for this purpose.
I want to show the client a mockup, but done in C++, and imitate the look of the current application. As a KDE user, I want to change all five terminals to GNU/Linux + KDE. and the server will use GNU/Linux. To understand it, the server uses a database in Access.

Particularly. I think that the typical pattern of icon, title, buttons, the current edge of the windows is not very innovative,...............but if it is functional :). But the design should have no rules or limitations. If an application does not like the look, always, at least in linux, you can choose another. And if this, there are other possibilities (skins), even better.

I hope you have good writing, because as I said I do not speak English well.

wysota
29th June 2009, 20:34
I am a KDE user but the client do not understand integration at the desktop, or KDE, or Kwin, etc.. He only understands that the application that is using Windows and this application has windows colors, depending on the area of this, customers, orders, etc, without edge.
So is it going to be deployed on Linux or Windows? As I'm lost here... the last time you said "Linux", now you say "Windows". If you deploy the application on Windows, it will look like any other Windows application.


This application is made with a bad code in visual basic and it works very badly. I think that the program uses a third party plugin for this purpose.
I want to show the client a mockup, but done in C++, and imitate the look of the current application. As a KDE user, I want to change all five terminals to GNU/Linux + KDE. and the server will use GNU/Linux. To understand it, the server uses a database in Access.
Start the application with the "-style windows" switch and you will have a Windows look.

nish
30th June 2009, 03:22
So you can disable it but don't disable it and try to mimic it back.
ok sir,..i will make sure that my application will certainly have default look for the copies sold in Poland. Exclusive release...:)



I don't think the kid-teacher and developer-user analogy is a good one here
dropped:)



We all did
thanks to god ... at least mr. wysota agrees with something..




But the proper way is to develop a theme not teach your application things that are someone elses job.

i dont get it.. how can u develop a weather widget without a title bar .... without removing the title bar:)


And still Google Chrome is not cross-platform and if they (finally) deploy the browser on Unices with a Windows-like title bar and decorations people are most probably going to laugh at them at best.
man.. i know linux is your pet.. i like it too. but you should at least take a look at some windows machices for a minute or two. For your info Chrome do not have the standard windows title bar, they have copied the vista title bar so u will not notice the difference on vista but on xp u can. I believe the google ppl are smart ppl, they will blend the title bar into gnome or kde style and if they copy the same vista title bar on linux then of course i will join the laughter party. This what i ment when saying " commonsense " and "everything has limits"


So give them a choice. Make an option to have one looks or the other. Not force your way through just because you have a significant slice of the market and can afford a "take it or leave it" policy.
As you know i am developing one application in my weekends. Previously my plan was to create it like a super cool looking app with custom window decorations ofcourse. Thx to your views i will add this option in the options menu.


Aside: When was the last time someone won the argument with this guy?:rolleyes:

nish
30th June 2009, 03:26
First I appreciate your comments.
It is always interesting to share opinions.
Hey... i appreciate your patience... I forgot that you started this topic and need help.... and i was busy in other talks..


Particularly. I think that the typical pattern of icon, title, buttons, the current edge of the windows is not very innovative,...............but if it is functional :). But the design should have no rules or limitations. If an application does not like the look, always, at least in linux, you can choose another. And if this, there are other possibilities (skins), even better.

I hope you have good writing, because as I said I do not speak English well.

what i understood is you want to say that there should be no rules in application design and the developer can skin the application if he wants..rite?

wysota
30th June 2009, 10:33
i dont get it.. how can u develop a weather widget without a title bar .... without removing the title bar:)
You misunderstood me. If you want to remove the title bar then that's fine. But if you remove a title bar only so that you can implement a custom one with the same buttons and functionality that the original one had (only with different looks) then that's not fine anymore. I've seen applications (from large companies) written for Linux that had custom decorations from Windows 95 and at that time my system was configured in a way much different than Win95 and all the buttons where not where I expected them to, the windows worked differently, etc. And all that for what?



man.. i know linux is your pet.. i like it too. but you should at least take a look at some windows machices for a minute or two. For your info Chrome do not have the standard windows title bar, they have copied the vista title bar so u will not notice the difference on vista but on xp u can.
Which proves exactly what (besides my point that a custom title bar doesn't follow the system theme)?


I believe the google ppl are smart ppl,
On what do you base your beliefs? That Google is a large company? In that case Microsoft people are also very smart and the blue screen of death is the smartest thing in the world...


they will blend the title bar into gnome or kde style
Which Gnome style? Which KDE style? All of them? Even the ones that have not been developed yet? I strongely doubt that.


and if they copy the same vista title bar on linux then of course i will join the laughter party.
What if you change the default Vista theme to something else? Will Chrome follow? Did you try that?


Aside: When was the last time someone won the argument with this guy?:rolleyes:

You'd be surprised :)

nish
30th June 2009, 11:17
You misunderstood me. If you want to remove the title bar then that's fine. But if you remove a title bar only so that you can implement a custom one with the same buttons and functionality that the original one had (only with different looks) then that's not fine anymore. I've seen applications (from large companies) written for Linux that had custom decorations from Windows 95 and at that time my system was configured in a way much different than Win95 and all the buttons where not where I expected them to, the windows worked differently, etc. And all that for what?

hmm.. looks like you have never used winamp and i have never used the big stupid skin app.




Which proves exactly what (besides my point that a custom title bar doesn't follow the system theme)?
i think you lost track of this part. It shows(i think *show* is better than *prove*) somethings can be better when done innovative.



On what do you base your beliefs? That Google is a large company? In that case Microsoft people are also very smart and the blue screen of death is the smartest thing in the world...
there are many reasons for google to be smart in my opinion.. the most obvious is the introduction of the word googling.
Being a large company does not mean you are smart in all areas.. Microsoft is also smart... no matter what everyone says... they hold the 90% desktop considering windows started as an underdog to unix and mac os.



Which Gnome style? Which KDE style? All of them? Even the ones that have not been developed yet? I strongely doubt that.
may be the can detect and use the native api for each style dynamically? is it so hard? i dont know.



What if you change the default Vista theme to something else? Will Chrome follow? Did you try that?
i am on fedora8 machine.. will check this at home today.




You'd be surprised :)
any links would be appreciated. i love surprises:)

wysota
30th June 2009, 12:31
hmm.. looks like you have never used winamp and i have never used the big stupid skin app.
The "big stupid skin app" was Rational Rose for Linux :) I'm not sure what winamp has to do with it, it behaves differently than other applications in the system which can be annoying. But winamp gives you a choice, which is essential.



i think you lost track of this part. It shows(i think *show* is better than *prove*) somethings can be better when done innovative.
I have nothing against innovation but I say you should do it the proper way. If you want to build a flying car (which some students did recently) you have two choices - either take a car, add wings, etc. and make it fly (solution 1) or take an airplane, dismantle everything that is not related to flying and build a car around what is left (solution 2). I don't know which solution seems more convenient for you but personally I would pick solution 1.

Removing standard window decorations by making the app frameless and then implementing the decorations inside the application again, reimplementing all the behaviour of the system related to operating on the window seems a bit of "reaching your left ear with your right hand" for me. Instead you can just implement a decoration theme using the API the system offers thus keeping your innovation without forcing the user to change his likings or doing wacky things in the application itself (such as adding widgets so that you can implement the artificial borders of the window).


there are many reasons for google to be smart in my opinion.. the most obvious is the introduction of the word googling.
Which probably wasn't done by their engineers. And the word google itself is "stolen".
http://en.wikipedia.org/wiki/Googol


Being a large company does not mean you are smart in all areas.. Microsoft is also smart... no matter what everyone says... they hold the 90% desktop considering windows started as an underdog to unix and mac os.
They are smart in marketing, not in software engineering. We're talking about the latter here, at least I am.


may be the can detect and use the native api for each style dynamically? is it so hard? i dont know.
If they did that, they would have done that for Windows as well. And in general case this is not possible - nobody said the title bar has to be on the upper border of the window and covering the whole width of the window.



i am on fedora8 machine.. will check this at home today.
If it doesn't respect XP decorations then those are not delegated to the system but rendered internally. This is UI emulation - the same thing Qt does for styles other than XP, Vista and Aqua (only on another level).


any links would be appreciated. i love surprises:)
My life is not limited to computers, not everything is linked to the Internet :)

nish
30th June 2009, 13:06
oh man.. this thread can continue to eternity. break?

btw... by googling i ment that googling == searching... which is in fact created by public as a short for "search on google.com"