Merge pull request #691 from MikeTheWatchGuy/Dev-latest
Removed Mac Look and Feel restriction. change_submits callbacks for …
This commit is contained in:
		
						commit
						2e6e1aa061
					
				
					 2 changed files with 101 additions and 38 deletions
				
			
		|  | @ -449,6 +449,15 @@ class InputText(Element): | ||||||
|         super().__init__(ELEM_TYPE_INPUT_TEXT, size=size, background_color=bg, text_color=fg, key=key, pad=pad, |         super().__init__(ELEM_TYPE_INPUT_TEXT, size=size, background_color=bg, text_color=fg, key=key, pad=pad, | ||||||
|                          font=font, tooltip=tooltip) |                          font=font, tooltip=tooltip) | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     def QtCallbackTextChanged(self, value): | ||||||
|  |         if not self.ChangeSubmits: | ||||||
|  |             return | ||||||
|  |         element_callback_quit_mainloop(self) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|     def Update(self, value=None, disabled=None): |     def Update(self, value=None, disabled=None): | ||||||
|         if disabled is True: |         if disabled is True: | ||||||
|             self.QT_QLineEdit.setDisabled(True) |             self.QT_QLineEdit.setDisabled(True) | ||||||
|  | @ -505,6 +514,11 @@ class Combo(Element): | ||||||
|                          text_color=fg, key=key, pad=pad, tooltip=tooltip, font=font or DEFAULT_FONT) |                          text_color=fg, key=key, pad=pad, tooltip=tooltip, font=font or DEFAULT_FONT) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |     def QtCurrentItemChanged(self, state): | ||||||
|  |         if self.ChangeSubmits: | ||||||
|  |             element_callback_quit_mainloop(self) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|     def Qt_init(self): |     def Qt_init(self): | ||||||
|         self.QT_ComboBox = QComboBox() |         self.QT_ComboBox = QComboBox() | ||||||
|         self.QT_ComboBox.addItems(self.Values) |         self.QT_ComboBox.addItems(self.Values) | ||||||
|  | @ -663,6 +677,11 @@ class Listbox(Element): | ||||||
|         super().__init__(ELEM_TYPE_INPUT_LISTBOX, size=size, auto_size_text=auto_size_text, font=font, |         super().__init__(ELEM_TYPE_INPUT_LISTBOX, size=size, auto_size_text=auto_size_text, font=font, | ||||||
|                          background_color=bg, text_color=fg, key=key, pad=pad, tooltip=tooltip) |                          background_color=bg, text_color=fg, key=key, pad=pad, tooltip=tooltip) | ||||||
| 
 | 
 | ||||||
|  |     def QtCurrentRowChanged(self, state): | ||||||
|  |         if self.ChangeSubmits: | ||||||
|  |             element_callback_quit_mainloop(self) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|     def Update(self, values=None, disabled=None): |     def Update(self, values=None, disabled=None): | ||||||
|         if disabled == True: |         if disabled == True: | ||||||
|             pass |             pass | ||||||
|  | @ -766,8 +785,10 @@ class Checkbox(Element): | ||||||
|                          background_color=background_color, text_color=self.TextColor, key=key, pad=pad, |                          background_color=background_color, text_color=self.TextColor, key=key, pad=pad, | ||||||
|                          tooltip=tooltip) |                          tooltip=tooltip) | ||||||
| 
 | 
 | ||||||
|     def QtCallbackStateChange(self, state): |     def QtCallbackStateChanged(self, state): | ||||||
|         print('state', state) |         if self.ChangeSubmits: | ||||||
|  |             element_callback_quit_mainloop(self) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|     def Get(self): |     def Get(self): | ||||||
|         return self.TKIntVar.get() |         return self.TKIntVar.get() | ||||||
|  | @ -827,6 +848,12 @@ class Spin(Element): | ||||||
|                          key=key, pad=pad, tooltip=tooltip) |                          key=key, pad=pad, tooltip=tooltip) | ||||||
|         return |         return | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |     def QtCallbackValueChanged(self, value): | ||||||
|  |         if not self.ChangeSubmits: | ||||||
|  |             return | ||||||
|  |         element_callback_quit_mainloop(self) | ||||||
|  | 
 | ||||||
