Beispiel #1
0
 def start_training(self):
     self.disable_buttons(tag=2)
     self.TrainThread = WorkThread.TrainingProcess()
     self.TrainThread.status_info.connect(self.update_statusinfo)
     self.TrainThread.done_percentage.connect(self.update_processBar)
     self.TrainThread.finish_signal.connect(lambda: self.enable_buttons(1))
     self.TrainThread.error_signal.connect(self.error_process)
     self.TrainThread.start()
Beispiel #2
0
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.setWindowIcon(QtGui.QIcon("JiRongLogo.ico"))
        self.comport = None
        self.baudrate = 115200
        self.reply_data = None

        self.work_thread = WorkThread.WorkThread()
        self.work_thread.reply_signal.connect(self.show_return_data)
        self.work_thread.cmd_signal.connect(self.show_write_cmd_data)

        self.about_ui = AboutUIMain.AboutUIClass()
        self.setting_ui = SettingUIMain.SettingUIClass()
        self.ascii_ui = ASCIITABLEMain.ASCIIUIClass()

        regx = QtCore.QRegExp('[a-fA-F0-9+$]+$')
        validator = QtGui.QRegExpValidator(regx)
        self.send_string_lineedit.setValidator(validator)

        self.rescan_comport()

        # signal
        self.rate115200_rbtn.clicked.connect(self.change_baudrate)
        self.rate9600_rbtn.clicked.connect(self.change_baudrate)
        self.rate19200_rbtn.clicked.connect(self.change_baudrate)

        self.rescan_btn.clicked.connect(self.rescan_comport)
        self.connect_btn.clicked.connect(self.open_com)
        self.send_btn.clicked.connect(self.write_cmd)
        self.show_ascii_btn.clicked.connect(lambda: self.ascii_ui.show())

        self.display_chg_btn.clicked.connect(self.change_display_format)
        self.exit_btn.clicked.connect(self.close)
        self.show_about_btn.clicked.connect(lambda: self.about_ui.show())
        self.set_marco_btn.clicked.connect(lambda: self.setting_ui.show())
        self.save_marco_file_btn.clicked.connect(self.save_marco_to_txt)
        self.open_marco_file_btn.clicked.connect(self.open_marco_txt)

        [
            self.setting_ui.__dict__["pushButton_{}".format(
                i)].clicked.connect(self.send_marco) for i in xrange(1, 41)
        ]
        [
            self.__dict__["marco_btn_{}".format(i)].clicked.connect(
                self.send_marco) for i in xrange(1, 41)
        ]
        [
            self.setting_ui.__dict__["cmd_name_lineedit_{}".format(
                i)].textChanged.connect(self.change_marco)
            for i in xrange(1, 41)
        ]
Beispiel #3
0
 def __init__(self):
     ''' 初始化模块字典.
         字典格式: { name: 实例 }
     '''
     self.modules = {}
     ''' 添加 plugin 目录为系统模块路径.'''
     if not os.path.isdir(config.PLUGIN_DIR):
         os.mkdir(config.PLUGIN_DIR)
     sys.path.append(config.PLUGIN_DIR)
     ''' 初始化线程池 '''
     self.wm = WorkThread.WorkManager(config.WORK_THREAD)
     ''' 加载插件模块 '''
     self.wm.add_job(self.load_plugins, None)
Beispiel #4
0
 def picture_predict(self):
     self.disable_buttons(tag=2)
     self.PredictResBrowser.setText(
         "Start predicting, please wait a moment...\n")
     Parameters.input_image_path = self.ImagePath.text()
     try:
         self.PredictThread = WorkThread.PicturePredict()
         self.PredictThread.trigger.connect(self.update_predict)
         self.PredictThread.finish_signal.connect(
             lambda: self.enable_buttons(2))
         self.PredictThread.error_signal.connect(self.error_process)
         self.PredictThread.feed_back.connect(self.handle_feed_back)
         self.PredictThread.start()
     except:
         QtWidgets.QMessageBox.warning(
             self, 'Invalied Image',
             'Invalid Image.\nPlease check your input.')
