Last active
August 20, 2017 17:51
-
-
Save Dayof/3182075a678a198565fad2f9a05d2735 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import toga | |
class StartApp(toga.App): | |
def startup(self): | |
# Main window | |
self.main_window = toga.MainWindow(self.name) | |
self.main_window.app = self | |
# Tree data source | |
tree_data = { | |
'root1' : {}, | |
'root2': { | |
'sub1_root2' : {}, | |
'sub2_root2' : 'sub2_sub1_root2' | |
}, | |
'root3': 'sub1_root3', | |
} | |
# Tree widget from Toga with data source and a function to call | |
# when any node is selected | |
self.tree = toga.Tree(['Navigate'], data=tree_data, | |
on_selection=self.selection_test) | |
# Text Input to show the text of the selected nodes | |
self.input = toga.TextInput(initial='No node was selected') | |
self.input_box = toga.Box(children=[self.input]) | |
# Main widget of the application, show both the Tree data and the | |
# buttons to control thee application | |
frame = toga.SplitContainer() | |
frame.content = [self.tree, self.input_box] | |
# Add the main widget inside of the main application | |
self.main_window.content = frame | |
# Show the application | |
self.main_window.show() | |
def selection_test(self, nodes): | |
# Add the nodes texts selected by the user inside of the text input box | |
self.input.value = ', '.join(node.text for node in nodes) | |
def main(): | |
# Start the application with the title and the name of the organization | |
app = StartApp('Test Tree multiple selection', 'org.pybee.test') | |
app.main_loop() | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment