Python-Pyqt5按钮连接槽函数方法记录

1、首先运用Qt Designer工具,设计出一个简单的UI界面:
实例UI文件:test_button.ui 文件

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>384</width>
    <height>350</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <layout class="QGridLayout" name="gridLayout">
    <item row="2" column="0">
     <widget class="QTextBrowser" name="textBrowser"/>
    </item>
    <item row="0" column="0">
     <widget class="QPushButton" name="pushButton1">
      <property name="text">
       <string>测试按钮-1</string>
      </property>
     </widget>
    </item>
    <item row="1" column="0">
     <widget class="QPushButton" name="pushButton2">
      <property name="text">
       <string>测试按钮-2</string>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>384</width>
     <height>26</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <resources/>
 <connections/>
</ui>

2、利用Pyuic,将ui文件转化为py文件。(如果不会,建议先在Pycharm中安装相关工具,CSDN搜索关于【PyCharm安装PyQt5及其工具】的 资料即可)
test_button.py 文件

# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'test_button.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(384, 350)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName("gridLayout")
        self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
        self.textBrowser.setObjectName("textBrowser")
        self.gridLayout.addWidget(self.textBrowser, 2, 0, 1, 1)
        self.pushButton1 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton1.setObjectName("pushButton1")
        self.gridLayout.addWidget(self.pushButton1, 0, 0, 1, 1)
        self.pushButton2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton2.setObjectName("pushButton2")
        self.gridLayout.addWidget(self.pushButton2, 1, 0, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 384, 26))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton1.setText(_translate("MainWindow", "测试按钮-1"))
        self.pushButton2.setText(_translate("MainWindow", "测试按钮-2"))

3、编写主程序,显示界面,点击功能按钮,界面打印相关信息:
test_main.py 文件

from  test_button import Ui_MainWindow
import sys
from PyQt5.QtGui import QIcon  # 用于添加图标
from PyQt5.QtWidgets import QWidget,QMainWindow,QApplication
from PyQt5.QtCore import pyqtSlot

class Test_window(QMainWindow,Ui_MainWindow):  # 继承至界面文件的主窗口类
    
    def __init__(self):
        super().__init__()  # 使用超类,继承父类的属性及方法
        self.setupUi(self)  # 构造窗体界面
        self.setWindowIcon(QIcon("./img/result.png"))
        self.setWindowTitle("Test_button")  # 设置窗体主体
        self.initUI()  # 构造功能函数
    
    def initUI(self):
        #此处添加功能连接函数
        self.pushButton1.clicked.connect(self.bofang_video)  #自定义按钮连接自定义槽函数
        # self.pushButton1.pressed.connect()   #不同的按钮点击方式
        # self.pushButton1.released.connect()
    
    @pyqtSlot()
    def on_pushButton2_clicked(self): #利用QT自带槽函数直接连接按钮
        self.textBrowser.append("点击按钮2!")
        self.textBrowser.append("<font color=\"#00FF00\">点击按钮2!</font> ") #设置字体颜色
        self.textBrowser.append("======================")
        
    def bofang_video(self):
        print("123")
        self.textBrowser.append("点击按钮1!")
        self.textBrowser.append("<font color=\"#FF0000\">点击按钮1!</font> ") #设置字体颜色
        self.textBrowser.append("======================")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    ui2 = Test_window()
    ui2.show()
    sys.exit(app.exec_())

界面展示:
点击测试按钮1,打印对应消息,点击测试按钮2,打印对应消息。
在这里插入图片描述

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山中坐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值