Giter Club home page Giter Club logo

Comments (3)

falkoschindler avatar falkoschindler commented on May 13, 2024 1

Are you looking for something like this?

#!/usr/bin/env python3
import webbrowser
import click
from nicegui import ui

@click.command()
@click.option('--name', prompt='Your name', help='The person to greet.')
def hello(name):
    click.echo(f'Hello {name}!')
    ui.label(f'Hello {name}!')
    webbrowser.open('http://0.0.0.0:8080/')

ui.on_startup(lambda: hello(standalone_mode=False))

ui.run(reload=False, show=False)

NiceGUI needs to start its server via ui.run, which blocks throughout the whole lifetime of the application. But on_startup you can start a click command with standalone_mode=False. In order to hide the website until the name is entered, I'd start NiceGUI with show=False and open the browser with webbrowser.open explicitly.

(The current implementation of NiceGUI's "interactive mode" is a bit confusing and - I think - broken. So you basically always need a ui.run.)

from nicegui.

dentad avatar dentad commented on May 13, 2024

This is my current code

@click.command()
def window():
    """Window to the Kube"""

    ui.checkbox("Hello, world!")

    ui.run(host="127.0.0.1", port=8079, title="Kora")  #, exclude="customexample,highcharts,interactiveimage,keyboard,matplotlib,nipple,three")

which gives me this output with nicegui 0.8.7

❯ mytool window
Could not find and pre-evaluate ui.run(). Starting interactive mode without auto-reload.
Error: Unexpected ui.run() in interactive mode.

from nicegui.

falkoschindler avatar falkoschindler commented on May 13, 2024

ui.run() needs to move out of hello(). That means the uvicorn-Server starts at the end of the main script, not as part of the click command.

from nicegui.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.