On 17 May 2013, at 4:19 PM, Sensei wrote:

> Dear all,
> 
> I'd like to try something new for an application: having a custom shaped 
> dialog for some options. You can see my desire in the attachment.
> 
> Now, what do you suggest to do that? I am lost here!
> 
> Using a QDialog maybe? But how can I position it exactly where I'd like? 
> Should this be modal? I'd say no: if a user clicks elsewhere, it should 
> disappear, probably.
> 
> It's the first time I'm trying something like this, so any suggestion is more 
> than welcome!

If you are using a Mac, that kind of window is called a popover.  We don't have 
support for it yet in Qt, but it should be in Qt::WindowFlags eventually (but 
only on the Mac).

Yes you can fake it with Qt Quick, and you could draw the outline with the 
Canvas API, but probably it's easier to use BorderImage because of the shadows. 
 See qtdeclarative/examples/quick/imageelements/content/ShadowRectangle.qml for 
example, but you will need an image with the pointy part already done.  Make it 
as wide as the maximum-width popover you will ever want, so you can use 
horizontalTileMode: BorderImage.Repeat without ever repeating the pointy part.  
The height won't matter as much.  If the popovers sometimes go upwards then you 
might need two different images.

Since the pointy part is always inside another window, you don't necessarily 
need a shaped window for the popover, but a separate Window will allow the 
popover to extend outside the main window if necessary.  Maybe use a QtQuick 
Window, set color: "transparent" and then provide the frame yourself with 
BorderImage?  Later on you can remove that and set the new window flag when 
it's working.
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to