[Development] Qt5 missing features

morten.sorvig at nokia.com morten.sorvig at nokia.com
Wed Apr 11 10:51:00 CEST 2012


On Apr 11, 2012, at 9:57 AM, ext BogDan wrote:

> Hi Girish,
> 
>   I know that almost all QPA API are internal, I'm using them from the 
> 
> very begging :) !
> 
> 
>    The problem is sometime if you want to create a clean API you also 
> 
> must to change other APIs which are public. Let me give you an example 
> 
> for better understanding. The QMenu subclass QWidget class, so you 
> 
> can use QWidget::show() method to show the menu, the problem is that 
> 
> method is not virtual and can not be overwritten in QMenu. Why I want to 
> 
> overwrite it? Because I don't want to show the QMenu widget on Android,
> I want to use Android's native menu system, this means that show method 
> 
> must be changed to virtual, but I'm afraid that you can not do it after the
> API/ABI is labeled as stable. Qt 5.0 will guarantee the  API/ABI stability for
> the entire life of Qt 5.x meaning that the next chance to do these changes
> will be 5-10 years from now!

I think you are going about it the wrong way here. Subclassing and re-implementing virtual functions from the public API is a tool for application developers, not for platform developers. 

What you (and I) do instead is to change the QMenu::show implementation to not show a widget on the platform in question. In Qt 4 we've done this with Q_WS #ifdefs, in Qt 5 we aim to have a much better QPlatformMenu API.

Morten




More information about the Development mailing list