編輯器: 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)