pyqt5如何调用python文件在原窗口
时间: 2023-08-11 22:20:38 浏览: 105
python Qt5GUI界面主窗口和子窗口相互传值,保证能用
你可以使用QProcess类来在PyQt5中调用Python脚本并在原窗口中显示输出结果。以下是一个简单的例子:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QAction, QFileDialog, QHBoxLayout, QWidget
from PyQt5.QtCore import QProcess
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.textEdit = QTextEdit()
self.setCentralWidget(self.textEdit)
runAction = QAction('Run Script', self)
runAction.triggered.connect(self.runScript)
fileMenu = self.menuBar().addMenu('File')
fileMenu.addAction(runAction)
self.setGeometry(300, 300, 500, 400)
self.setWindowTitle('PyQt5 Run Python Script')
def runScript(self):
# 打开文件对话框选择Python脚本文件
fileName, _ = QFileDialog.getOpenFileName(self, "Select Python Script", "", "Python Files (*.py)")
if fileName:
# 创建QProcess对象并设置工作目录和命令
process = QProcess(self)
process.setWorkingDirectory('.')
process.start('python', [fileName])
# 读取进程的输出并在文本编辑器中显示
while process.waitForReadyRead():
output = process.readAll()
self.textEdit.insertPlainText(str(output, 'utf-8'))
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
```
这个例子创建一个带有文本编辑器的主窗口,同时提供了一个菜单选项“Run Script”来运行Python脚本。当用户点击该选项时,会打开一个文件对话框以选择Python脚本文件,并将其作为参数传递给QProcess对象的start()方法。然后,它将读取进程的输出,并将其插入到文本编辑器中以在原窗口中显示输出结果。
阅读全文