Создание графического интерфейса для скриптов Python - PullRequest
2 голосов
/ 28 апреля 2011

Я использую скрипт python record.py для записи определенных событий.

Команда работает следующим образом:

python record.py <scriptname>

Сохраняет скрипт на локальном диске.Позже вы можете воспроизвести записанный сценарий, просто сказав:

python scriptname.py

Все эти действия (описанные выше работают правильно), но выполняются через командную строку (терминал Linux).

Я хочу сделатьGUI с двумя вкладками (Запись, Воспроизведение):

  1. Вкладка записи : имеет текстовое поле (для <scriptname>) и кнопкуименованная запись (которая связана со сценарием record.py)

  2. Вкладка Play : имеет функцию включения всех записанных сценариев и кнопку Play для запускалибо один сценарий, либо целый набор сценариев.

Ответы [ 2 ]

4 голосов
/ 28 апреля 2011

Daniel

Я предлагаю также 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 работает в первую очередь.

3 голосов
/ 28 апреля 2011

http://www.wxpython.org/ может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...