|     def Update(self, value=None, values=None, disabled=None): |     def Update(self, value=None, values=None, disabled=None): | ||||||
|         if values != None: |         if values != None: | ||||||
|             pass |             pass | ||||||
|  | @ -1921,6 +1948,10 @@ class Slider(Element): | ||||||
|         return |         return | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |     def QtCallbackValueChanged(self, value): | ||||||
|  |         if not self.ChangeSubmits: | ||||||
|  |             return | ||||||
|  |         element_callback_quit_mainloop(self) | ||||||
| 
 | 
 | ||||||
|     def Update(self, value=None, range=(None, None), disabled=None): |     def Update(self, value=None, range=(None, None), disabled=None): | ||||||
|         if value is not None: |         if value is not None: | ||||||
|  | @ -2001,18 +2032,9 @@ class Dial(Element): | ||||||
|             pass |             pass | ||||||
| 
 | 
 | ||||||
|     def QtCallbackValueChanged(self, value): |     def QtCallbackValueChanged(self, value): | ||||||
|         # first, get the results table built |  | ||||||
|         # modify the Results table in the parent FlexForm object |  | ||||||
|         if not self.ChangeSubmits: |         if not self.ChangeSubmits: | ||||||
|             return |             return | ||||||
| 
 |         element_callback_quit_mainloop(self) | ||||||
|         if self.Key is not None: |  | ||||||
|             self.ParentForm.LastButtonClicked = self.Key |  | ||||||
|         else: |  | ||||||
|             self.ParentForm.LastButtonClicked = '' |  | ||||||
|         self.ParentForm.FormRemainedOpen = True |  | ||||||
|         if self.ParentForm.CurrentlyRunningMainloop: |  | ||||||
|             self.ParentForm.QTApplication.exit()    # kick the users out of the mainloop |  | ||||||
| 
 | 
 | ||||||
|     def __del__(self): |     def __del__(self): | ||||||
|         super().__del__() |         super().__del__() | ||||||
|  | @ -2204,6 +2226,23 @@ class Table(Element): | ||||||
|                          size=size, pad=pad, key=key, tooltip=tooltip) |                          size=size, pad=pad, key=key, tooltip=tooltip) | ||||||
|         return |         return | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |     def QtCallbackCellActivated(self, value): | ||||||
|  |         print('CELL ACTIVATED ', value) | ||||||
|  |         # first, get the results table built | ||||||
|  |         # modify the Results table in the parent FlexForm object | ||||||
|  |         if not self.ChangeSubmits: | ||||||
|  |             return | ||||||
|  | 
 | ||||||
|  |         if self.Key is not None: | ||||||
|  |             self.ParentForm.LastButtonClicked = self.Key | ||||||
|  |         else: | ||||||
|  |             self.ParentForm.LastButtonClicked = '' | ||||||
|  |         self.ParentForm.FormRemainedOpen = True | ||||||
|  |         if self.ParentForm.CurrentlyRunningMainloop: | ||||||
|  |             self.ParentForm.QTApplication.exit()    # kick the users out of the mainloop | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|     def Update(self, values=None): |     def Update(self, values=None): | ||||||
|         if values is not None: |         if values is not None: | ||||||
|             self.Values = values |             self.Values = values | ||||||
|  | @ -2938,6 +2977,21 @@ class Window: | ||||||
| FlexForm = Window | FlexForm = Window | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | # =========================================================================== # | ||||||
|  | # Stops the mainloop and sets the event information                           # | ||||||
|  | # =========================================================================== # | ||||||
|  | 
 | ||||||
|  | def element_callback_quit_mainloop(element): | ||||||
|  |     if element.Key is not None: | ||||||
|  |         element.ParentForm.LastButtonClicked = element.Key | ||||||
|  |     else: | ||||||
|  |         element.ParentForm.LastButtonClicked = '' | ||||||
|  |     element.ParentForm.FormRemainedOpen = True | ||||||
|  |     if element.ParentForm.CurrentlyRunningMainloop: | ||||||
|  |         element.ParentForm.QTApplication.exit()  # kick the users out of the mainloop | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| # ################################################################################ | # ################################################################################ | ||||||
| # ################################################################################ | # ################################################################################ | ||||||
| #  END OF ELEMENT DEFINITIONS | #  END OF ELEMENT DEFINITIONS | ||||||
|  | @ -3328,9 +3382,9 @@ def BuildResultsForSubform(form, initialize_only, top_level_form): | ||||||
|                     except: |                     except: | ||||||
|                         value = [] |                         value = [] | ||||||
|                 elif element.Type == ELEM_TYPE_INPUT_SPIN: |                 elif element.Type == ELEM_TYPE_INPUT_SPIN: | ||||||
|                     value = element.QT_Spinner.value() |                     value = str(element.QT_Spinner.value()) | ||||||
|                 elif element.Type == ELEM_TYPE_INPUT_DIAL: |                 elif element.Type == ELEM_TYPE_INPUT_DIAL: | ||||||
|                     value = element.QT_Dial.value() |                     value = str(element.QT_Dial.value()) | ||||||
|                 elif element.Type == ELEM_TYPE_INPUT_SLIDER: |                 elif element.Type == ELEM_TYPE_INPUT_SLIDER: | ||||||
|                     value = element.QT_Slider.value() |                     value = element.QT_Slider.value() | ||||||
|                 elif element.Type == ELEM_TYPE_INPUT_MULTILINE: |                 elif element.Type == ELEM_TYPE_INPUT_MULTILINE: | ||||||
|  | @ -3728,6 +3782,9 @@ def PackFormIntoFrame(window, containing_frame, toplevel_win): | ||||||
|                     focus_set = True |                     focus_set = True | ||||||
|                     toplevel_win.FocusElement = element.QT_QLineEdit |                     toplevel_win.FocusElement = element.QT_QLineEdit | ||||||
| 
 | 
 | ||||||
