摘要:首先,定義自定義信號其中來自于信號會攜帶兩個字符串類型的數(shù)據(jù)。然后,在子窗口發(fā)射這個信號最終,在父窗口槽函數(shù)接受這個信號就是槽函數(shù),用來接受信號
工具準備
編輯器: 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() // 標準數(shù)據(jù)模型 # 設置數(shù)據(jù)頭欄名稱 self.sm.setHorizontalHeaderItem(0, QtGui.QStandardItem("Name")) self.sm.setHorizontalHeaderItem(1, QtGui.QStandardItem("NO.")) # 設置數(shù)據(jù)條目 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) # 將數(shù)據(jù)模型綁定到QTableView self.tableView.setModel(self.sm) for c in range(self.tableView.horizontalHeader().count()): self.tableView.horizontalHeader().setSectionResizeMode(c) // 設置列寬自動填充·
關于動態(tài)新增行:對model進行操作就行,tableView會感應到數(shù)據(jù)變化
信號與槽知道vue,react的事件機制會對pyqt的信號與槽機制的理解提供方便。
首先,定義自定義信號
insertSuccess = pyqtSignal(str, str)
其中pyqtSignal來自于from PyQt5.QtCore import pyqtSignal, insertSuccess信號會攜帶兩個字符串類型的數(shù)據(jù)。
然后,在子窗口發(fā)射這個信號
self.name = self.lineEdit.text() self.no = self.lineEdit_2.text() self.hide() self.insertSuccess.emit(self.name, self.no)
最終,在父窗口槽函數(shù)接受這個信號
myDia = childWindow(self) myDia.insertSuccess.connect(self.deal_insert)
self.deal_insert就是槽函數(shù),用來接受信號
def deal_insert(self, name, no): print("name: ", name, "no: ", no)
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.hztianpu.com/yun/104433.html
摘要:首先,定義自定義信號其中來自于信號會攜帶兩個字符串類型的數(shù)據(jù)。然后,在子窗口發(fā)射這個信號最終,在父窗口槽函數(shù)接受這個信號就是槽函數(shù),用來接受信號 工具準備 編輯器: vscode OR Pycharm vscode需要安裝PYQT Integration 以及 Python 插件, Pycharm需要配置External Tools pycharm配置External Tools 配置...
摘要:事件目標是事件想作用的目標。處理事件方面有個機制。這個例子中,我們替換了事件處理器函數(shù)。代表了事件對象。程序展示信號發(fā)送實例能發(fā)送事件信號。我們創(chuàng)建了一個叫的信號,這個信號會在鼠標按下的時候觸發(fā),事件與綁定。 事件和信號 事件 signals and slots 被其他人翻譯成信號和槽機制,(⊙o⊙)…我這里還是不翻譯好了。 所有的應用都是事件驅動的。事件大部分都是由用戶的行為產(chǎn)生的,...
摘要:菜單和工具欄這個章節(jié),我們會創(chuàng)建狀態(tài)欄菜單和工具欄。是菜單欄工具欄或者快捷鍵的動作的組合。程序預覽工具欄菜單欄包含了所有的命令,工具欄就是常用的命令的集合。把工具欄展示出來。 菜單和工具欄 這個章節(jié),我們會創(chuàng)建狀態(tài)欄、菜單和工具欄。菜單是一組位于菜單欄的命令。工具欄是應用的一些常用工具按鈕。狀態(tài)欄顯示一些狀態(tài)信息,通常在應用的底部。 主窗口 QMainWindow提供了主窗口的功能,使...
閱讀 3303·2021-11-22 12:07
閱讀 1969·2021-10-12 10:11
閱讀 1098·2019-08-30 15:44
閱讀 3003·2019-08-30 12:45
閱讀 2301·2019-08-29 16:41
閱讀 1688·2019-08-29 16:35
閱讀 2718·2019-08-29 12:57
閱讀 1213·2019-08-26 13:51