Beispiel #5
0
 def button_update_data(self, event):
     '''
     更新数据事件方法
     '''
     platform_name = self.get_select_platform_name()
     name = self.get_select_apikey_name()
     if not config.exist_apikey(platform_name, name):
         wx.MessageBox('请先选择API', '警告', wx.OK | wx.ICON_INFORMATION)
         return
     # thread = threading.Thread(target=self.update_data)
     # thread.start()
     self.thread = WorkThread.WorkThread(target=self.update_data,
                                         args=(platform_name, ))
     self.thread.start()
     # 进度条
     self._gauge_value = 0
     self.Bind(wx.EVT_IDLE, self.gauge_progress_update)
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)

        self.setupUi(self)

        # redirect stdout
        sys.stdout = EmittingStream(textWritten=self.normalOutputWritten)        

        # member variables
        self.title = "Mouse Autoclicker v.1.1"
        self.selectedRow  = -1
        self.selectedCol  = -1
        self.recording    = False
        self.picking      = False
        self.hotkeychange = False
        self.savePending  = False
        self.timer        = QtCore.QTimer()

        #Hotkey options
        self.ctrlModifier  = True
        self.altModifier   = False
        self.shiftModifier = False
        self.hotkey        = 'S'

        # create the hook mananger, register callbacks and hook to mouse and keyboard events
        hm = pyHook.HookManager()
        hm.MouseAllButtonsDown = self.OnMouseEvent
        hm.MouseAllButtonsUp = self.OnMouseEvent
        hm.KeyDown = self.OnKeyboardPressEvent
        hm.KeyUp = self.OnKeyboardReleaseEvent
        hm.HookKeyboard()
        hm.HookMouse()
        self.ctrlPressed = False
        self.altPressed = False
        self.shiftPressed = False

        # connect signals / slots of UI controls
        self.btnAdd.clicked.connect(self.buttonAddPressed)
        self.btnLoad.clicked.connect(self.buttonLoadPressed)
        self.btnPick.clicked.connect(self.buttonPickPressed)
        self.btnSave.clicked.connect(self.buttonSavePressed)
        self.btnClear.clicked.connect(self.buttonClearPressed)
        self.btnDelete.clicked.connect(self.buttonDeletePressed)
        self.btnMoveUp.clicked.connect(self.buttonMoveUpPressed)
        self.btnRecord.clicked.connect(self.buttonRecordPressed)
        self.btnUpdate.clicked.connect(self.buttonUpdatePressed)
        self.btnMoveDown.clicked.connect(self.buttonMoveDownPressed)
        self.actionAbout.triggered.connect(self.aboutActionTriggered)
        self.btnStartStopSequence.clicked.connect(self.buttonStartStopPressed)
        self.table.itemClicked.connect(self.cellClicked)
        self.timer.timeout.connect(self.updateMouseCoordstoStatusBar)

        self.btnHotkey.clicked.connect(self.hotkeyChangeRequested)

        self.thread = WorkThread()
        self.thread.finished.connect(self.updateUI)
        self.thread.terminated.connect(self.updateUI)
        self.connect(self.thread, QtCore.SIGNAL("output(int)"), self.highlightRow)

        self.updateHotkeyButton()
        
        self.timer.start(100)