|  |                 if element.ChangeSubmits: | ||||||
|  |                     element.QT_QLineEdit.textChanged.connect(element.QtCallbackTextChanged) | ||||||
|  | 
 | ||||||
|                 qt_row_layout.setContentsMargins(*full_element_pad) |                 qt_row_layout.setContentsMargins(*full_element_pad) | ||||||
| 
 | 
 | ||||||
|                 qt_row_layout.addWidget(element.QT_QLineEdit) |                 qt_row_layout.addWidget(element.QT_QLineEdit) | ||||||
|  | @ -3755,6 +3812,9 @@ def PackFormIntoFrame(window, containing_frame, toplevel_win): | ||||||
|                     if element_size[1] is not None: |                     if element_size[1] is not None: | ||||||
|                         element.QT_ComboBox.setFixedHeight(element_size[1]) |                         element.QT_ComboBox.setFixedHeight(element_size[1]) | ||||||
| 
 | 
 | ||||||
|  |                 if element.ChangeSubmits: | ||||||
|  |                     element.QT_ComboBox.currentIndexChanged.connect(element.QtCurrentItemChanged) | ||||||
|  | 
 | ||||||
|                 element.QT_ComboBox.addItems(element.Values) |                 element.QT_ComboBox.addItems(element.Values) | ||||||
|                 element.QT_ComboBox.setMaxVisibleItems(element.VisibleItems) |                 element.QT_ComboBox.setMaxVisibleItems(element.VisibleItems) | ||||||
|                 element.QT_ComboBox.setContentsMargins(*full_element_pad) |                 element.QT_ComboBox.setContentsMargins(*full_element_pad) | ||||||
|  | @ -3790,6 +3850,9 @@ def PackFormIntoFrame(window, containing_frame, toplevel_win): | ||||||
|                 elif element.SelectMode == SELECT_MODE_SINGLE: |                 elif element.SelectMode == SELECT_MODE_SINGLE: | ||||||
|                     element.QT_ListWidget.setSelectionMode(QAbstractItemView.SingleSelection) |                     element.QT_ListWidget.setSelectionMode(QAbstractItemView.SingleSelection) | ||||||
| 
 | 
 | ||||||
|  |                 if element.ChangeSubmits: | ||||||
|  |                     element.QT_ListWidget.currentRowChanged.connect(element.QtCurrentRowChanged) | ||||||
|  | 
 | ||||||
|                 element.QT_ListWidget.addItems(element.Values) |                 element.QT_ListWidget.addItems(element.Values) | ||||||
|                 qt_row_layout.setContentsMargins(*full_element_pad) |                 qt_row_layout.setContentsMargins(*full_element_pad) | ||||||
| 
 | 
 | ||||||
|  | @ -3818,6 +3881,7 @@ def PackFormIntoFrame(window, containing_frame, toplevel_win): | ||||||
|                 element.QT_TextEdit.setPlaceholderText(default_text) |                 element.QT_TextEdit.setPlaceholderText(default_text) | ||||||
|                 qt_row_layout.setContentsMargins(*full_element_pad) |                 qt_row_layout.setContentsMargins(*full_element_pad) | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|                 element.MultiQWidget = Multiline.MultiQWidget(element.QT_TextEdit, element) |                 element.MultiQWidget = Multiline.MultiQWidget(element.QT_TextEdit, element) | ||||||
|                 element.QT_TextEdit.installEventFilter(element.MultiQWidget) |                 element.QT_TextEdit.installEventFilter(element.MultiQWidget) | ||||||
| 
 | 
 | ||||||
