Hi -

>From a usability perspective, you definitely end up with something that feels 
>and behaves .. different.  This sort of thing is probably more appropriate for 
>smaller pop-ups and dialogs than a main window.

For implementation, you can make a subclass of QDialog which implements the 
chrome and event handling in a standard grid layout, with a big empty widget in 
the center.  Then over-ride some of the standard methods like setLayout to 
operate on the inner content widget, and you've created a custom window that's 
somewhat API-compatible with the standard QDialog.  It's not pretty but it gets 
the job done.

~ Devon



> -----Original Message-----
> From: pyqt-boun...@riverbankcomputing.com [mailto:pyqt-
> boun...@riverbankcomputing.com] On Behalf Of Yao Ko
> Sent: Thursday, September 23, 2010 12:54 PM
> To: Hans-Peter Jansen
> Cc: pyqt@riverbankcomputing.com
> Subject: Re: [PyQt] Skinning the title bar and window border
> 
> Hi,
> 
> Just note that if you go down the route of implementing a custom chrome
> with custom title bar (with the typical minimize, maximize, close
> butons), you may end up losing some Window Manager specific features.
> This is particularly noticeable on Mac and Win7 (with Aero).  On Mac,
> you can no longer click the title bar and move the app to another
> virtual desktop.  On Win7, you can no longer "shake" the app and have
> all other apps minimize automatically.  Nor you can auto "snap" the app
> to the desktop borders.
> 
> 
> So in the end, it's a tradeoff of user experiences, so you may want to
> choose carefully before diving into having custom chrome.
> 
> Yao
> 
> On Thu, Sep 23, 2010 at 3:51 AM, Hans-Peter Jansen <h...@urpla.net>
> wrote:
> 
> 
>       On Thursday 23 September 2010, 10:06:01 pard wrote:
>       > Thanks Devon
>       >
>       > I will be looking at an example that Vincent Vande Vyvre
> suggested.
> 
> 
>       Well that example let you play with the flags, and the flag that
> is needed
>       is named QtCore.Qt.FramelessWindowHint, as Devon already
> mentioned. The
>       matter is recreating the behavior of the window manager, which
> will always
>       be a proximity, of course.
> 
>       Pete
> 
> 
>       > Would
>       > you mind if I contacted you for pointers if I get stuck, since
> you have
>       > some experience in this?
>       >
>       > Pard
>       >
>       > On 22 September 2010 18:18, Devon Rueckner
>       <devon.rueck...@temboo.com>wrote:
>       > > Hi -
>       > >
>       > > We had the same requirement.  Our solution was to use a
> frameless
>       > > window (FramelessWindowHint) and implement our own chrome
> with event
>       > > handling for title-bar moving, edge resizing, etc.
>       > >
>       > > Regards
>       > > ~ Devon
>       > >
>       > > > -----Original Message-----
>       > > > From: pyqt-boun...@riverbankcomputing.com [mailto:pyqt-
>       > > > boun...@riverbankcomputing.com] On Behalf Of pard
>       > > > Sent: Wednesday, September 22, 2010 6:48 AM
>       > > > To: Hans-Peter Jansen
>       > > > Cc: pyqt@riverbankcomputing.com
>       > > > Subject: Re: [PyQt] Skinning the title bar and window
> border
>       > > >
>       > > > Hi Pete
>       > > >
>       > > > I understand why it is not popular. However, this is a
> requirement
>       > > > for work purposes.
>       > > > I had created a working program using wxpython for the gui,
> but the
>       > > > client required a specific colour scheme, fonts, etc. I
> found that
>       > > > wxpython was very restrictive when it comes to theming.
>       > > >
>       > > > PyQt uses stylesheets which make it much simpler to theme
> an
>       > > > application. The only outstanding requirement is that the
> frame must
>       > > > be the same theme as the application.
>       > > > Marketing is quite adamant about this.
>       > > >
>       > > > I also understand that it would be better to start with the
> basics,
>       > > > however, the deadline is also tight. If there are any
> resources which
>       > > > would give pointers as to how to reconstruct the work of
> window
>       > > > managers for my app it would be much appreciated.
>       > > >
>       > > > Pard
>       > > >
>       > > >
>       > > > On 22 September 2010 12:32, Hans-Peter Jansen
> <h...@urpla.net> wrote:
>       > > >
>       > > >       On Wednesday 22 September 2010, 11:36:41 pard wrote:
>       > > >       > Hi David
>       > > >       >
>       > > >       > Thanks for your response. Do you have any resources
> that
>       > > >       > would
>       > > >
>       > > > show how
>       > > >
>       > > >       > to do this? Tutorials, examples, etc.
>       > > >       > I do need to change the style of the window frame.
>       > > >
>       > > >       Doing that is not so popular, as it usually confuses
> your users
>       > > > more than it
>       > > >       is buying you. There's a reason, why all graphical
> operating
>       > > > systems
>       > > >       (including Windows, although their application
> developers
>       > > > usually doesn't
>       > > >       care a whit) try to provide an consistent user
> interface.
>       > > >
>       > > >       > I am new to pyqt.
>       > > >
>       > > >       Hmm, do you enter cars, when they move at 100 mph? If
> yes, how?
>       > > >
>       > > >       Seriously, start with the basics. If you master them,
> nothing
>       > > > will stop you
>       > > >       to reconstruct the work of window managers for you
> own
>       > > > application.
>       > > >
>       > > >       Cheers,
>       > > >       Pete
>       > > >
>       > > >       _______________________________________________
>       > > >       PyQt mailing list    PyQt@riverbankcomputing.com
>       > > >
> http://www.riverbankcomputing.com/mailman/listinfo/pyqt
> 
> 
>       _______________________________________________
>       PyQt mailing list    PyQt@riverbankcomputing.com
>       http://www.riverbankcomputing.com/mailman/listinfo/pyqt
> 
> 

_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to