def onSearch(self, button): search_str = builder.get_object("search_string").get_text() path_str = builder.get_object("folder_path").get_text() stop_button.set_visible(True) spinner.set_visible(True) spinner.start() # Create 'shared memory' for both threads, allowing communication (in this case, Searcher -> outputs -> input of SearchWindow) grep_output = queue.Queue() finishedSearchingEvent = threading.Event() # grep_output will be filled by this worker self.thread1 = Search.SearchThread(search_str, path_str, grep_output, finishedSearchingEvent) self.thread1.start() # GUI thread / Read from GREP self.thread2 = SearchWindow.WindowThread(grep_output, finishedSearchingEvent) self.thread2.start()
class MainWindow(QMainWindow): def __init__(self): super().__init__() #Set Window Title self.setWindowTitle('Twitter Program') #Create Twitter Object self.createTwitterObject() #Create Menubar for interface - Add Each Menu self.menuBar = QMenuBar() self.fileMenu = self.menuBar.addMenu('File') self.searchMenu = self.menuBar.addMenu('Search') self.managementMenu = self.menuBar.addMenu('Database Management') self.suggestedMenu = self.menuBar.addMenu('Suggested Users') self.trendsMenu = self.menuBar.addMenu('Display Trends') #Add Actions to each Menu self.logOutAction = self.fileMenu.addAction('Log Out') self.quitAction = self.fileMenu.addAction('Quit') self.searchAction = self.searchMenu.addAction('New Search') self.tweetAction = self.searchMenu.addAction('Search Users Tweets') self.deleteAction = self.managementMenu.addAction('Delete Entries') self.modifyAction = self.managementMenu.addAction('Modity Databases') self.suggestedAction = self.suggestedMenu.addAction('Display Suggested Users') self.trendsAction = self.trendsMenu.addAction('Display Trends') #Set Menu Bar self.setMenuBar(self.menuBar) #Import Layouts self.searchInterface = SearchWindow(self.twitter) self.tableInterface = TableViewWindow() self.tweetSearchInterface = TweetInterface(self.twitter) self.deleteInterface = DeleteInterface() self.suggestedInterface = SuggestedInterface(self.twitter) #Create Layout self.layout = QStackedLayout() self.layout.addWidget(self.searchInterface.searchWidget) self.layout.addWidget(self.tableInterface.tableWidget) self.layout.addWidget(self.tweetSearchInterface.tweetsWidget) self.layout.addWidget(self.deleteInterface.deleteWidget) self.layout.addWidget(self.suggestedInterface.suggUserWidget) #Set Main Widget self.widget = QWidget() self.widget.setLayout(self.layout) self.setCentralWidget(self.widget) #Add Action Actions self.searchAction.triggered.connect(self.newSearch) self.tweetAction.triggered.connect(self.tweetSearch) self.modifyAction.triggered.connect(self.modifyBookmarks) self.deleteAction.triggered.connect(self.deleteBookmarks) self.suggestedAction.triggered.connect(self.displaySuggested) self.quitAction.triggered.connect(self.quit_) #Actions for sub-classes self.tableInterface.cancelButton.clicked.connect(self.cancelAction) self.deleteInterface.cancelButton.clicked.connect(self.cancelAction) self.suggestedInterface.cancelButton.clicked.connect(self.cancelAction) def newSearch(self): self.searchInterface.createTableModel() self.layout.setCurrentWidget(self.searchInterface.searchWidget) self.setWindowTitle('Twitter Program') def tweetSearch(self): self.layout.setCurrentWidget(self.tweetSearchInterface.tweetsWidget) self.setWindowTitle('Tweet Search Interface') def cancelAction(self): self.layout.setCurrentWidget(self.searchInterface.searchWidget) self.setWindowTitle('New Search') def modifyBookmarks(self): self.tableInterface.createTableModel() self.layout.setCurrentWidget(self.tableInterface.tableWidget) self.setWindowTitle('Modify Database') def deleteBookmarks(self): self.deleteInterface.createTableModel() self.deleteInterface.createDeleteAction() self.layout.setCurrentWidget(self.deleteInterface.deleteWidget) self.setWindowTitle('Deletion Interface') def displaySuggested(self): self.layout.setCurrentWidget(self.suggestedInterface.suggUserWidget) self.setWindowTitle('Suggested Users') def createTwitterObject(self): consumer_key = getConsumerKey() MY_TWITTER_CREDS = os.path.expanduser('~/.login_credentials') if not os.path.exists(MY_TWITTER_CREDS): oauth_dance("KurtsApp",'Y4zkic6lw0Hu6uB3sNVH4Q', consumer_key, MY_TWITTER_CREDS) oauth_token, oauth_secret = read_token_file(MY_TWITTER_CREDS) #Creation of twitter object with authorized detailes. self.twitter = Twitter(auth=OAuth( oauth_token, oauth_secret, 'Y4zkic6lw0Hu6uB3sNVH4Q', consumer_key)) def quit_(self): window.close()
def __init__(self): super().__init__() #Set Window Title self.setWindowTitle('Twitter Program') #Create Twitter Object self.createTwitterObject() #Create Menubar for interface - Add Each Menu self.menuBar = QMenuBar() self.fileMenu = self.menuBar.addMenu('File') self.searchMenu = self.menuBar.addMenu('Search') self.managementMenu = self.menuBar.addMenu('Database Management') self.suggestedMenu = self.menuBar.addMenu('Suggested Users') self.trendsMenu = self.menuBar.addMenu('Display Trends') #Add Actions to each Menu self.logOutAction = self.fileMenu.addAction('Log Out') self.quitAction = self.fileMenu.addAction('Quit') self.searchAction = self.searchMenu.addAction('New Search') self.tweetAction = self.searchMenu.addAction('Search Users Tweets') self.deleteAction = self.managementMenu.addAction('Delete Entries') self.modifyAction = self.managementMenu.addAction('Modity Databases') self.suggestedAction = self.suggestedMenu.addAction('Display Suggested Users') self.trendsAction = self.trendsMenu.addAction('Display Trends') #Set Menu Bar self.setMenuBar(self.menuBar) #Import Layouts self.searchInterface = SearchWindow(self.twitter) self.tableInterface = TableViewWindow() self.tweetSearchInterface = TweetInterface(self.twitter) self.deleteInterface = DeleteInterface() self.suggestedInterface = SuggestedInterface(self.twitter) #Create Layout self.layout = QStackedLayout() self.layout.addWidget(self.searchInterface.searchWidget) self.layout.addWidget(self.tableInterface.tableWidget) self.layout.addWidget(self.tweetSearchInterface.tweetsWidget) self.layout.addWidget(self.deleteInterface.deleteWidget) self.layout.addWidget(self.suggestedInterface.suggUserWidget) #Set Main Widget self.widget = QWidget() self.widget.setLayout(self.layout) self.setCentralWidget(self.widget) #Add Action Actions self.searchAction.triggered.connect(self.newSearch) self.tweetAction.triggered.connect(self.tweetSearch) self.modifyAction.triggered.connect(self.modifyBookmarks) self.deleteAction.triggered.connect(self.deleteBookmarks) self.suggestedAction.triggered.connect(self.displaySuggested) self.quitAction.triggered.connect(self.quit_) #Actions for sub-classes self.tableInterface.cancelButton.clicked.connect(self.cancelAction) self.deleteInterface.cancelButton.clicked.connect(self.cancelAction) self.suggestedInterface.cancelButton.clicked.connect(self.cancelAction)
fg='#ffffff') newTrailButton.grid(row=2, column=0, columnspan=3, pady=20) newTrailButton.configure(font=("Times New Roman", 18, "bold")) # Search search_box = ScrolledText(root, width=80, height=20, undo=True, autoseparators=True, maxundo=-1) search_box.grid(row=3, column=0, pady=(10, 3), padx=40, columnspan=2) search_box.configure(font=("Times New Roman", 18, "bold")) search_box.bind("<Control-KeyPress>", CtrlKeys.ctrlKeys) search_box.insert( '1.0', "( (Trails.setup.Ca > 10) | (Trails.setup.Na > 10) ) & ( (Trails.setup.Na >= 100) | (Trails.setup.fps == 10) )" ) searchButton = tk.Button(root, text="Search", command=lambda: SearchWindow.search(search_box, wd)) searchButton.grid(row=4, column=0, pady=10, padx=10, columnspan=2) searchButton.configure(font=("Times New Roman", 18, "bold")) ctypes.windll.shcore.SetProcessDpiAwareness(1) root.tk.call('tk', 'scaling', 2.0) root.mainloop()