Custom primitive elements in QStyle



  • Hello folks!

    I'm willing to create custom widgets, and thought that using QProxyStyle would be the best way. All I want is to draw custom primitive / control elements. What's the best way for that?

    I'm inheriting from QProxyStyle and overriding drawPrimitve, this way:
    @#pragma once

    #include "CommonGlobal.hpp"
    #include <QProxyStyle>

    class COMMONSHARED_EXPORT Style : public QProxyStyle
    {
    public:
    enum PrimitiveElement
    {
    PE_TimeMarker = QStyle::PE_CustomBase + 1,
    PE_Keyframe
    };

    Style();
    
    void drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const;
    

    };
    @

    The implementation is just a switch that handles my custom types, and calls baseStyle() to draw the know Qt types.



  • I think I don't know what you mean by "custom widget". Do you maybe want to just subclass QWidget and provide a paintEvent() handler and user interaction handlers: mouse events and such. (What's "custom" about the custom widgets you want to create?)



  • Yes, I mean that. I'm implementing a dopesheet like the one in Blender.

    Actually, I'm using the graphics framework, but I want to be able to further customize my look and feel with different styles, so I thought that delegating the rendering to a QStyle was be the best wayto achieve that.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.