|  | @ -3876,7 +3940,8 @@ def PackFormIntoFrame(window, containing_frame, toplevel_win): | ||||||
|                         element.QT_Checkbox.setFixedWidth(element_size[0]) |                         element.QT_Checkbox.setFixedWidth(element_size[0]) | ||||||
|                     if element_size[1] is not None: |                     if element_size[1] is not None: | ||||||
|                         element.QT_Checkbox.setFixedHeight(element_size[1]) |                         element.QT_Checkbox.setFixedHeight(element_size[1]) | ||||||
|                 element.QT_Checkbox.stateChanged.connect(element.QtCallbackStateChange) |                 if element.ChangeSubmits: | ||||||
|  |                     element.QT_Checkbox.stateChanged.connect(element.QtCallbackStateChanged) | ||||||
|                 qt_row_layout.setContentsMargins(*full_element_pad) |                 qt_row_layout.setContentsMargins(*full_element_pad) | ||||||
|                 qt_row_layout.addWidget(element.QT_Checkbox) |                 qt_row_layout.addWidget(element.QT_Checkbox) | ||||||
|               # -------------------------  PROGRESS BAR element  ------------------------- # |               # -------------------------  PROGRESS BAR element  ------------------------- # | ||||||
|  | @ -3938,6 +4003,9 @@ def PackFormIntoFrame(window, containing_frame, toplevel_win): | ||||||
|                     if element_size[1] is not None: |                     if element_size[1] is not None: | ||||||
|                         element.QT_Spinner.setFixedHeight(element_size[1]) |                         element.QT_Spinner.setFixedHeight(element_size[1]) | ||||||
| 
 | 
 | ||||||
|  |                 if element.ChangeSubmits: | ||||||
|  |                     element.QT_Spinner.valueChanged.connect(element.QtCallbackValueChanged) | ||||||
|  | 
 | ||||||
|                 qt_row_layout.setContentsMargins(*full_element_pad) |                 qt_row_layout.setContentsMargins(*full_element_pad) | ||||||
| 
 | 
 | ||||||
|                 qt_row_layout.addWidget(element.QT_Spinner) |                 qt_row_layout.addWidget(element.QT_Spinner) | ||||||
|  | @ -4023,6 +4091,9 @@ def PackFormIntoFrame(window, containing_frame, toplevel_win): | ||||||
|                     element.QT_Slider.setFixedHeight(element_size[1]) |                     element.QT_Slider.setFixedHeight(element_size[1]) | ||||||
|                 element.QT_Slider.setValue(element.DefaultValue) |                 element.QT_Slider.setValue(element.DefaultValue) | ||||||
| 
 | 
 | ||||||
|  |                 if element.ChangeSubmits: | ||||||
|  |                     element.QT_Slider.valueChanged.connect(element.QtCallbackValueChanged) | ||||||
|  | 
 | ||||||
|                 qt_row_layout.setContentsMargins(*full_element_pad) |                 qt_row_layout.setContentsMargins(*full_element_pad) | ||||||
|                 qt_row_layout.addWidget(element.QT_Slider) |                 qt_row_layout.addWidget(element.QT_Slider) | ||||||
| 
 | 
 | ||||||
|  | @ -4062,6 +4133,9 @@ def PackFormIntoFrame(window, containing_frame, toplevel_win): | ||||||
|                     style += 'background-color: %s;' % element.BackgroundColor |                     style += 'background-color: %s;' % element.BackgroundColor | ||||||
|                 element.QT_TableWidget.setStyleSheet(style) |                 element.QT_TableWidget.setStyleSheet(style) | ||||||
| 
 | 
 | ||||||
|  |                 if element.ChangeSubmits: | ||||||
|  |                     element.QT_TableWidget.itemClicked.connect(element.QtCallbackCellActivated) | ||||||
|  | 
 | ||||||
|                 element.QT_TableWidget.setRowCount(len(element.Values)) |                 element.QT_TableWidget.setRowCount(len(element.Values)) | ||||||
|                 element.QT_TableWidget.setColumnCount(len(element.Values[0])) |                 element.QT_TableWidget.setColumnCount(len(element.Values[0])) | ||||||
|                 for rownum, rows in enumerate(element.Values): |                 for rownum, rows in enumerate(element.Values): | ||||||
|  | @ -5134,10 +5208,10 @@ def ListOfLookAndFeelValues(): | ||||||
| 
 | 
 | ||||||
| def ChangeLookAndFeel(index): | def ChangeLookAndFeel(index): | ||||||
|     # global LOOK_AND_FEEL_TABLE |     # global LOOK_AND_FEEL_TABLE | ||||||
| 
 |     # | ||||||
|     if sys.platform == 'darwin': |     # if sys.platform == 'darwin': | ||||||
|         print('*** Changing look and feel is not supported on Mac platform ***') |     #     print('*** Changing look and feel is not supported on Mac platform ***') | ||||||
|         return |     #     return | ||||||
| 
 | 
 | ||||||
|     # look and feel table |     # look and feel table | ||||||
| 
 | 
 | ||||||
|  | @ -5776,7 +5850,7 @@ def main(): | ||||||
|               [Text('Here is your sample input window....')], |               [Text('Here is your sample input window....')], | ||||||
|               [Text('Source File', size=(150, 25), justification='right'), InputText('Source', focus=True), FileBrowse()], |               [Text('Source File', size=(150, 25), justification='right'), InputText('Source', focus=True), FileBrowse()], | ||||||
|               [Text('Destination Folder', size=(150, 25), justification='right'), InputText('Dest'), FolderBrowse()], |               [Text('Destination Folder', size=(150, 25), justification='right'), InputText('Dest'), FolderBrowse()], | ||||||
|               [Ok(), Cancel()]] |               [Ok(bind_return_key=True), Cancel()]] | ||||||
| 
 | 
 | ||||||
|     window = Window('Demo window..',auto_size_buttons=False, default_element_size=(280,22), default_button_element_size=(80,20)).Layout(layout) |     window = Window('Demo window..',auto_size_buttons=False, default_element_size=(280,22), default_button_element_size=(80,20)).Layout(layout) | ||||||
|     event, values = window.Read() |     event, values = window.Read() | ||||||
|  |  | ||||||
|  | @ -1,17 +1,7 @@ | ||||||
| #!/usr/bin/env python | #!/usr/bin/env python | ||||||
| import sys |  | ||||||
| if sys.version_info[0] >= 3: |  | ||||||
| import PySimpleGUIQt as sg | import PySimpleGUIQt as sg | ||||||
| else: |  | ||||||
|     import PySimpleGUI27 as sg |  | ||||||
| 
 | 
 | ||||||
| sg.ChangeLookAndFeel('Topanga') | sg.ChangeLookAndFeel('Topanga') | ||||||
| # sg.SetOptions(element_padding=(0,0)) |  | ||||||
| # ------ Menu Definition ------ # |  | ||||||
| menu_def = [['&File', ['&Open', '&Save', 'E&xit', 'Properties']], |  | ||||||
|             ['&Edit', ['Paste', ['Special', 'Normal', ], 'Undo'], ], |  | ||||||
|             ['&Help', '&About...'], ] |  | ||||||
| 
 |  | ||||||
