HowDoI demo checkin
An EXCELLENT program... I use it daily to find answers of all types
This commit is contained in:
		
							parent
							
								
									338bf78b54
								
							
						
					
					
						commit
						d2f538cd82
					
				
					 1 changed files with 55 additions and 0 deletions
				
			
		
							
								
								
									
										55
									
								
								Demo HowDoI.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								Demo HowDoI.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,55 @@ | ||||||
|  | import PySimpleGUI as SG | ||||||
|  | import subprocess | ||||||
|  | 
 | ||||||
|  | # CHANGE THIS LINE OF CODE!  Point it to the howdoi.py file that is in the howdoi code you download from github | ||||||
|  | HOW_DO_I_COMMAND = 'python C:\\Python\\PycharmProjects\\GitHub\\howdoi\\howdoi\\howdoi.py' | ||||||
|  | # if you want an icon on your taskbar for this gui, then change this line of code to point to the ICO file | ||||||
|  | DEFAULT_ICON = 'E:\\TheRealMyDocs\\Icons\\QuestionMark.ico' | ||||||
|  | 
 | ||||||
|  | def HowDoI(): | ||||||
|  |     ''' | ||||||
|  |     Make and show a window (PySimpleGUI form) that takes user input and sends to the HowDoI web oracle | ||||||
|  |     Excellent example of 2 GUI concepts | ||||||
|  |         1. Output Element that will show text in a scrolled window | ||||||
|  |         2. Non-Window-Closing Buttons - These buttons will cause the form to return with the form's values, but doesn't close the form | ||||||
|  |     :return: never returns | ||||||
|  |     ''' | ||||||
|  |     # -------  Make a new FlexForm  ------- # | ||||||
|  |     form = SG.FlexForm('How Do I ??', AutoSizeText=True, DefaultElementSize=(30, 2), Icon=DEFAULT_ICON) | ||||||
|  |     form.AddRow(SG.Text('Ask and your answer will appear here....', Size=(40, 1))) | ||||||
|  |     form.AddRow(SG.Output(Size=(90, 20))) | ||||||
|  |     form.AddRow(SG.Multiline(Size=(90, 5), EnterSubmits=True), | ||||||
|  |                 SG.ReadFormButton('SEND', ButtonColor=(SG.YELLOWS[0], SG.BLUES[0])), | ||||||
|  |                 SG.SimpleButton('EXIT', ButtonColor=(SG.YELLOWS[0], SG.GREENS[0]))) | ||||||
|  | 
 | ||||||
|  |     # ---===--- Loop taking in user input and using it to query HowDoI web oracle --- # | ||||||
|  |     while True: | ||||||
|  |         (button, value) = form.Read() | ||||||
|  |         if button == 'SEND': | ||||||
|  |             command = value[0][:-1] | ||||||
|  |             QueryHowDoI(command) | ||||||
|  |         else: | ||||||
|  |             print(button, 'pressed') | ||||||
|  |             break | ||||||
|  | 
 | ||||||
|  |     print('Exiting the app now') | ||||||
|  |     exit(69) | ||||||
|  | 
 | ||||||
|  | def QueryHowDoI(Query): | ||||||
|  |     ''' | ||||||
|  |     Kicks off a subprocess to send the 'Query' to HowDoI | ||||||
|  |     Prints the result, which in this program will route to a gooeyGUI window | ||||||
|  |     :param Query: text english question to ask the HowDoI web engine | ||||||
|  |     :return: nothing | ||||||
|  |     ''' | ||||||
|  |     howdoi_command = HOW_DO_I_COMMAND | ||||||
|  |     t = subprocess.Popen(howdoi_command + ' '+ Query, stdout=subprocess.PIPE) | ||||||
|  |     (output, err) = t.communicate() | ||||||
|  |     print('You asked: '+ Query) | ||||||
|  |     print('_______________________________________') | ||||||
|  |     print(output.decode("utf-8") ) | ||||||
|  |     exit_code = t.wait() | ||||||
|  | 
 | ||||||
|  | if __name__ == '__main__': | ||||||
|  |     HowDoI() | ||||||
|  | 
 | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue