美文网首页
PyQt5的槽函数编写

PyQt5的槽函数编写

作者: 叮当说 | 来源:发表于2019-08-25 20:41 被阅读0次

最近接触到python的GUI界面开发所以就涉及到了信号与槽的机制

但是由于我是用的编辑器是Pycharm所以,QTdesigner、UIC编译器都可以很容易的通过external tool来轻松连接,唯独erci这个工具我没有下载,因为我没有发现这个库,貌似是款软件。所以我干脆直接手写槽函数。

其实,最初感觉写槽函数真的很难,不过慢慢来发现也没有太难啦!

这里也顺便说一些QTdesigner、以及UIC工具的使用

python要想进行GUI界面的开发必须先安装两个必要的库PyQt5、pyqt5-tools

安装的方法可以直接使用命令行窗口,用pip命令进行安装:

其实python3.0以上安装所有的库都可以使用pip进行安装,类似:

pip install PyQt5

pip install pyqt5-tools

安装好两个库以后可以直接使用QTdesigner了,不过如果读者的编辑器是pycharm时,还可以使用扩展工具进行简化工作:这里不介绍原理:

在设定中找到扩展工具,然后添加工具:

1.QT_designer

程序路径:是在你电脑上的designer存放的位置

我的路径为:C:\Users\账户\AppData\Roaming\Python\Python37\site-packages\pyqt5_tools\Qt\bin\designer.exe

生成文件的存放路径:$ProjectFileDir$

代表当前的项目文件存在路径,该生成的文件为.ui文件

2.PY_UIC

该工具其实就是一行python的命令,不过为了简便,将他合成为工具

Name:自己可以随意指定

Desciption:自己描述

Program:为Python窗口程序的位置

本机路径:D:\Programs\Python\Python37-32\pythonw.exe

Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py

该行语句大家都一样!

Working directory :$FileDir$

表示与ui文件在一个路径。

这两个工具配置好了以后就可以编写界面了!

我们使用QTdesigner工具随意生成一个文件,名字默认为untitled

本机将其存放在,project下的designer文件夹下了

然后使用UIC扩展工具即可将其编译成py的文件。

注意:最好是将designer路径添加到resource

方法是选中文件夹,单击右键然后make directory as ,然后添加到路径

这一切都搞定之后,我们需要妥善将该页面调用,并生成程序。

代码如下:

import sys

import pyqt5_tools

# 导入UI文件的元件

import untitled

from PyQt5.QtWidgetsimport QMainWindow, QApplication, QDesktopWidget

from PyQt5.QtGuiimport QIcon

from PyQt5.QtCoreimport pyqtSlot

class MainWindows(QMainWindow, untitled.Ui_MainWindow):

    def __init__(self, parent=None):

        QMainWindow.__init__(self, parent)

        self.setupUi(self)

    # 创建槽函数 槽函数直接使用元件的名称即可

    @pyqtSlot()

    def on_pushButton_clicked(self):

        print('1按钮被按下')

# 调用该函数

if __name__== '__main__':

    app= QApplication(sys.argv)

    # 设置app的图标

    app.setWindowIcon(QIcon('./Icon/1.jpg'))

    main= MainWindows()

    main.show()

    sys.exit(app.exec_())

本文主要内容:

可以看见上面有一个位置为槽函数:

    @pyqtSlot()

    def on_pushButton_clicked(self):

        print('1按钮被按下')

其中  @pyqtSlot() 为修饰器,为了区分不同触发的名字

修饰器可以不使用,一样可以识别,但是如果用户一旦使用请务必与触发的机制一一对应,如在传入值为int时,必须将修饰器写为如下:

@pyqtSlot("int")

否则不会有触发。

那么如何查看每个触发信号是否带有参数呢?

请在QTdesigner中,F4,信号与槽模式下进行查看

同样,修饰器可以不使用,如果不使用,就没有那么多的麻烦事情了,下面说槽函数的第一句:

def on_pushButton_clicked(self):

在上面的语句中on_ttt_xx(self)

ttt为元件的名称

xxx为元件的信号

其余的都是固定的,就这么简单,不过这么简单的机制也是PyQt的核心内容哦,一旦掌握了核心内容后期的重点,就在于程序编写了。


相关文章

  • PyQt5的槽函数编写

    最近接触到python的GUI界面开发所以就涉及到了信号与槽的机制 但是由于我是用的编辑器是Pycharm所以,Q...

  • 2018-02-27:自定义PyQt5的槽函数

    目标:通过Python调用PyQt5的相关库函数,实现自定义槽函数并调用 运行结果为:

  • PyQt5 信号与槽

    PyQt5:PyQt5 信号与槽(PyQt5的事件处理机制) - 老π - 博客园 (cnblogs.com)[h...

  • 下载安装发布PyQt5程序

    下载安装发布PyQt5程序 安装PyQt5pip isntall pyqt5 编写demo 用pyinstalle...

  • PyQt5初体验和Pycharm的相关配置

    欢迎初体验Pyqt5 大家好,最近一直都在用pyqt5编写客户端,为什么选择pyqt5尼,因为pyqt5是由pyt...

  • 2019-02-18 信号和信号槽

    PyQt5:PyQt5 信号与槽(PyQt5的事件处理机制) 一、事件 在事件模型,有三个参与者:事件源、事件目标...

  • C笔试题

    mvcmodelviewcontorller工厂模式观察者模式代理模式 信号与槽第一种:自己编写槽函数使用conn...

  • python匿名函数 循环定义函数 lamdba

    触发函数def buttonClicked(index):print(index) 遍历PyQT5按钮绑定到函数f...

  • day8-作业

    编写⼀个函数,求1+2+3+...+N程序: 结果: 编写⼀个函数,求多个数中的最⼤值程序: 结果: 编写⼀个函数...

  • C++作业-导数

    一元连续函数求导。1)编写一个函数用于计算2)编写一个函数用于计算3)编写一个函数用于计算;(提示:使用exp函数...

网友评论

      本文标题:PyQt5的槽函数编写

      本文链接:https://www.haomeiwen.com/subject/aeykectx.html