I have done a pixel art app with Pythonista. Everything is working as it should, and the painting experience is great through Python. But I wish the app had palm rejection when I used my Apple Pencil. Does anyone know if that is possible with Pythonista?
Cool, now most of the script seems to work as it should. Thanks again!
I changed the text assignment to this, and now it appears where I intended:
# Sends the selected image to the pixel Editor self.superview['File Label'].text = selectedFile
filePreviewshould exist though, should it not? I created it as an imageview a couple lines up, so is should be within the scope of the file window. Looks more like the function isnt called at all when I press the different table lines.
Here is how it looks right now:
import ui from glob import glob from os.path import basename class fileWindow(ui.View): def __init__(self): self.frame=(100, 150, 300, 300) self.name = 'File window' self.border_width = 2 print ('Loader superview at init:', self.superview) imagefiles = [basename(x) for x in glob('*.*')] filelistData = ui.ListDataSource(imagefiles) filelistData.delete_enabled=False filelist = ui.TableView(frame=(10, 10 ,150, 280), data_source=filelistData, name='filelist') filelist.row_height = 24 filelist.action = self.fileSelected # This does not work... self.add_subview(filelist) filePreview = ui.ImageView(frame=(170,10,120,100)) filePreview.background_color = 'black' self.add_subview(filePreview) loadButton = ui.Button(name='Load', frame=(170,120,64,32), title='Load') loadButton.background_color = 'white' loadButton.action = self.loadAction self.add_subview(loadButton) ui.delay(self.x,0.01) def x(self): print ('Loader superview type = ', type(self.superview)) def loadAction(self,sender): selectedFile = self['filelist'].data_source.items[self['filelist'].selected_row] print ('Selected ' + selectedFile + ' from sender: ' + sender.name) # Sends the selected image to the pixel Editor self.superview['File Label'].text = selectedFile def fileSelected(self,sender): # This does not work.. print('Gonk!!') filePreview.background_color = 'red' class pixelEditor(ui.View): def __init__(self, width=640, height=480): self.bg_color = 'grey' fileButton = ui.Button(name='File', frame=(10,80,64,32), title='File:') fileButton.background_color = 'white' fileButton.action = self.openFileWindow self.add_subview(fileButton) fileLabel = ui.Label(frame=(100, 80, 300, 32), font=('HelveticaNeue-Light', 32), text='___') fileLabel.name = 'File Label' self.add_subview(fileLabel) print(self.superview) def openFileWindow(self, sender): fv = fileWindow() self.add_subview(fv) #fv.present() print('File window opened.') v = pixelEditor() v.present('fullscreen')
print ('Loader superview type = ', type(self.superview))
I still have to do a
openFileWindowfunction, right? The window will not show up otherwise...
print ('Loader superview type = ', type(self.superview))now returns a NoneType, though.
I still want to put the selected file name into
fileLabel.text- how would you go about doing that?
Thanks, that also worked. I had the sub-window opening OK a couple steps back as well. But the next problem still remains, though, even in this version.
I do a
print ('Loader superview:', self.superview)when I init the
fileWindow, to see that there is a parent view I can put the selected file into, but that still returns
None. Is there a way to get the new view properly assigned as a child of the first
edit: I see you have made a new function that prints the superview, but it returns
fileWindow. So the windows parent is itself? Why is the superview not
Thanks for taking the time to help me out!!