摘要:首先,定義自定義信號其中來自于信號會攜帶兩個字符串類型的數據。然后,在子窗口發射這個信號最終,在父窗口槽函數接受這個信號就是槽函數,用來接受信號
工具準備
編輯器: vscode OR Pycharm
vscode需要安裝PYQT Integration 以及 Python 插件, Pycharm需要配置External Toolspycharm配置External Tools
配置Qtdesigner.exe
program選擇Qtdesigner.exe的路徑, Arguments: $FilePath$, work directory: $FileDir$
配置PyUI, 將UI文件轉換成Python文件
program: python, Arguments: -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py, work direactory: $FileDir$布局繪制
沒有布局的控件不會隨著窗口的改變而改變,關于布局,看這個Qt布局博客
第一個控件: tableViewself.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) // 設置列寬自動填充·
關于動態新增行:對model進行操作就行,tableView會感應到數據變化
信號與槽知道vue,react的事件機制會對pyqt的信號與槽機制的理解提供方便。
首先,定義自定義信號
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就是槽函數,用來接受信號
def deal_insert(self, name, no): print("name: ", name, "no: ", no)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104433.html
摘要:首先,定義自定義信號其中來自于信號會攜帶兩個字符串類型的數據。然后,在子窗口發射這個信號最終,在父窗口槽函數接受這個信號就是槽函數,用來接受信號 工具準備 編輯器: vscode OR Pycharm vscode需要安裝PYQT Integration 以及 Python 插件, Pycharm需要配置External Tools pycharm配置External Tools 配置...
摘要:事件目標是事件想作用的目標。處理事件方面有個機制。這個例子中,我們替換了事件處理器函數。代表了事件對象。程序展示信號發送實例能發送事件信號。我們創建了一個叫的信號,這個信號會在鼠標按下的時候觸發,事件與綁定。 事件和信號 事件 signals and slots 被其他人翻譯成信號和槽機制,(⊙o⊙)…我這里還是不翻譯好了。 所有的應用都是事件驅動的。事件大部分都是由用戶的行為產生的,...
摘要:菜單和工具欄這個章節,我們會創建狀態欄菜單和工具欄。是菜單欄工具欄或者快捷鍵的動作的組合。程序預覽工具欄菜單欄包含了所有的命令,工具欄就是常用的命令的集合。把工具欄展示出來。 菜單和工具欄 這個章節,我們會創建狀態欄、菜單和工具欄。菜單是一組位于菜單欄的命令。工具欄是應用的一些常用工具按鈕。狀態欄顯示一些狀態信息,通常在應用的底部。 主窗口 QMainWindow提供了主窗口的功能,使...
閱讀 3233·2021-11-22 12:07
閱讀 1876·2021-10-12 10:11
閱讀 1041·2019-08-30 15:44
閱讀 2935·2019-08-30 12:45
閱讀 2184·2019-08-29 16:41
閱讀 1636·2019-08-29 16:35
閱讀 2620·2019-08-29 12:57
閱讀 1147·2019-08-26 13:51