Как написать программу на Python с использованием библиотеки PyQt5, которая позволяет запускать другие .py файлы?

Как создать программу на языке Python с использованием библиотеки PyQt5, где по нажатию на каждую из 5 кнопок будет запускаться определенный .py файл из конкретной директории?
  • 4 марта 2024 г. 8:58
Ответы на вопрос 2
Для создания программы на Python с использованием библиотеки PyQt5, которая позволяет запускать другие .py файлы, можно воспользоваться следующим кодом:

```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QPushButton
import subprocess

class Main(QMainWindow):
    def __init__(self):
        super().__init__()
        
        self.setWindowTitle("Запуск .py файлов")
        layout = QVBoxLayout()
        
        button = QPushButton("Запустить файл1.py", self)
        button.clicked.connect(self.run_file1)
        layout.addWidget(button)
        
        self.setLayout(layout)
    
    def run_file1(self):
        subprocess.Popen(["python", "file1.py"])

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Main()
    window.show()
    sys.exit(app.exec_())
```

В этом примере создается главное окно, содержащее одну кнопку. При нажатии на эту кнопку будет запускаться файл file1.py с помощью subprocess.Popen(). 

Чтобы добавить функциональность с несколькими кнопками, каждая из которых запускает свой .py файл из конкретной директории, следует модифицировать код следующим образом:

```python
def run_file1(self):
        subprocess.Popen(["python", "path_to_directory/file1.py"])
        
def run_file2(self):
        subprocess.Popen(["python", "path_to_directory/file2.py"])

# Добавьте аналогичные методы для других файлов
```

Где path_to_directory - это путь к директории, где находится файл, который нужно запустить. Таким образом, при нажатии на каждую кнопку будет запускаться соответствующий .py файл.
Если проблема действительно не решается импортом необходимых модулей в единую программу, то скрипты можно запускать с помощью os.system или os.startfile, гугл и документация подскажут как именно.
Похожие вопросы