Welcome!
This is the community forum for my apps Pythonista and Editorial.
For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.
Equally spaced circle in UI
-
Is it possible to enter a number, and that a UI loads with the amount of circle that you entered equally spaced vertically? And if yes, how?
-
@AZOM, here is one way. Requires that you get the
anchor.py
from here.import ui import dialogs from anchor import GridView class CircleView(ui.View): def layout(self): self.corner_radius = self.width/2 number_of_cicles = int(dialogs.input_alert('Number of circles')) g = GridView(count_x=1) for _ in range(number_of_cicles): g.add_subview( CircleView(background_color='green')) g.present()
-
-
Download it in your Pythonista working folder.
-
@AZOM, copy the contents of the file into a file called
anchor.py
in yoursite-packages
directory or the same directory as your script. -
It is a long 1000+ code, but thanks
-
Ok, thank you
-
-
@cvp
Thank you a lot, it’s working :) -
@AZOM, also, if you install stash, you can just wget a file from a url.
-
@cvp Is it possible on iPhone (split view)?
-
@pavlinb Sorry but I don't know. I have a very old iPhone 5s not allowed for iOS 13 nor iPadOS
-
@pavlinb it seems that does it exist on iPhone but hoped on iOS 14.
It is ok on my iPad mini 4 and it is not very bigger than the biggest iPhone -
@cvp, you can open and unzip a zip in Pythonista.
-
@mikael sure. It was only to show that you can download a file (zip or not) from GitHub without needing a Pythonista script to import it, via iCloud then split view.
I know there are several ways.
We are not yet using a lot download to Files, then drag and drop to another app, like PythonistaPersonally, I use my script
-
@mikael
How do I change the circle’s position (horizontally) with your code that you first gave me? -
@AZOM, GridView has a
pack_x
argument:g = GridView( count_x=1, pack_x=GridView.START)
Using
END
instead would move them to the right edge.You can also control the placement down to the pixel by providing an additional
gap
argument, which in this case is essentially the distance to the edge.See the end of this page for the documentation.
-
@mikael
Yeah, thanks for all. -
@adomanim, here you go. You need the
vector.py
from here.import ui import vector chars = 'ABCDEFGH' start_angle = 0 # First character on the right circle_color = 'red' char_color = 'white' char_font = ('Apple SD Gothic Neo', 32) diameter = min(ui.get_screen_size())/2 root = ui.View() root.present() pointer = vector.Vector() pointer.magnitude = diameter/2 pointer.degrees = start_angle for c in chars: label = ui.Label( text=c, text_color=char_color, alignment=ui.ALIGN_CENTER, font=char_font) label.center = root.bounds.center() + tuple(pointer) pointer.degrees += 360/len(chars) root.add_subview(label) class CircleView(ui.View): def layout(self): self.corner_radius = self.width/2 circle = CircleView( width=diameter, height=diameter, border_width=1, border_color=circle_color, center = root.bounds.center() ) root.add_subview(circle) circle.send_to_back()
-
This is for my friend: can someone make a 3 points generator on the circumference of a circle that has a diameter of 2 units. And with these three x, y coordinates, look if the point (0,5:0) is in the triangle made with the three points?