Skip to main content

A library and terminal wrapper around qrenco.de.

Project description

textual-qrcode

Introduction

While, I admit, likely of little utility really, this library aims to show one possible way of writing and "shipping" a custom widget for Textual. Key here is that the library contains and provides a custom widget which can be imported and used in an application; but it also provides a simple application that can be run to see the widget in action.

Please note!

This library is just a thin wrapper around https://qrenco.de/. Each time you create a QR code the content you encode is sent to that website. It also means, of course, that this is only usable with a working net connection. Please keep these things in mind if you do decide to actually use this for something.

Installing

The library itself can be installed with pip:

$ pip install textual-qrcode

or with your Python environment manager of choice.

Running the test application

The demo/test application can be run like this:

$ python -m textual_qrcode

When you've finished testing, press Ctrl+C to quit.

Using the widget

To make use of the QRCode widget, import it into your code:

from textual_qrcode import QRCode

The widget itself takes all of the arguments that a normal Textual Widget takes, but has the addition of an initial positional argument which is some text to encode. An example use of it could look like:

    def compose( self ) -> ComposeResult:
        yield Header()
        yield QRCode( "https://textual.textualize.io/" )
        yield Footer()

The widget also has a encode method, that lets you update the QR code to display something else. For example:

self.query_one( QRCode ).encode( "Now I've changed it to this" )

The widget will send out one of two messages when an attempt is made to encode some content. If the content was encoded fine a QRCode.Encoded message is sent out, which can be caught like this:

def on_qrcode_encoded( self, event: QRCode.Encoded ) -> None:
    # Do something now that the QR code was updated fine.

If there is an error encoding the content QRCode.Error will be sent out. this can be used like this:

def on_qrcode_error( self, event: QRCode.Error ) -> None:
    # Do something about the error.

In both cases the event sent out has a qr_code property which is the QRCode widget involved.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release. See tutorial on generating distribution archives.

Built Distribution

textual_qrcode-0.2.0-py3-none-any.whl (6.2 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page