我正在尝试为由 qt 设计师设计的应用程序提供一个最小示例,该应用程序使用 pyqt 涉及 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) 例如,在由 *.ui 文件创建的窗口的子类中使用 add_item 方法会更好,我们是否应该使用将 *.ui 文件转换为 *.py 文件的中间步骤?