编辑器: vscode OR Pycharmvue
vscode须要安装PYQT Integration 以及 Python 插件, Pycharm须要配置External Tools
program选择Qtdesigner.exe的路径, Arguments: $FilePath$, work directory: $FileDir$
program: python, Arguments: -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py, work direactory: $FileDir$
没有布局的控件不会随着窗口的改变而改变,关于布局,看这个Qt布局博客python
self.sm = QtGui.QStandardItemModel() // 标准数据模型 # 设置数据头栏名称 self.sm.setHorizontalHeaderItem(0, QtGui.QStandardItem("Name")) self.sm.setHorizontalHeaderItem(1, QtGui.QStandardItem("NO.")) # 设置数据条目 self.sm.setItem(0, 0, QtGui.QStandardItem("张三")) self.sm.setItem(0, 1, QtGui.QStandardItem("20120202")) self.sm.setItem(1, 0, QtGui.QStandardItem("李四")) self.sm.setItem(1, 1, QtGui.QStandardItem("20120203000000000000000")) self.sm.setItem(2, 0, QtGui.QStandardItem("李四")) self.sm.setItem(2, 1, QtGui.QStandardItem("20120203000000000000000")) self.sm.setItem(3, 0, QtGui.QStandardItem("李四")) self.sm.setItem(3, 1, QtGui.QStandardItem("20120203000000000000000")) self.sm.setItem(4, 0, QtGui.QStandardItem("李四")) self.sm.setItem(4, 1, QtGui.QStandardItem("20120203000000000000000")) self.sm.setItem(5, 0, QtGui.QStandardItem("李四")) self.sm.setItem(5, 1, QtGui.QStandardItem("20120203000000000000000")) # 设置条目颜色和字体 self.sm.item(0, 0).setForeground(QtGui.QBrush(QtGui.QColor(255, 0, 0))) self.sm.item(3, 1).setBackground(QtGui.QBrush(QtGui.QColor(255, 255, 0))) # 按照编号排序 self.sm.sort(1, QtCore.Qt.DescendingOrder) # 将数据模型绑定到QTableView self.tableView.setModel(self.sm) for c in range(self.tableView.horizontalHeader().count()): self.tableView.horizontalHeader().setSectionResizeMode(c) // 设置列宽自动填充·
知道vue,react的事件机制会对pyqt的信号与槽机制的理解提供方便。react
insertSuccess = pyqtSignal(str, str)
其中pyqtSignal来自于from PyQt5.QtCore import pyqtSignal
, insertSuccess信号会携带两个字符串类型的数据。编辑器
self.name = self.lineEdit.text() self.no = self.lineEdit_2.text() self.hide() self.insertSuccess.emit(self.name, self.no)
myDia = childWindow(self) myDia.insertSuccess.connect(self.deal_insert)
self.deal_insert就是槽函数,用来接受信号ide
def deal_insert(self, name, no): print('name: ', name, 'no: ', no)