0

I am adding a Qwidget(QPushButton) into a QTreeWidget through setItemWidget method, but Button is not appearing as expected.

Need some help in this case.

Code:

import sys
from PyQt4 import QtGui, QtCore

class Test_Ui(QtGui.QMainWindow):
    def __init__(self):
        super(Test_Ui, self).__init__()
        self.setMainWidget()
        self.setTree()
        self.show()

    def setMainWidget(self):
        self.QwCentral = QtGui.QWidget()
        self.setCentralWidget(self.QwCentral)
        self.QglCentral = QtGui.QGridLayout()
        self.QwCentral.setLayout(self.QglCentral)

    def setTree(self):
        self.QtwExp = QtGui.QTreeWidget()
        self.QtwExp.headerItem().setText(0, 'First')
        self.QtwExp.headerItem().setText(1, 'Second')
        self.QglCentral.addWidget(self.QtwExp, 0,0)

        Qcategory = QtGui.QTreeWidgetItem()
        Qcategory.setText(0, 'TEST')
        self.QtwExp.addTopLevelItem(Qcategory)

        Qbutton = QtGui.QPushButton()
        Qbutton.setText('BUTTON')

        # setItem Widget Command
        self.QtwExp.setItemWidget(Qcategory, 1, Qbutton)

def main():
    global wapp
    app = QtGui.QApplication(sys.argv)
    wapp = Test_Ui()
    sys.exit(app.exec_())
Narayan Singh
  • 1,234
  • 2
  • 13
  • 26

2 Answers2

0

Simple typo:

Replace following

self.QtwExp.addToplevelItem(Qcategory)

with

self.QtwExp.addTopLevelItem(Qcategory)
#                 ^

enter image description here

falsetru
  • 357,413
  • 63
  • 732
  • 636
0

Its the PyQt4 version issue. when i use PyQt4 version 4.7.x it works fine.

Narayan Singh
  • 1,234
  • 2
  • 13
  • 26