0

Qtreewidgetを実行して、顧客の設計提案に参加しようとしています。QtPythonでコーディングしています。最初にQtDesignerを使用してみてから、コードを生成しました。しかし、実行しようとすると、エラーが発生します。

self.centralwidget.setSortingEnabled(__sortingEnabled)
AttributeError: setSortingEnabled

私はグーグルで検索しましたが、コンパイルエラーが発生するコードの行を単に削除するという提案を除いて、この問題の解決策は見つかりませんでした。しかし、実際には役に立ちませんでした。そうすると、次のように、より多くのエラーがトリガーされるためです。

self.treeWidget.topLevelItem(0).child(1).setText(0, QtGui.QApplication.translate("MainWindow", "Item Name", None, QtGui.QApplication.UnicodeUTF8))
AttributeError: 'NoneType' object has no attribute 'setText'

シンプルなQtreeWidget/Viewを生成するための現在のコードは次のとおりです。

#//==========================//#
def color_setupUi(self, MainWindow,phrase):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.eqpt_centralwdg(MainWindow)
self.eqpt_retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
#//==========================//#
def eqpt_centralwdg(self,MainWindow):
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")

self.colorTreeWidget = QtGui.QTreeWidget(self.centralwidget)
self.colorTreeWidget.setGeometry(QtCore.QRect(60, 60, 191, 141))
self.colorTreeWidget.setObjectName("colorTreeWidget")

item = QtGui.QTreeWidgetItem(self.colorTreeWidget)
item = QtGui.QTreeWidgetItem(self.colorTreeWidget)

self.centralwidget.setSortingEnabled(__sortingEnabled)
MainWindow.setCentralWidget(self.centralwidget)
#//==========================//#
def eqpt_retranslateUi(self, MainWindow):

MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8)

self.colorTreeWidget.headerItem().setText(0, QtGui.QApplication.translate("MainWindow", "color", None, QtGui.QApplication.UnicodeUTF8)
__sortingEnabled = self.colorTreeWidget.isSortingEnabled()
self.colorTreeWidget.setSortingEnabled(False)
self.colorTreeWidget.topLevelItem(0).setText(0, QtGui.QApplication.translate("MainWindow", "Yellow", None, QtGui.QApplication.UnicodeUTF8)
self.colorTreeWidget.topLevelItem(1).setText(0, QtGui.QApplication.translate("MainWindow", "Blue", None, QtGui.QApplication.UnicodeUTF8)
self.colorTreeWidget.setSortingEnabled(__sortingEnabled)
#//==========================//#

Designerを使用してQtに実装する必要のある他のすべてのオブジェクトと、inputLine、comboBox、TabWidgetなど、これまでのところ少しのコードは正常に機能しています。このTreeWidgetエラーで立ち往生しました。

ヒントや提案は大歓迎です。

4

2 に答える 2

2

投稿したコードは、UI ファイルを pyuic4 で実行したときに得られたものであると想定しています。PyQt UI コンパイラーに時々バグがあることがわかりました。できることは、出力を手動で修正し、ベンダーに文句を言うことだけです。

あなたの場合、行

self.centralwidget.setSortingEnabled(__sortingEnabled) 

読むべき

self.colorTreeWidget.setSortingEnabled(__sortingEnabled) 

AttributeError: 'NoneType' object has no attribute 'setText'がどこから来たのかわかりません。self.treeWidget.topLevelItem(0)以下のコードでは参照していません。

UI はまだそれほど複雑ではないように見えるので、QT Designer で最初からやり直す価値があるかもしれません。Designer / pyuic4 を混乱させないように、コントロールの切り取りと貼り付けは避けてください。幸運を!

于 2009-11-17T00:21:01.303 に答える
0

解決策は次のとおりです。

  1. 次の行のみを削除/コメントしてください: self.centralwidget.setSortingEnabled(__sortingEnabled)

次にコード:

def eqpt_centralwdg(self,MainWindow):
  self.centralwidget = QtGui.QWidget(MainWindow)
  self.centralwidget.setObjectName("centralwidget")

  self.colorTreeWidget = QtGui.QTreeWidget(self.centralwidget)
  self.colorTreeWidget.setGeometry(QtCore.QRect(60, 60, 191, 141))
  self.colorTreeWidget.setObjectName("colorTreeWidget")

  item = QtGui.QTreeWidgetItem(self.colorTreeWidget)
  item = QtGui.QTreeWidgetItem(self.colorTreeWidget)         

  self.connect(self.colorTreeWidget, QtCore.SIGNAL('itemClicked(QTreeWidgetItem*, int)'), self.eqpt_activateInput)

  MainWindow.setCentralWidget(self.centralwidget)  

そしてアウトプットへ

def eqpt_activateInput(self,item,col):
  print "Qtree ok! pressed"
  print item.text(col)      

これが他の人にも役立つことを願っています。ThreaderSlash "at" gmail "dot" com

于 2009-11-17T02:53:24.253 に答える