Skip to content

Instantly share code, notes, and snippets.

@HeroDjou
Last active December 28, 2023 03:04
Show Gist options
  • Save HeroDjou/a246d0c2a19bb688de79bcb1fa5ce257 to your computer and use it in GitHub Desktop.
Save HeroDjou/a246d0c2a19bb688de79bcb1fa5ce257 to your computer and use it in GitHub Desktop.
Flutter Python Integration

Instruções

  1. Crie um Projeto em Flutter:

    Abra o terminal e execute o seguinte comando para criar um novo projeto Flutter:

    flutter create nome_do_projeto

  2. Adicione o Código Python:

    Crie um arquivo chamado script.py e adicione-o à pasta lib do seu projeto Flutter. Certifique-se de que a estrutura do projeto fique assim:

    nome_do_projeto/
       ├── android/
       ├── ios/
       ├── lib/
       │   ├── main.dart
       │   └── script.py
       └── ...
  1. Substitua o Código main.dart:

    Substitua o conteúdo do arquivo main.dart pelo código Flutter fornecido no tutorial.

  2. Execute a Aplicação Flutter:

    No terminal, execute o seguinte comando para iniciar a aplicação Flutter:

    flutter run

Resultado Final

Ao executar a aplicação, você terá uma tela com campos de entrada para valores numéricos. Ao informar os valores e pressionar o botão "Executar Python", o script Python será acionado. Caso haja algum erro ou valor inválido, a interface mostrará uma mensagem apropriada.

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,
),
],
),
),
);
}
}
import sys
# Recebendo os parâmetros
param1 = float(sys.argv[1])
param2 = float(sys.argv[2])
# Realizando a soma
soma = param1 + param2
# Retornando o valor da soma
print(soma)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment