QStyledItemDelegate from library

  • Hi,

    I am using a Subclass of QStyledItemDelegate named : EuroFormat. It is placed in a Library.
    When using the EuroFormat i am getting a segmenation fault.

    What am i doing wrong? can QStyledItemDelegate not be in another library?

    Added an example. A executable with Dll.
    "http://speedy.sh/ScUDg/TestApplication.zip":http://speedy.sh/ScUDg/TestApplication.zip "or dropbox":https://www.dropbox.com/s/1vlmiaccjkpnfyh/TestApplication.zip
    Any help is appreciated, thanks.

  • I'm currently using Delegates inside libraries, so its not the problem.

    Could you post the code when the EuroFormat() is created and called?

  • zip contains an example

    Here the code from the example



    DEPENDPATH += . EuroFormat
    INCLUDEPATH += EuroFormat
    LIBS+= -LEuroFormat/release -lEuroFormat



    #include "euroformat.h" //include from library

    int main(int argc, char *argv[])
    QApplication a(argc, argv);

    QTableView view;
    QStandardItemModel model(1,1);
    QAbstractItemDelegate* del = new EuroFormat;
    view.setItemDelegateForColumn(0, del);
    return a.exec();
    delete del;


    EuroFormat.h + cpp + global

    #include <QtCore/qglobal.h>
    #include <QStyledItemDelegate>

    #if defined(EUROFORMAT_LIBRARY)





    class EUROFORMATSHARED_EXPORT EuroFormat : public QStyledItemDelegate

    explicit EuroFormat(QObject *parent = 0) : QStyledItemDelegate(parent){}
    virtual ~EuroFormat(){}

    virtual QString displayText(const QVariant &value, const QLocale &locale) const {

    return QString("€ %1").arg(locale.toString(value.toDouble(), 'f', 2));

  • Yesterday I run your code and it compiles and runs a lot of times well. The problem is that some times it crashes when is executed a.exec(). With VisualStudio debugger it tells that the library was not well created.

    I don't know why it doesn't work, today I'll take a look using the .lib to ensure that is not the delegate.

    When I used the libraries with delegates I was done it with .lib not with .dll.

  • I confirm that using .lib there is no problems!

  • Someone else told me that the code works fine under Unix.

    I am using Qt 5.0.1 under windows.

    So the library is fine. what could be causing this?

    wild guess: Is the delegation object created in another threat?

  • sort of stack trace

    UNADDRESSABLE ACCESS: reading 0x00000000-0x00000004 4 byte(s)
    0 Qt5Gui.dll!ZNK22QGuiApplicationPrivate15isWindowBl ockedEP7QWindowPS1_ +0x51b (0x61955ddb <Qt5Gui.dll+0x15ddb>)
    1 Qt5Gui.dll!ZN15QGuiApplication4fontEv +0x17 (0x619577b8 <Qt5Gui.dll+0x177b8>)
    2 Qt5Gui.dll!ZN5QFontC1Ev +0x18 (0x619d9bd9 <Qt5Gui.dll+0x99bd9>)
    3 Qt5Widgets.dll!ZN12QStyleOptionC2Eii +0x4b (0x11351b0c <Qt5Widgets.dll+0x61b0c>)
    4 Qt5Widgets.dll!ZN20QStyleOptionViewItemC1ERKS_ +0x26 (0x11646987 <Qt5Widgets.dll+0x356987>)
    5 Qt5Widgets.dll!ZNK19QStyledItemDelegate5paintEP8QP ainterRK20QStyleOptionViewItemRK11QModelIndex+0x1f (0x1157ee40 <Qt5Widgets.dll+0x28ee40>)
    6 Qt5Widgetsd.dll!QTableView:aintEvent() [itemviews/qtableview.cpp:1439]
    7 Qt5Widgetsd.dll!QWidget::event() [kernel/qwidget.cpp:7986]
    8 Qt5Widgetsd.dll!QFrame::event() [widgets/qframe.cpp:534]
    9 Qt5Widgetsd.dll!QAbstractScrollArea::viewportEvent () [widgets/qabstractscrollarea.cpp:1163]
    10 Qt5Widgetsd.dll!QAbstractItemView::viewportEvent() [itemviews/qabstractitemview.cpp:1679]
    11 Qt5Widgetsd.dll!QAbstractScrollAreaPrivate::viewpo rtEvent() [../../include/QtWidgets/5.0.1/QtWidgets/private/../../../../../src/widgets/widgets/qabstractscrollarea_p.h:105]
    Note: instruction: mov (

Log in to reply

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