Comments (2)
The way I would recommend doing this is to create a component out of menu
that you could reuse.
First run this program (add the definition of menu to it):
import justpy as jp
c = jp.parse_html(menu)
for i in c.commands:
print(i)
The output looks like this:
root = jp.Div()
c1 = jp.QToolbar(classes='bg-grey-3', a=root)
c2 = jp.QBtn(flat=True, round=True, dense=True, a=c1)
c3 = jp.QIcon(name='menu', a=c2)
c4 = jp.QMenu(a=c2)
c5 = jp.QList(style='min-width: 100px', a=c4)
c6 = jp.QItem(clickable=True, v_close_popup=True, a=c5)
c7 = jp.QItemSection(a=c6)
c8 = jp.A(href='/about', style='text-decoration: none', a=c7, text='about')
c9 = jp.QSeparator(a=c5)
c10 = jp.QItem(clickable=True, v_close_popup=True, a=c5)
c11 = jp.QItemSection(a=c10)
c12 = jp.A(href='/tool', style='text-decoration: none', a=c11, text='help')
c13 = jp.QToolbarTitle(a=c1, text='Toolbar')
c14 = jp.QBtn(flat=True, round=True, dense=True, a=c1)
c15 = jp.QIcon(name='more_vert', a=c14)
We use these commands to create the component. Your program would now look like this:
import justpy as jp
class MyToolbar(jp.QToolBar):
def __init__(self, **kwargs):
super().__init__(**kwargs)
c1 = self
c1.classes = 'bg-grey-3'
c2 = jp.QBtn(flat=True, round=True, dense=True, a=c1)
c3 = jp.QIcon(name='menu', a=c2)
c4 = jp.QMenu(a=c2)
c5 = jp.QList(style='min-width: 100px', a=c4)
c6 = jp.QItem(clickable=True, v_close_popup=True, a=c5)
c7 = jp.QItemSection(a=c6)
c8 = jp.A(href='/about', style='text-decoration: none', a=c7, text='about')
c9 = jp.QSeparator(a=c5)
c10 = jp.QItem(clickable=True, v_close_popup=True, a=c5)
c11 = jp.QItemSection(a=c10)
c12 = jp.A(href='/tool', style='text-decoration: none', a=c11, text='help')
c13 = jp.QToolBarTitle(a=c1, text='Toolbar')
c14 = jp.QBtn(flat=True, round=True, dense=True, a=c1)
c15 = jp.QIcon(name='more_vert', a=c14)
@jp.SetRoute('/')
def index():
wp = jp.QuasarPage()
wp.tailwind = True
wp.add(MyToolbar())
wp.add(jp.P(text='Index page', classes='text-5xl m-2'))
return wp
@jp.SetRoute('/about')
def about():
wp = jp.QuasarPage()
wp.tailwind = True
wp.add(MyToolbar())
wp.add(jp.P(text='Hello there!', classes='text-5xl m-2'))
return wp
jp.justpy()
Now, in this project or any other you can reuse the MyToolbar component
Note: The tailwind classes do not work on Quasar pages unless you set the tailwind
attribute of the page to True
(Quasar has its own set of classes).
Let me know if you have additional questions.
IMPORTANT : In version 0.0.6 coming out next week, QToolBar will change to QToolbar and QToolBarTitle will change to QToolbarTitle to be compatible with Quasar naming (There is a typo in 0.0.5).
from justpy.
Thanks you :)
from justpy.
Related Issues (20)
- Heroku demos are offline HOT 2
- jp.AgGrid.load_lod(lod, columnDefs) overrides user-specified self.options.columnDefs HOT 1
- jp.redirect not working HOT 2
- Allow to redirect to new tab with POST HOT 1
- QEditor 'value' does not update when 'event_propagation=False' HOT 3
- add fastapi support
- build fails in test_route with PlainTextResponse(url) HOT 1
- Qtree doesn't support toggle HOT 4
- Cannot add meta tag to head of the page for mobile friendliness. HOT 1
- PlotlyChart not show
- Unnamed folder under js template
- CI fails due to TypeError: ChromeDriverManager.__init__() got an unexpected keyword argument 'cache_valid_range'
- I want to add the timeout for session in my justpy project. HOT 1
- Store session I'd in cookie HOT 1
- How to store custom cookie in justpy application .
- Question: Authentication with Firebase
- In QSelect multiple option is not working as expected HOT 1
- Announcing ofjustpy: A webdev framework build/derived from justpy (link: https://github.com/ofjustpy/ofjustpy) HOT 3
- Uncaught ReferenceError: JustpyCore is not defined
- Ajax mode doesn't work HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from justpy.