|
import 'package:flutter/material.dart'; |
|
import 'dart:io'; |
|
|
|
void main() { |
|
runApp(MyApp()); |
|
} |
|
|
|
class MyApp extends StatelessWidget { |
|
@override |
|
Widget build(BuildContext context) { |
|
return MaterialApp( |
|
title: 'Flutter Python Integration', |
|
theme: ThemeData( |
|
primarySwatch: Colors.blue, |
|
), |
|
home: MyHomePage(), |
|
); |
|
} |
|
} |
|
|
|
class MyHomePage extends StatefulWidget { |
|
@override |
|
_MyHomePageState createState() => _MyHomePageState(); |
|
} |
|
|
|
class _MyHomePageState extends State<MyHomePage> { |
|
final TextEditingController input1Controller = TextEditingController(); |
|
final TextEditingController input2Controller = TextEditingController(); |
|
final TextEditingController resultController = TextEditingController(); |
|
|
|
Future<void> _executePythonScript() async { |
|
var pythonInterpreter = 'python'; // ou caminho para o interpretador do Python |
|
var pythonScript = 'lib/script.py'; // caminho para o seu script Python |
|
|
|
var process = await Process.run(pythonInterpreter, |
|
[pythonScript, input1Controller.text, input2Controller.text]); |
|
|
|
if (process.exitCode == 0) { |
|
setState(() { |
|
resultController.text = process.stdout.toString(); |
|
}); |
|
} else { |
|
setState(() { |
|
resultController.text = 'Erro ao executar o código Python.'; |
|
}); |
|
} |
|
} |
|
|
|
@override |
|
Widget build(BuildContext context) { |
|
return Scaffold( |
|
appBar: AppBar( |
|
title: Text('Flutter Python Integration'), |
|
), |
|
body: Padding( |
|
padding: EdgeInsets.all(16.0), |
|
child: Column( |
|
mainAxisAlignment: MainAxisAlignment.center, |
|
crossAxisAlignment: CrossAxisAlignment.stretch, |
|
children: <Widget>[ |
|
TextField( |
|
controller: input1Controller, |
|
decoration: InputDecoration(labelText: 'Input 1'), |
|
), |
|
SizedBox(height: 16.0), |
|
TextField( |
|
controller: input2Controller, |
|
decoration: InputDecoration(labelText: 'Input 2'), |
|
), |
|
SizedBox(height: 16.0), |
|
ElevatedButton( |
|
onPressed: () { |
|
_executePythonScript(); |
|
}, |
|
child: Text('Executar Python'), |
|
), |
|
SizedBox(height: 16.0), |
|
TextField( |
|
controller: resultController, |
|
decoration: InputDecoration(labelText: 'Resultado'), |
|
readOnly: true, |
|
), |
|
], |
|
), |
|
), |
|
); |
|
} |
|
} |