Problem with QTreeWidgetItem.setBackground

Hi, Matthias!

I encountered problem with QTreeWidgetItem.setBackground (both variants of calls) in 0.27.8 and 0.26.4. Sample code:

import pya

class Test_Dialog(pya.QDialog):

    def __init__(self, parent):
        super(Test_Dialog, self).__init__(parent)

        self.setWindowTitle('Test')
        self.resize(200, 200)
        vertical_layout = pya.QVBoxLayout(self)
        self.setLayout(vertical_layout)
        tree_widget = pya.QTreeWidget(self)
        header_labels = []
        for column_name in ['Column', '1', '2']:
            header_labels.append(column_name)
        tree_widget.setHeaderLabels(header_labels)
        top_level_items = []
        top_level_item = pya.QTreeWidgetItem(tree_widget)
        top_level_item.setText(0, 'Test')
        top_level_item.setCheckState(1, pya.Qt_CheckState.Checked)
        top_level_item.setCheckState(2, pya.Qt_CheckState.Unchecked)
        for column_index in range(top_level_item.columnCount()):
            # top_level_item.setBackground(column_index, pya.QBrush(pya.Qt_GlobalColor.yellow))
            top_level_item.setBackground(column_index, pya.QBrush(pya.QColor(0xFF, 0xFF, 0x00)))
        tree_widget.addTopLevelItems(top_level_items)
        tree_widget.expandAll()
        for column_index in range(tree_widget.headerItem.columnCount()):
            tree_widget.resizeColumnToContents(column_index)
        vertical_layout.addWidget(tree_widget)

def test():
    Test_Dialog(pya.Application.instance().main_window()).exec_()

Stack trace (reduced to fit forum requirements) on Ubuntu 18.04:

Signal number: 11
Address: 0x7fa2a4daf630
Program Version: KLayout 0.27.8 (2022-02-13 rcbd805f8e)

Backtrace:
/usr/lib/klayout/libklayout_lay.so.0 +0x2af223 lay::enable_signal_handler_gui(bool) [??:?]
/lib/x86_64-linux-gnu/libc.so.6 +0x3ef10 killpg [??:?]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4 +0x2e3bf6 QBrush::QBrush(QBrush const&) [??:?]
/usr/lib/klayout/libklayout_QtGui.so.0 +0xc99421 non-virtual thunk to gsi::VariantUserClass::~VariantUserClass() [??:?]
/usr/lib/klayout/libklayout_pya.so.0 +0x355a7 pya::python2c_func::operator()(_object*) [??:?]
/usr/lib/klayout/libklayout_pya.so.0 +0x39741 tl::Channel::operator<<(char const*) [??:?]
/usr/lib/klayout/libklayout_gsi.so.0 +0x4fd09 gsi::VariantAdaptor::copy_to(gsi::AdaptorBase*, tl::Heap&) const [??:?]
/usr/lib/klayout/libklayout_QtGui.so.0 +0x25d64b1 gsi::qtdecl_QTreeWidgetItem() [??:?]
/usr/lib/klayout/libklayout_pya.so.0 +0x54415 pya::PythonModule::init(char const*, _object*) [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x21353b _PyCFunction_FastCallDict [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x266ff1 _PyObject_FastCallDict [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x24c1a5 PyDescr_NewMethod [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x267768 PyObject_Call [??:?]
/usr/lib/klayout/libklayout_pya.so.0 +0x493d1 pya::PYAObjectBase::destroy() [??:?]
/usr/lib/klayout/libklayout_QtGui.so.0 +0x25dcac2 gsi::VariantUserClass<QTreeWidgetItem>::~VariantUserClass() [??:?]
/usr/lib/klayout/libklayout_QtGui.so.0 +0x25ca85a gsi::qtdecl_QTreeWidgetItem() [??:?]
/usr/lib/klayout/libklayout_pya.so.0 +0x54415 pya::PythonModule::init(char const*, _object*) [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x21353b _PyCFunction_FastCallDict [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x17c1ec _PyFunction_FastCallDict [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x182303 _PyEval_EvalFrameDefault [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x17ba0f _PyEval_GetBuiltinId [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x17bd34 _PyFunction_FastCallDict [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x266fd1 _PyObject_FastCallDict [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x2676fd _PyObject_Call_Prepend [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x267768 PyObject_Call [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x1f4739 PyUnicode_Encode [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x1fc1c2 PySet_Clear [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x266f29 _PyObject_FastCallDict [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x17bec8 _PyFunction_FastCallDict [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x182303 _PyEval_EvalFrameDefault [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x17a803 _PyEval_SliceIndex [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x17c2be _PyFunction_FastCallDict [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x182303 _PyEval_EvalFrameDefault [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x17ba0f _PyEval_GetBuiltinId [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x17c4ce PyEval_EvalCodeEx [??:?]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 +0x17d24b PyEval_EvalCode [??:?]
/usr/lib/klayout/libklayout_pya.so.0 +0x2fba2 pya::PythonInterpreter::eval_string(char const*, char const*, int, int) [??:?]
/usr/lib/klayout/libklayout_lym.so.0 +0x464e4 lym::Macro::run() const [??:?]
/usr/lib/klayout/libklayout_laybasic.so.0 +0x26ad77 lay::Action::qaction_triggered() [??:?]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4 +0x19ef70 QMetaObject::activate(QObject*, QMetaObject const*, int, void**) [??:?]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4 +0x1bedc2 QAction::triggered(bool) [??:?]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4 +0x1c0113 QAction::activate(QAction::ActionEvent) [??:?]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4 +0x62236d QMenu::highlighted(int) [??:?]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4 +0x626759 QMenu::internalDelayedPopup() [??:?]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4 +0x21b930 QWidget::event(QEvent*) [??:?]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4 +0x62a96b QMenu::event(QEvent*) [??:?]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4 +0x1c503c QApplicationPrivate::notify_helper(QObject*, QEvent*) [??:?]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4 +0x1cc136 QApplication::notify(QObject*, QEvent*) [??:?]
/usr/lib/klayout/libklayout_lay.so.0 +0x10b5b6 lay::GuiApplication::notify(QObject*, QEvent*) [??:?]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4 +0x18a8ad QCoreApplication::notifyInternal(QObject*, QEvent*) [??:?]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4 +0x1cb73d QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool) [??:?]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4 +0x249ddc QApplication::x11ProcessEvent(_XEvent*) [??:?]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4 +0x248ce3 QApplication::x11ProcessEvent(_XEvent*) [??:?]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4 +0x272592 QPaintDevice::devType() const [??:?]
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 +0x4c537 g_main_context_dispatch [??:?]
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 +0x4c770 g_main_context_dispatch [??:?]
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 +0x4c7fc g_main_context_iteration [??:?]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4 +0x1bb20e QEventDispatcherGlib::processEvents(QFlags) [??:?]
/usr/lib/x86_64-linux-gnu/libQtGui.so.4 +0x272666 QPaintDevice::devType() const [??:?]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4 +0x18912f QEventLoop::processEvents(QFlags) [??:?]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4 +0x189495 QEventLoop::exec(QFlags) [??:?]
/usr/lib/x86_64-linux-gnu/libQtCore.so.4 +0x18f459 QCoreApplication::exec() [??:?]
/usr/lib/klayout/libklayout_lay.so.0 +0x10ce65 lay::GuiApplication::exec() [??:?]
/usr/lib/klayout/libklayout_lay.so.0 +0x10dd87 lay::ApplicationBase::run() [??:?]
/usr/bin/klayout +0x333b ?? [??:0]

...

/usr/bin/klayout +0x2a4a ?? [??:0]

Comments

Sign In or Register to comment.