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.
Keyboard ui button.
-
It's a little different from what I was thinking, but that's a good idea.
b_action = typeChar
Here is a name error.
Why? -
@shinya.ta It was the action of my old script
def typeChar(sender): '''finds active textinput, and types the button's title''' tf=sender.objc_instance.firstResponder() tf.insertText_(sender.title)
But I don't know what your script became....
-
@shinya.ta And it is only an example of what you could do. You could have any button with the title or image you want to display next set of emojis.
-
-
It was successful.
I want to use this application vertically, so I hope the display of emoji is less.
How can I adjust the number of emoji?
-
@shinya.ta Hello
The n_sets sets the number of sets
You could set the number of emojis you want per set and then compute the number of setsn_emojis_in_set = 20 n_sets = 1 + int((len(emojis)-1)/n_emojis_in_set)
-
@shinya.ta please let me know if it is ok and if you want to put the "next set" button at another place
-
Dear.cvp
n_emojis_in_set = 20 n_sets = 1 + int((len(emojis)-1)/n_emojis_in_set)
Where should I put this code in?
I tried to put it in the last line, but there was no change. -
It is the best if I can set this emoji to the task bar only by the operation of my wife who is visually impaired.
Is Pythonisa possible to set up a button only with buttons, not in the operation of the program?
-
@shinya.ta instead of
emojis = '๐๐๐ฑ๐ฆโ๏ธ๐๐๐๐๐๐ ๐๐คฃโบ๏ธ๐๐๐๐๐๐๐๐ฅฐ๐๐๐๐๐๐๐๐๐คช๐คจ๐ง๐ค๐๐คฉ๐ฅณ๐๐๐๐๐๐๐โน๏ธ๐ฃ๐๐ซ๐ฉ๐ฅบ๐ข๐ญ๐ค๐ ๐ก๐คฌ๐คฏ๐ณ๐ฅต๐ฅถ๐ฑ๐จ๐ฐ๐ฅ๐๐ค๐ค๐คญ๐คซ๐คฅ๐ถ๐๐๐ฌ๐ฆ๐ง๐ฎ๐ฒ๐ด๐คค๐ช๐ต๐ค๐ฅด๐คข๐คฎ๐คง๐ท๐ค๐ค๐ค๐ค ๐' n_sets = 4 vv_array = []
Do
emojis = '๐๐๐ฑ๐ฆโ๏ธ๐๐๐๐๐๐ ๐๐คฃโบ๏ธ๐๐๐๐๐๐๐๐ฅฐ๐๐๐๐๐๐๐๐๐คช๐คจ๐ง๐ค๐๐คฉ๐ฅณ๐๐๐๐๐๐๐โน๏ธ๐ฃ๐๐ซ๐ฉ๐ฅบ๐ข๐ญ๐ค๐ ๐ก๐คฌ๐คฏ๐ณ๐ฅต๐ฅถ๐ฑ๐จ๐ฐ๐ฅ๐๐ค๐ค๐คญ๐คซ๐คฅ๐ถ๐๐๐ฌ๐ฆ๐ง๐ฎ๐ฒ๐ด๐คค๐ช๐ต๐ค๐ฅด๐คข๐คฎ๐คง๐ท๐ค๐ค๐ค๐ค ๐' n_emojis_in_set = 20 n_sets = 1 + int((len(emojis)-1)/n_emojis_in_set) vv_array = []
-
@shinya.ta Sorry, I don't understand this
It is the best if I can set this emoji to the task bar only by the operation of my wife who is visually impaired. Is Pythonisa possible to set up a button only with buttons, not in the operation of the program?
If I correctly understand, you want to ask this "next set of emojis" by a normal button.
But where do you want this button? -
Sorry for the poor English.
It is a button that my wife can set emoji by herself.
The location of the button is okay anywhere.
-
@shinya.ta Try
#create normal keys d = 32 dd = 4 emojis = '๐๐๐ฑ๐ฆโ๏ธ๐๐๐๐๐๐ ๐๐คฃโบ๏ธ๐๐๐๐๐๐๐๐ฅฐ๐๐๐๐๐๐๐๐๐คช๐คจ๐ง๐ค๐๐คฉ๐ฅณ๐๐๐๐๐๐๐โน๏ธ๐ฃ๐๐ซ๐ฉ๐ฅบ๐ข๐ญ๐ค๐ ๐ก๐คฌ๐คฏ๐ณ๐ฅต๐ฅถ๐ฑ๐จ๐ฐ๐ฅ๐๐ค๐ค๐คญ๐คซ๐คฅ๐ถ๐๐๐ฌ๐ฆ๐ง๐ฎ๐ฒ๐ด๐คค๐ช๐ต๐ค๐ฅด๐คข๐คฎ๐คง๐ท๐ค๐ค๐ค๐ค ๐' n_emojis_in_set = 20 n_sets = 1 + int((len(emojis)-1)/n_emojis_in_set) vv_array = [] for i_set in range(0,n_sets): l = int(len(emojis)/n_sets) i = i_set * l set_emojis = emojis[i:i+l] w, h = ui.get_screen_size() vv = ui.View(name='set'+str(i_set)) vv.background_color = 'lightgray' h = 0 x = dd y = dd for button_title in set_emojis: b = ui.Button(title=button_title) b_action = typeChar b.action=b_action b.frame = (x,y,d,d) b.font = ('.SFUIText', d) if (y+d+dd) > h: h = y + d + dd vv.add_subview(b) x = x + d + dd if (x+d+dd) > w: x = dd y = y + d + dd vv.frame = (0,0,w,h) vv_array.append(vv) tv.i_set = 0 tv.n_sets = n_sets def nextSet(sender): tv.i_set = tv.i_set + 1 if tv.i_set == tv.n_sets: tv.i_set = 0 #attach our accessory to the textfield, and textview ww = vv_array[tv.i_set] tvo = tv.objc_instance #print(dir(tvo)) tvo.setInputAccessoryView_(ObjCInstance(ww)) tvo.reloadInputViews() nextSet(vv_array[n_sets-1]['nextSet']) # display 1st set # add a button at right of "typing suggestions", just above the keyboard bb_target = ui.Button() bb_target.action = nextSet UIBarButtonItem = ObjCClass('UIBarButtonItem').alloc().initWithTitle_style_target_action_('Next Emojis',0,bb_target,sel('invokeAction:')).autorelease() #UIBarButtonItem = ObjCClass('UIBarButtonItem').alloc().initWithImage_style_target_action_(ns(ui.Image.named('emj:Bicycle').with_rendering_mode(ui.RENDERING_MODE_ORIGINAL)),0,bb_target,sel('invokeAction:')).autorelease() UIBarButtonItemGroup = ObjCClass('UIBarButtonItemGroup').alloc().initWithBarButtonItems_representativeItem_([UIBarButtonItem],None) tvo = tv.objc_instance tvo.inputAssistantItem().setTrailingBarButtonGroups([UIBarButtonItemGroup]) v.present('sheet') tv.selected_range = (0,0) tv.begin_editing()
-
Dear.cvp
I didn't have a test because I didn't have time to try it.
I'll take a test on the weekend. -
-
@shinya.ta If the syntax error comes from the last line, I had made a copy/paste error, please check the two last lines versus the edit script above
-
-
I would like to display multiple windows at the same time and edit the text.
Can I make it with Pythonisa?
I don't know how to send pictures here.
If you see the picture, I think you can see the image. -
@shinya.ta To post here a picture, I use this little script:
import pyimgur,photos,clipboard,os,console i=photos.pick_image() if i: print(i.format) format = 'gif' if (i.format == 'GIF') else 'jpg' i.save('img.'+format) clipboard.set(pyimgur.Imgur("303d632d723a549").upload_image('img.'+format, title="Uploaded-Image").link) console.hud_alert("link copied!") os.remove('img.'+format)
You have to
- run this script
- the program will ask you to pick a picture from your camera roll
- the program sends the picture to imgur site and copy the url in the clipboard
- here, in the forum, you paste this url from the clipboard in a post
- that's all, it takes some seconds
-
@shinya.ta If the 'next emoji' is not displayed on iPhone, it is perhaps a problem of screen width (sorry, I can't test it), you could try to put a shorter title to this button, like
UIBarButtonItem = ObjCClass('UIBarButtonItem').alloc().initWithTitle_style_target_action_('โฉ',0,bb_target,sel('invokeAction:')).autorelease()
If you parametrized big characters in your iPhone settings, the system does not have sufficient room to display this button