栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

嵌入式系统开发笔记74:PyQt中使用进程并传递参数

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

嵌入式系统开发笔记74:PyQt中使用进程并传递参数

文章目录

前言一、概述二、示例

1.创建进程2、进程实现


前言

本文讲述在PyQt中使用进程传递参数的方法。

一、概述

在PyQt中可以在槽中直接创建进程,进程创建后,窗体程序为父进程,创建的进程为子进程。在创建进程时,可以向进程直接传递参数。本文建立一个ftp server进程,并在创建时,向其传递IP地址。

二、示例 1.创建进程

可以使用下列代码创建进程。

		ip = self.GetHostIP()
        self.ShowProgramCommunicationData("本机IP:" + ip)
        self.ShowProgramCommunicationData("父进程:" + str(os.getpid()))
        p = Process(target=RunFTPServer, args = (ip, ))
        self.ShowProgramCommunicationData("ftp server进程已启动...")
        p.start()

程序首先得到了本机的IP地址,然后利用Process函数创建进程,其第1个参数为目标进程,RunFTPServer为进程函数,第2个参数为传递的参数,可带多参,如果只有1个参数,应该参考本程序的写法,后面加逗号。

2、进程实现

以下是进程实现的代码:

def RunFTPServer(ip):
    print('Run child process %s...' % os.getpid())
    # Instantiate a dummy authorizer for managing 'virtual' users
    authorizer = DummyAuthorizer()

    # Define a new user having full r/w permissions and a read-only
    # anonymous user
    #authorizer.add_user('user', '12345', '.', perm='elradfmwMT')
    authorizer.add_anonymous(os.getcwd())

    # Instantiate FTP handler class
    handler = FTPHandler
    handler.authorizer = authorizer

    # Define a customized banner (string returned when client connects)
    handler.banner = "pyftpdlib based ftpd ready."

    # Specify a masquerade address and the range of ports to use for
    # passive connections.  Decomment in case you're behind a NAT.
    #handler.masquerade_address = '151.25.42.11'
    #handler.passive_ports = range(60000, 65535)

    # Instantiate FTP server class and listen on 0.0.0.0:2121
    address = (ip, 21)
    server = FTPServer(address, handler)

    # set a limit for connections
    server.max_cons = 256
    server.max_cons_per_ip = 5

    # start ftp server
    server.serve_forever()

此函数独立于窗体类,函数名与进程调用时的函数名一致,参数ip直接接收即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/734406.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号