我正在尝试使用pyqt设计Qt Designer应用程序的最小示例,其中涉及QTreeView
1)我可以通过这种方式启动应用程序,但是如果我按下按钮,TreeView窗口部件中不会显示任何条目,我没有收到任何错误消息,并且布局看起来很好,是否有一种更新方法?
请具体回答,因为我对Qt仍是初学者,许多文档都是用C++示例编写的,而我只有一些基本的C和Python经验。
from PyQt4 import uic, QtGui, QtCore
(Ui_MainWindow, QMainWindow) = uic.loadUiType('main_window.ui')
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.model = QtGui.QStandardItemModel()
self.connect(self.ui.pushButton_NeuesMoebel, QtCore.SIGNAL('clicked()'), self.add_item)
def add_item(self):
t = self.ui.lineEdit_Moebel.text()
if len(t) > 0:
item = QtGui.QStandardItem(t)
self.model.appendRow(item)
self.ui.lineEdit_Moebel.clear()
else:
self.ui.statusBar.showMessage('error: no text in Moebel')
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
2) 另外,有没有更干净的方法直接使用*.ui文件来直接子类化该文件中的MainWindow?UI相关的东西似乎有些混乱。
3) 例如,将add_item方法放在*.ui文件创建的窗口的子类中会更好,我们应该使用将*.ui文件转换为*.py文件的中间步骤吗?