| # ------ Column Definition ------ # | # ------ Column Definition ------ # | ||||||
| column1 = [[sg.Text('Column 1', background_color='lightblue',text_color='black', justification='center', size=(100,22))], | column1 = [[sg.Text('Column 1', background_color='lightblue',text_color='black', justification='center', size=(100,22))], | ||||||
|            [sg.Spin((1,10), size=(100,22))], |            [sg.Spin((1,10), size=(100,22))], | ||||||
|  | @ -19,27 +9,26 @@ column1 = [[sg.Text('Column 1', background_color='lightblue',text_color='black', | ||||||
|            [sg.Spin((1,10), size=(100,22))],] |            [sg.Spin((1,10), size=(100,22))],] | ||||||
| 
 | 
 | ||||||
| layout = [ | layout = [ | ||||||
|     [sg.Menu(menu_def, tearoff=True)], |  | ||||||
|     [sg.Text('(Almost) All widgets in one Window!', justification='c', font=("Helvetica", 25), relief=sg.RELIEF_RIDGE)], |     [sg.Text('(Almost) All widgets in one Window!', justification='c', font=("Helvetica", 25), relief=sg.RELIEF_RIDGE)], | ||||||
|     [sg.Text('Here is some text.... and a place to enter text')], |     [sg.Text('Here is some text.... and a place to enter text')], | ||||||
|     [sg.InputText('This is my text', size=(400,22))], |     [sg.InputText('This is my text', size=(400,22))], | ||||||
|     [sg.Frame(layout=[ |     [sg.Frame(layout=[ | ||||||
|         [sg.Checkbox('Checkbox', size=(185,22)),  sg.Checkbox('My second checkbox!', default=True)], |         [sg.Checkbox('Checkbox', size=(185,22)),  sg.Checkbox('My second checkbox!', default=True)], | ||||||
|         [sg.Radio('My first Radio!', "RADIO1", default=True, size=(180,22), ),sg.Radio('My second Radio!', "RADIO1")], |         [sg.Radio('My first Radio!', "RADIO1", default=True, size=(180,22), ),sg.Radio('My second Radio!', "RADIO1")], | ||||||
|         [sg.Radio('Third Radio!', "RADIO2", default=True, size=(180,22), ),sg.Radio('Fourth Radio!', "RADIO2")] |         [sg.Radio('Third Radio!', "RADIO2", default=True, size=(180,22), ), | ||||||
| 
 |          sg.Radio('Fourth Radio!', "RADIO2")]], title='Options',title_color='red', relief=sg.RELIEF_SUNKEN, | ||||||
|     ], title='Options',title_color='red', relief=sg.RELIEF_SUNKEN, tooltip='Use these to set flags', ), sg.Stretch()], |         tooltip='Use these to set flags', ), sg.Stretch()], | ||||||
|     [sg.Multiline(default_text='This is the default Text should you decide not to type anything', size=(220, 80)), |     [sg.Multiline(default_text='This is the default Text should you decide not to type anything', size=(220, 80)), | ||||||
|      sg.Multiline(default_text='A second multi-line', size=(220, 80))], |      sg.Multiline(default_text='A second multi-line', size=(220, 80))], | ||||||
|     [sg.InputCombo(('Combobox 1', 'Combobox 2'), size=(150, 22)), sg.Stretch(), |     [sg.InputCombo(('Combobox 1', 'Combobox 2'), size=(150, 22)), sg.Stretch(), | ||||||
|      sg.Slider(range=(1, 100), orientation='h', size=(300, 22), default_value=85)], |      sg.Slider(range=(1, 100), orientation='h', size=(300, 22), default_value=85)], | ||||||
|     [sg.InputOptionMenu(('Menu Option 1', 'Menu Option 2', 'Menu Option 3'))], |     [sg.InputOptionMenu(('Menu Option 1', 'Menu Option 2', 'Menu Option 3'))], | ||||||
|     [sg.Listbox(values=('Listbox 1', 'Listbox 2', 'Listbox 3'), size=(200,100), select_mode=sg.LISTBOX_SELECT_MODE_SINGLE), sg.Stretch(), |     [sg.Listbox(values=('Listbox 1', 'Listbox 2', 'Listbox 3'), size=(200,100), select_mode=sg.LISTBOX_SELECT_MODE_EXTENDED), sg.Stretch(), | ||||||
|      sg.Frame('Labelled Group',[[ |      sg.Frame('Labelled Group',[[ | ||||||
|      sg.Slider(range=(1, 100), orientation='v', default_value=25, tick_interval=25), |      sg.Slider(range=(1, 100), orientation='v', default_value=25, tick_interval=25), | ||||||
|      sg.Slider(range=(1, 100), orientation='v', default_value=75), |      sg.Slider(range=(1, 100), orientation='v', default_value=75), | ||||||
|      sg.Slider(range=(1, 100), orientation='v', default_value=10), |      sg.Slider(range=(1, 100), orientation='v', default_value=10), | ||||||
|      sg.Column(column1, background_color='red')]]), sg.Stretch()], |      sg.Column(column1, background_color='lightblue')]], background_color='black'), sg.Stretch()], | ||||||
|     [sg.Text('_' * 50, justification='c')], |     [sg.Text('_' * 50, justification='c')], | ||||||
|     [sg.Text('Choose A Folder')], |     [sg.Text('Choose A Folder')], | ||||||
|     [sg.Text('Your Folder'), |     [sg.Text('Your Folder'), | ||||||
|  | @ -57,7 +46,7 @@ window = sg.Window('Everything bagel', | ||||||
|                    default_button_element_size=(120,30) |                    default_button_element_size=(120,30) | ||||||
|                    ).Layout(layout) |                    ).Layout(layout) | ||||||
| event, values = window.Read() | event, values = window.Read() | ||||||
| 
 | print(event, values) | ||||||
| window.Close() | window.Close() | ||||||
| 
 | 
 | ||||||
| sg.Popup('Title', | sg.Popup('Title', | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue