Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为Python脚本创建GUI_Python_User Interface - Fatal编程技术网

为Python脚本创建GUI

为Python脚本创建GUI,python,user-interface,Python,User Interface,我使用python脚本record.py来记录某些事件 命令的工作方式如下: python record.py <scriptname> 所有这些操作(如上所述工作正常),但都是通过命令行(linux终端)完成的 我想制作一个包含两个选项卡(录制、播放)的GUI: 记录选项卡:有一个文本框(用于)和一个名为Record的按钮(与Record.py脚本链接) 播放选项卡:具有一项功能,可包含录制的所有脚本,并通过名为“播放”的按钮运行单个脚本或整个脚本组 可能会有帮助。丹尼尔 我也推

我使用python脚本record.py来记录某些事件

命令的工作方式如下:

python record.py <scriptname>
所有这些操作(如上所述工作正常),但都是通过命令行(linux终端)完成的

我想制作一个包含两个选项卡(录制、播放)的GUI:

  • 记录选项卡:有一个文本框(用于
    )和一个名为Record的按钮(与
    Record.py
    脚本链接)

  • 播放选项卡:具有一项功能,可包含录制的所有脚本,并通过名为“播放”的按钮运行单个脚本或整个脚本组

  • 可能会有帮助。

    丹尼尔

    我也推荐wxPython

    如果您决定使用wxPython,这里将概括介绍如何使选项卡工作。它需要您填写一些空白,但一旦您掌握了wxPython的基本知识,这将向您展示如何构建带有选项卡的“笔记本”

    您基本上要做的是拥有一个主脚本(其概要在代码示例中表示如下),然后将每个面板表示为一个单独的文件(在本例中有:panel1.py、panel2.py、panel3.py等)。主脚本将通过wxPython运行各个面板

    处理整个窗口的主脚本如下所示:

    from wxPython.wx import *
    
    class MainFrame(wxFrame):
            .
            .
            .
    
            def __init__(self, parent, id, title):
                    .
                    .
                    .
    
                    # Create the Notebook
                    self.nb = wxNotebook(self, -1, wxPoint(0,0), wxSize(0,0), wxNB_FIXEDWIDTH)
    
                    # Make PANEL_1 (filename: panel1.py)
    
                    self.module = __import__("panel1", globals())
                    self.window = self.module.runPanel(self, self.nb)
    
                    if self.window:
                            self.nb.AddPage(self.window, "PANEL_1")
    
    
                    # Make PANEL_2 (filename: panel2.py)
    
                    self.module = __import__("panel2", globals())
                    self.window = self.module.runPanel(self, self.nb)
    
                    if self.window:
                            self.nb.AddPage(self.window, "PANEL_2")
    
    
                    # Make PANEL_3 (filename: panel3.py)
    
                    self.module = __import__("panel3", globals())
                    self.window = self.module.runPanel(self, self.nb)
    
                    if self.window:
                            self.nb.AddPage(self.window, "PANEL_3")
    
                    .
                    .
                    .
    

    但我必须强调。。。。不要马上尝试这些标签,首先要掌握wxPython的工作原理。

    您到底需要什么帮助?构建GUI?决定使用哪种类型的GUI框架?在您已经构建的GUI中连接事件?Daniel,我需要帮助来制作GUI并使用它连接事件。我对python GUI开发一无所知。
    from wxPython.wx import *
    
    class MainFrame(wxFrame):
            .
            .
            .
    
            def __init__(self, parent, id, title):
                    .
                    .
                    .
    
                    # Create the Notebook
                    self.nb = wxNotebook(self, -1, wxPoint(0,0), wxSize(0,0), wxNB_FIXEDWIDTH)
    
                    # Make PANEL_1 (filename: panel1.py)
    
                    self.module = __import__("panel1", globals())
                    self.window = self.module.runPanel(self, self.nb)
    
                    if self.window:
                            self.nb.AddPage(self.window, "PANEL_1")
    
    
                    # Make PANEL_2 (filename: panel2.py)
    
                    self.module = __import__("panel2", globals())
                    self.window = self.module.runPanel(self, self.nb)
    
                    if self.window:
                            self.nb.AddPage(self.window, "PANEL_2")
    
    
                    # Make PANEL_3 (filename: panel3.py)
    
                    self.module = __import__("panel3", globals())
                    self.window = self.module.runPanel(self, self.nb)
    
                    if self.window:
                            self.nb.AddPage(self.window, "PANEL_3")
    
                    .
                    .
                    .