class AutoClicker(QtGui.QMainWindow, Ui_AutoClicker_Window):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)

        self.setupUi(self)

        # redirect stdout
        sys.stdout = EmittingStream(textWritten=self.normalOutputWritten)        

        # member variables
        self.title = "Mouse Autoclicker v.1.1"
        self.selectedRow  = -1
        self.selectedCol  = -1
        self.recording    = False
        self.picking      = False
        self.hotkeychange = False
        self.savePending  = False
        self.timer        = QtCore.QTimer()

        #Hotkey options
        self.ctrlModifier  = True
        self.altModifier   = False
        self.shiftModifier = False
        self.hotkey        = 'S'

        # create the hook mananger, register callbacks and hook to mouse and keyboard events
        hm = pyHook.HookManager()
        hm.MouseAllButtonsDown = self.OnMouseEvent
        hm.MouseAllButtonsUp = self.OnMouseEvent
        hm.KeyDown = self.OnKeyboardPressEvent
        hm.KeyUp = self.OnKeyboardReleaseEvent
        hm.HookKeyboard()
        hm.HookMouse()
        self.ctrlPressed = False
        self.altPressed = False
        self.shiftPressed = False

        # connect signals / slots of UI controls
        self.btnAdd.clicked.connect(self.buttonAddPressed)
        self.btnLoad.clicked.connect(self.buttonLoadPressed)
        self.btnPick.clicked.connect(self.buttonPickPressed)
        self.btnSave.clicked.connect(self.buttonSavePressed)
        self.btnClear.clicked.connect(self.buttonClearPressed)
        self.btnDelete.clicked.connect(self.buttonDeletePressed)
        self.btnMoveUp.clicked.connect(self.buttonMoveUpPressed)
        self.btnRecord.clicked.connect(self.buttonRecordPressed)
        self.btnUpdate.clicked.connect(self.buttonUpdatePressed)
        self.btnMoveDown.clicked.connect(self.buttonMoveDownPressed)
        self.actionAbout.triggered.connect(self.aboutActionTriggered)
        self.btnStartStopSequence.clicked.connect(self.buttonStartStopPressed)
        self.table.itemClicked.connect(self.cellClicked)
        self.timer.timeout.connect(self.updateMouseCoordstoStatusBar)

        self.btnHotkey.clicked.connect(self.hotkeyChangeRequested)

        self.thread = WorkThread()
        self.thread.finished.connect(self.updateUI)
        self.thread.terminated.connect(self.updateUI)
        self.connect(self.thread, QtCore.SIGNAL("output(int)"), self.highlightRow)

        self.updateHotkeyButton()
        
        self.timer.start(100)

    def __del__(self):
        sys.stdout = sys.__stdout__

    #Triggered by pyhook library
    def OnMouseEvent(self, event):
        if self.picking == True:
            self.picking = False
            self.txtXcoord.setText(str(event.Position[0]))
            self.txtYcoord.setText(str(event.Position[1]))

            if event.Message == 513:
                self.cmbClickType.setCurrentIndex(1)
            elif event.Message == 519:
                self.cmbClickType.setCurrentIndex(2)
            elif event.Message == 516:
                self.cmbClickType.setCurrentIndex(3)

            self.setWindowState(QtCore.Qt.WindowActive)
            return False
        if self.recording == True:
            xcoord = event.Position[0]
            ycoord = event.Position[1]
            delay  = self.spinDelay.value()
            click  = 0

            if event.Message == 513:
                click = 1
            elif event.Message == 519:
                click = 2
            elif event.Message == 516:
                click = 3
            if click != 0:
                self.addTableEntry(click, xcoord, ycoord, delay, 1)

        return True   

    def OnKeyboardPressEvent(self, event):
        #Update modifier key status
        if event.Key == "Lcontrol" or event.Key == "Rcontrol":
            self.ctrlPressed = True
        if event.Key == "Lmenu" or event.Key == "Rmenu":
            self.altPressed = True
        if event.Key == "Lshift" or event.Key == "Rshift":
            self.shiftPressed = True

        #Check if mathching hotkey was pressed
        if self.ctrlModifier == True and self.ctrlPressed == False:
            return True
        if self.altModifier == True and self.altPressed == False:
            return True
        if self.shiftModifier == True and self.shiftPressed == False:
            return True
        if event.Key.upper() != self.hotkey.upper():
            return True

        #Hotkey matched. Do proper actions
        if self.recording == True:
            self.stopRecording()
        if self.thread.isRunning() == True:
            self.thread.stopclicking()
            win32api.SetCursorPos((self.x() + self.width() / 2, self.y() + self.height() / 2))   

        return True

    def OnKeyboardReleaseEvent(self, event):
        if event.Key == "Lcontrol" or event.Key == "Rcontrol":
            self.ctrlPressed = False
        if event.Key == "Lmenu" or event.Key == "Rmenu":
            self.altPressed = False
        if event.Key == "Lshift" or event.Key == "Rshift":
            self.shiftPressed = False
        return True

    def normalOutputWritten(self, text):       
        if len(text) == 1 and ord(str(text)) == 10:
            return
        self.statusBar.showMessage(text, 0)

    def updateHotkeyButton(self):
        hotkeytext = ""
        if self.ctrlModifier == True:
            hotkeytext += "CTRL+"
        if self.altModifier == True:
            hotkeytext += "ALT+"
        if self.shiftModifier == True:
            hotkeytext += "SHIFT+"
        hotkeytext += self.hotkey

        self.btnHotkey.setText(hotkeytext)

    def highlightRow(self, index):
        self.table.selectRow(index)

    def updateMouseCoordstoStatusBar(self):
        pos = QPoint(QCursor.pos())
        print "Mouse Position: (%d, %d)" % (pos.x(), pos.y())

    def hotkeyChangeRequested(self):
        dialog = HotKey.HotKeyDialog()
        dialog.setHotkey([self.ctrlModifier, self.altModifier, self.shiftModifier, self.hotkey])
        if dialog.exec_():
            result = dialog.getHotKey()
            self.ctrlModifier  = result[0]
            self.altModifier   = result[1]
            self.shiftModifier = result[2]
            self.hotkey        = result[3]
            self.updateHotkeyButton()

    def aboutActionTriggered(self):
        dialog = QDialog()
        dialog.ui = Ui_About()
        dialog.ui.setupUi(dialog)
        dialog.setAttribute(QtCore.Qt.WA_DeleteOnClose)
        dialog.exec_()

    def buttonPickPressed(self):
        self.setWindowState(QtCore.Qt.WindowMinimized)
        self.picking = True

    def buttonAddPressed(self):
        try:
            xcoord = int(self.txtXcoord.text())
            ycoord = int(self.txtYcoord.text())
            repeat = self.spinRepeat.value()
            duration = self.spinDelay.value()
            click = self.cmbClickType.currentIndex()

            if click == 0:
                raise InvalidComboBoxValue

            self.addTableEntry(click, xcoord, ycoord, duration, repeat)

            #Reset fields
            self.txtXcoord.setText("0")
            self.txtYcoord.setText("0")
            self.spinDelay.setValue(500)
            self.spinRepeat.setValue(1)
            self.cmbClickType.setCurrentIndex(0)

            self.btnStartStopSequence.setEnabled(True)
            self.btnClear.setEnabled(True)
            self.btnMoveDown.setEnabled(False)
            self.btnMoveUp.setEnabled(False)
            self.btnDelete.setEnabled(False)

            self.savePending = True
        except ValueError:
            QtGui.QMessageBox.question(self, 'Error', "Invalid values given. Please check your parameters.", QtGui.QMessageBox.Ok, QtGui.QMessageBox.Ok)
            return
        except InvalidComboBoxValue:
            QtGui.QMessageBox.question(self, 'Error', "Please choose a click type.", QtGui.QMessageBox.Ok, QtGui.QMessageBox.Ok)
            return

    def buttonUpdatePressed(self):
        if self.selectedRow != -1 and self.selectedCol != -1:
            repeat = self.spinRepeat.value()
            duration = self.spinDelay.value()
            xcoord = int(self.txtXcoord.text())
            ycoord = int(self.txtYcoord.text())
            click = self.cmbClickType.currentIndex()

            self.updateTableEntry(self.selectedRow, click, xcoord, ycoord, duration, repeat)
            self.selectedRow = -1
            self.selectedCol = -1
            self.btnMoveDown.setEnabled(False)
            self.btnMoveUp.setEnabled(False)
            self.btnDelete.setEnabled(False)

    def buttonLoadPressed(self):
        filename = QtGui.QFileDialog.getOpenFileName(self, "Load Autoclick Sequence", "", "Sequence files (*.seq)", "Sequence files (*.seq)")
        if filename == "":
            return
        if self.savePending == True or self.table.rowCount() != 0:
            if self.confirm("About to clear the current sequence. Are you sure?") == True:
                self.clearTable()
            else:
                return

        self.load(filename)
        self.enableUI()

    def buttonSavePressed(self):
        filename = QtGui.QFileDialog.getSaveFileName(self, "Save sequence", "", "Sequence files (*.seq)", "Sequence files (*.seq)")

        if filename == "":
            return
        else:
            self.save(filename)

    def buttonRecordPressed(self):
        if "Record Sequence" in self.btnRecord.text():
            self.startRecording()
        else:
            self.table.removeRow(self.table.rowCount() - 1)
            self.stopRecording()

    def startRecording(self):
        if self.savePending == True or self.table.rowCount() != 0:
            if self.confirm("About to clear the current sequence. Are you sure?") == True:
                self.clearTable()
            else:
                return

        self.disableUI()
        self.btnRecord.setText("Stop Recording")
        self.btnRecord.setEnabled(True)

        self.recording = True
        self.savePending = True
        self.setWindowState(QtCore.Qt.WindowMinimized)
        self.setWindowTitle("Press F12 to stop")

    def stopRecording(self):
        self.enableUI()
        self.setWindowState(QtCore.Qt.WindowActive)
        self.setWindowTitle(self.title)
        self.btnRecord.setText("Record Sequence")

        self.btnMoveDown.setEnabled(False)
        self.btnMoveUp.setEnabled(False)
        self.btnDelete.setEnabled(False)

        if self.table.rowCount() == 0:
            self.savePending = False
            self.btnStartStopSequence.setEnabled(False)

        self.recording = False

    def buttonStartStopPressed(self):
        if "Start" in self.btnStartStopSequence.text():
            self.disableUI()
            self.table.selectRow(0)
            self.btnStartStopSequence.setText("Stop")
            self.btnStartStopSequence.setEnabled(True)
            self.setWindowState(QtCore.Qt.WindowMinimized)
            self.setWindowTitle("Press F12 to stop")
            self.thread.startclicking(self.tableToList(), self.spinRerun.value(), self.spinRerunDelay.value())
        else:
            self.thread.stopclicking()

    def buttonMoveUpPressed(self):
        row = self.table.currentRow()

        if row != 0:
            self.table.insertRow(row - 1)
            for i in range(self.table.columnCount()):
                self.table.setItem(row - 1, i, self.table.takeItem(row + 1, i))
            self.table.removeRow(row + 1)
            self.table.setCurrentCell(row - 1, 0)
            self.table.selectRow(self.table.currentRow())

    def buttonMoveDownPressed(self):
        row = self.table.currentRow()

        if row != self.table.rowCount() - 1:
            self.table.insertRow(row + 2)
            for i in range(self.table.columnCount()):
                self.table.setItem(row + 2, i, self.table.takeItem(row, i))
            self.table.removeRow(row)
            self.table.setCurrentCell(row + 1, 0)
            self.table.selectRow(self.table.currentRow())

    def buttonDeletePressed(self):
        self.table.removeRow(self.table.currentRow())

        if self.table.rowCount() == 0:
            self.btnStartStopSequence.setEnabled(False)
            self.btnMoveDown.setEnabled(False)
            self.btnMoveUp.setEnabled(False)
            self.btnDelete.setEnabled(False)
            self.btnClear.setEnabled(False)
            self.savePending = False

    def buttonClearPressed(self):
        if self.confirm("About to clear the current sequence. Are you sure?") == True:
            self.clearTable()
            self.savePending = False
        else:
            return

    def cellClicked(self, item):
        self.selectedRow = item.row()
        self.selectedCol = item.column()

        clicktype = self.table.item(self.selectedRow, 0).text()
        xcoord    = self.table.item(self.selectedRow, 1).text()
        ycoord    = self.table.item(self.selectedRow, 2).text()
        duration  = int(self.table.item(self.selectedRow, 3).text())
        repeat    = int(self.table.item(self.selectedRow, 4).text())

        self.txtXcoord.setText(xcoord)
        self.txtYcoord.setText(ycoord)
        self.spinDelay.setValue(duration)
        self.spinRepeat.setValue(repeat)

        self.btnMoveDown.setEnabled(True)
        self.btnMoveUp.setEnabled(True)
        self.btnDelete.setEnabled(True)

        if clicktype == "Left Click":
            self.cmbClickType.setCurrentIndex(1)
        elif clicktype == "Middle Click":
            self.cmbClickType.setCurrentIndex(2)
        else:
            self.cmbClickType.setCurrentIndex(3)

    def clearTable(self):
        while self.table.rowCount() > 0:
            self.table.removeRow(0)

        self.btnStartStopSequence.setEnabled(False)
        self.btnMoveUp.setEnabled(False)
        self.btnMoveDown.setEnabled(False)
        self.btnDelete.setEnabled(False)
        self.btnClear.setEnabled(False)

    def tableToList(self):
        list = []

        for i in range(self.table.rowCount()):
            templist = []
            for j in range(self.table.columnCount()):
                templist.append(str(self.table.item(i, j).text()))
            list.append(templist)

        return list

    def listToTable(self, list):
        for i in range(len(list[0])):
            self.table.insertRow(i)
            for j in range(len(list[0][i])):
                self.table.setItem(i , j, QtGui.QTableWidgetItem(str(list[0][i][j])))
                self.table.item(i, j).setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter)

    def updateTableEntry(self, row, click, xcoord, ycoord, duration, repeat):
        clicktype = self.clickTypetoAscii(click)
        self.insertRow(row, clicktype, xcoord, ycoord, duration, repeat)

    def addTableEntry(self, click, xcoord, ycoord, duration, repeat):
        clicktype = self.clickTypetoAscii(click)
        row = self.table.rowCount()
        self.table.insertRow(row)
        self.insertRow(row, clicktype, xcoord, ycoord, duration, repeat)

    def insertRow(self, row, clicktype, xcoord, ycoord, duration, repeat):
        self.table.setItem(row , 1, QtGui.QTableWidgetItem(str(xcoord)))
        self.table.setItem(row , 2, QtGui.QTableWidgetItem(str(ycoord)))
        self.table.setItem(row , 4, QtGui.QTableWidgetItem(str(repeat)))
        self.table.setItem(row , 3, QtGui.QTableWidgetItem(str(duration)))
        self.table.setItem(row , 0, QtGui.QTableWidgetItem(str(clicktype)))
        self.table.item(row, 0).setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter)
        self.table.item(row, 1).setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter)
        self.table.item(row, 2).setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter)
        self.table.item(row, 3).setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter)
        self.table.item(row, 4).setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter)

    def clickTypetoAscii(self, click):
        try:
            if click == 1:
                return "Left Click"
            elif click == 2:
                return "Middle Click"
            else:
                return "Right Click"
        except ValueError:
            return "Left Click"

    def disableUI(self):
        for w in self.findChildren(QtGui.QPushButton):
            w.setEnabled(False)
        for w in self.findChildren(QtGui.QLineEdit):
            w.setEnabled(False)

        self.cmbClickType.setEnabled(False)
        self.table.setEnabled(False)

    def enableUI(self):
        for w in self.findChildren(QtGui.QPushButton):
            w.setEnabled(True)
        for w in self.findChildren(QtGui.QLineEdit):
            w.setEnabled(True)

        self.cmbClickType.setEnabled(True)
        self.table.setEnabled(True)

    def updateUI(self):
        self.enableUI()
        self.setWindowState(QtCore.Qt.WindowActive)
        self.setWindowTitle(self.title)
        self.btnStartStopSequence.setText("Start")
        win32api.SetCursorPos((self.x() + self.width() / 2, self.y() + self.height() / 2))

    def load(self, fileName):
        list = []

        with open(fileName, "rb") as fileInput:
            reader = csv.reader(fileInput)
            templist = []
            for row in reader:
                items = [ str(field) for field in row ]
                templist.append(items)
            list.append(templist)

        self.listToTable(list)

    def save(self, fileName):
        list = self.tableToList()

        with open(fileName, "wb") as fileOutput:
            writer = csv.writer(fileOutput)
            writer.writerows(list)

        self.savePending = False

    def confirm(self, question):
        reply = QtGui.QMessageBox.question(self, 'Confirmation Required', question, QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No)

        if reply == QtGui.QMessageBox.Yes:
            return True
        else:
            return False