【问题标题】:Multiple window program pyqt5 and python多窗口程序pyqt5和python
【发布时间】:2017-12-21 15:53:29
【问题描述】:

我是新来的,但我一直在寻找一些答案,我无法解决我的问题,所以希望你能帮助我。

我正在创建一个 python 程序来与 ABB 机器人交互。该程序由多个文件组成,每个文件包含一个窗口,用于向/从机器人发送或接收数据。

为了与机器人通信,我创建了一个套接字连接,程序是服务器,机器人是客户端。 程序的第一个窗口创建套接字,当第二个窗口尝试向机器人发送信息时出现问题,因为客户端套接字名称/地址在另一个文件上。

我尝试创建全局变量,但无法正常工作。我还尝试在文件中写入我想要的变量然后读取它,这会传输变量但我无法发送到机器人,因为它是 str 类型并且我需要套接字对象。

知道如何将客户端对象从一个文件传输到另一个文件吗?

欢迎提出任何建议。

谢谢

【问题讨论】:

标签: python sockets global-variables pyqt5 serversocket


【解决方案1】:

这可以通过使主窗口成为任何辅助窗口的父窗口并使其从主窗口打开并在创建辅助窗口时传递给辅助窗口的套接字变量来完成。例如:

class MainWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        self.socket = socket_information  # Set the socket connection up here

    def open_window_two(self):
        dialog = WindowTwoClass(self.socket)
        dialog.exec_()

这里的 WindowTwoClass 是另一个文件中的辅助窗口的类。此辅助窗口不能是 QMainWindow 子类,因此根据您想要的功能,它将是 QWidget 或 QDialog 子类。

class WindowTwoClass(QWidget):
    def __init__(self, socket):
        QWidget.__init__(self)
        self.socket = socket

【讨论】:

    猜你喜欢
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多