2013-08-29 53 views
0

我正在通過setItemWidget方法將QwidgetQPushButton)添加到QTreeWidget方法中,但Button未按預期顯示。TreeWidget setItemWidget問題Qt

在這種情況下需要一些幫助。

代碼:

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_()) 
+0

'QglCentral'在哪裏? – falsetru

+0

@ falsetru ...編輯了這個問題..它的QGridLayout() – NarayaN

回答

0

簡單的拼寫錯誤:

更換以下

self.QtwExp.addToplevelItem(Qcategory) 

self.QtwExp.addTopLevelItem(Qcategory) 
#    ^

enter image description here

+0

對於Typo感到抱歉...它仍然無法正常工作...您測試了代碼嗎? – NarayaN

+0

@NarayaN,是的,我測試了它。我得到了[這個](http://i.imgur.com/ezcXJnf.png)。 – falsetru

+0

@NarayaN,你叫'main()'嗎? – falsetru

0

它的PyQt4版本問題。 當我使用PyQt4版本4.7.x它工作正常。