pretty_qr_code 3.3.0 copy "pretty_qr_code: ^3.3.0" to clipboard
pretty_qr_code: ^3.3.0 copied to clipboard

Pretty QR code for Flutter. You can round the edges with parameter or use the standard view.

Pretty QR Code #

Pub Likes on Star on Github License: MIT

A highly customizable Flutter widget that makes it easy to render QR codes. Built on top of the qr package.

Features #

  • Live Preview
  • Shapes - The widget provides functionality for rendering various built-in shapes, namely smooth and rounded, or you can even create your patterns using the package API.
  • Themes - Allows you easily switch between themes using the material theme extension.
  • Branding - Configure the display of the embedded image and adjust its style to best fit your needs.
  • Exporting - Save the QR сode as an image for sharing, embedding, or anything else.
  • Customization - Customize the appearance by setting the shape color or filling with a gradient.

If you want to say thank you, star us on GitHub or like us on

Usage #

First, follow the package installation instructions and add a PrettyQrView widget to your app:
  data: 'lorem ipsum dolor sit amet',
  decoration: const PrettyQrDecoration(
    image: PrettyQrDecorationImage(
      image: AssetImage('images/flutter.png'),

If you want to pass non-string data or want to specify a QR version, consider using the default PrettyQrView constructor:

late QrImage qrImage;

void initState() {

  final qrCode = QrCode(
  )..addData('lorem ipsum dolor sit amet');

  qrImage = QrImage(qrCode);

Widget build(BuildContext context) {
  return PrettyQrView(
    qrImage: qrImage,
    decoration: const PrettyQrDecoration(),

Note: Do not create QrImage inside the build method; otherwise, you may have an undesired jank in the UI thread.

Save the symbol as an image #

You can save the QR code as an image using the toImage or toImageAsBytes extension methods that apply to QrImage. Optionally, the configuration parameter may be used to set additional saving options, such as pixel ratio or text direction.

final qrCode = QrCode.fromData(
  data: 'lorem ipsum dolor sit amet',
  errorCorrectLevel: QrErrorCorrectLevel.H,

final qrImage = QrImage(qrCode);
final qrImageBytes = await qrImage.toImageAsBytes(
  size: 512,
  format: ImageByteFormat.png,
  decoration: const PrettyQrDecoration(),

See the example folder for more code samples of the various possibilities.

Contributing #

Contributions are welcomed!

Here is a curated list of how you can help:

  • Fix typos/grammar mistakes
  • Report parts of the documentation that are unclear
  • Report bugs and scenarios that are difficult to implement

Planned for future release(s): #

  • Quiet Zone
  • Gradient filling
  • Add more styles
  • Export as image
  • Error handling API
  • Gaps between modules
  • Background color for QR code
  • Timing Patterns and Alignment Patterns
  • Automatic image scale limitation (embedded mode)
pub points


unverified uploader

Pretty QR code for Flutter. You can round the edges with parameter or use the standard view.

Repository (GitHub)
View/report issues


#qr #pretty-qr #pretty-widgets


API reference


MIT (license)


flutter, meta, qr


Packages that depend on pretty_qr_code