<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] # 簡介 信號和槽機制是QT的核心機制,它是一種**高級接口**,應用于**對象之間的通信**,他是QT的核心特性 **信號和槽機制** * 信號和槽是用來在對象間傳遞數據的方法:當一個特定事件發生的時候,**signal會被emit出來**,**slot**調用是用來響應相應的signal的 * Qt中對象已經包含了許多預定義的signal(基本組件都有各自特有的預定義的信號),Qt的對象中也已經包含了許多預定義的槽函數 **信號** * 當對象的**狀態**發生改變的時候,信號就由該對象發射(emit)出去 * 當一個信號被發射(emit),與其關聯的**槽函數被立即執行**,發射該信號的對象并不知道是那個對象在接收這個信號.這樣保證了對象與對象之間的低耦合 * 如果信號和**多個槽函數**相關聯,當信號被發射時,這些槽的執行順序將會是**隨機的,不確定的** **槽** * 用于接收信號,而且槽只是**普通的成員函數**.當和槽連接的信號被發射時,槽會被調用 * 一個槽并不知道是否有任何信號與自己相連接 **信號和槽的綁定** * 通過調用QObject對象的**connect**函數來將對象的信號與另外一個對象的槽函數相關聯,當發射者發射信號時,接收者的槽函數將被調用 **信號和槽** * 信號和槽連接通過**connect方法** * 槽函數可以是**成員方法**或者**lambda**表達式 **獲取信號發送者** * 可以通過sender()找到信號的發送者 # 例子 ~~~ from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * import sys # 槽函數 def showMsg(): # 想要知道是那個發送者 sender = widget.sender() print(sender) # 獲取發送者上的文本 print(sender.text()) print('hello') # 修改按鈕文字為發送郵件 sender.setText('發送郵件') # 創建個應用程序 需要加上參數 app = QApplication(sys.argv) # 創建窗口 widget = QWidget() # 修改窗口大小 widget.resize(300, 400) # 設置窗口的標題 widget.setWindowTitle('信號和槽練習') # 創建按鈕 button = QPushButton() # 設置按鈕文字 button.setText('按鈕-調用槽') # 將信號和槽函數關聯 button.clicked.connect(showMsg) # 用lambda # button.clicked.connect(lambda :print('hello')) # 顯示按鈕 button.setParent(widget) # 顯示窗口 widget.show() # 系統安全退出 sys.exit(app.exec()) ~~~ # 槽函數使用系統函數 ~~~ from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * import sys # 定義槽函數 def close(): print('關閉窗口') # 退出程序 app.quit() # 創建個應用程序 需要加上參數 app = QApplication(sys.argv) # 創建窗口 widget = QWidget() # 修改窗口大小 widget.resize(300, 400) # 設置窗口的標題 widget.setWindowTitle('使用Qt槽函數') # 創建個按鈕 button = QPushButton() # 掛到頁面上 button.setParent(widget) # 文本 button.setText('關閉窗口') # 點擊信號 # button.clicked.connect(close) # 這邊的quit不能帶(),帶()就已經執行了,我們要的是等他發送信號才執行 button.clicked.connect(app.quit) # 顯示窗口 widget.show() # 系統安全退出 sys.exit(app.exec()) ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看