#main.dart Generates QR Code for given data import 'package:flutter/material.dart'; import 'package:qr_code_scanner_generator/generate_qr_code.dart'; import 'package:qr_code_scanner_generator/scan_qr_code.dart';
void main() { runApp(const MyApp()); }
class MyApp extends StatelessWidget { const MyApp({super.key});
// This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'QR Code Scanner and Generator', debugShowCheckedModeBanner: false,
home: HomePage(),
);
} } class HomePage extends StatefulWidget { const HomePage({super.key});
@override State createState() => _HomePageState(); }
class _HomePageState extends State { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text("QR Code Scanner and Generator"), backgroundColor: Colors.amber,), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ ElevatedButton(onPressed: (){ setState(() { Navigator.of(context).push(MaterialPageRoute(builder: (context)=> ScanQrCode())); }); }, child: Text('Scan QR Code')), SizedBox(height: 40,), ElevatedButton(onPressed:(){ setState(() { Navigator.of(context).push(MaterialPageRoute(builder: (context)=>GenerateQrCode())); }); } , child: Text('Generate QR Code')) ], ), ), ); } } #generate_qr_code import 'package:flutter/material.dart'; import 'package:qr_flutter/qr_flutter.dart'; class GenerateQrCode extends StatefulWidget { const GenerateQrCode({super.key});
@override State createState() => _GenerateQrCodeState(); }
class _GenerateQrCodeState extends State { TextEditingController urlController = TextEditingController(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text('Generate QR Code'),), body: Center( child: SingleChildScrollView( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ if (urlController.text.isNotEmpty) QrImageView(data: urlController.text, size: 200,), SizedBox(height: 10,), Container( padding: EdgeInsets.only(left: 10, right: 10), child: TextField( controller: urlController, decoration: InputDecoration( hintText: 'Enter your data', border: OutlineInputBorder(borderRadius: BorderRadius.circular(15)), labelText: 'Enter your data' ), ), ), SizedBox(height: 10,), ElevatedButton(onPressed: (){ setState(() {
});
}, child: Text('Generate QR Code'))
],
),
),
),
);
} } #qr_code_scanner import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_barcode_scanner/flutter_barcode_scanner.dart'; class ScanQrCode extends StatefulWidget { const ScanQrCode({super.key});
@override State createState() => _ScanQrCodeState(); }
class _ScanQrCodeState extends State { String qrResult = 'Scanned data will appear here'; Future scanQR()async{ try{ final qrCode = await FlutterBarcodeScanner.scanBarcode('#ff6666', 'Cancel', true, ScanMode.QR); if(!mounted)return; setState(() { this.qrResult = qrCode.toString(); });
}on PlatformException{
qrResult = 'Faled to read QR Code';
}
} @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text('QR Code Scanner'),), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ SizedBox(height: 30,), Text(qrResult,style: TextStyle(color: Colors.black),), SizedBox(height: 30,), ElevatedButton(onPressed: scanQR, child: Text('Scan Code')) ], ), ),
);
} }