为Python脚本创建GUI

2 投票
2 回答
13274 浏览
提问于 2025-04-16 16:36

我用一个叫做record.py的Python脚本来记录一些特定的事件。

这个命令的工作方式是:

python record.py <scriptname>

它会把脚本保存在本地磁盘上。之后,你可以通过简单地输入以下命令来重放录制的脚本:

python scriptname.py

以上所有这些操作(描述的内容都能正常工作)都是通过命令行(Linux终端)完成的。

我想做一个图形界面(GUI),里面有两个标签页(录制和播放):

  1. 录制标签:里面有一个文本框(用于输入<scriptname>)和一个叫做“录制”的按钮(这个按钮连接到record.py脚本)

  2. 播放标签:有一个功能可以显示所有已录制的脚本,还有一个叫做“播放”的按钮,可以用来运行单个脚本或一组脚本。

2 个回答

3

你可以看看这个网站 http://www.wxpython.org/,可能会对你有帮助。

4

丹尼尔,

我也建议你使用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的工作原理。

撰写回答