コード例 #1
0
    def help(self):
        """Help for the widget."""

        import Dialog
        d = Dialog.Dialog(
            None, {
                'title':
                'Viewer help',
                'text':
                'Button-1: Translate\n'
                'Button-2: Rotate\n'
                'Button-3: Zoom\n'
                'Reset: Resets transformation to identity\n',
                'bitmap':
                'questhead',
                'default':
                0,
                'strings': ('Done', 'Ok')
            })
コード例 #2
0
 def get(self):
     """
     @returns: the current value displayed in the field
     @rtype: C{int}
     @raises ValueError: if the current value is not a valid
                         number or is not within the specified limits
     """
     value = FloatEntry.get(self)
     ivalue = int(value)
     if ivalue != value:
         Dialog.Dialog(self,
                       title='Illegal value',
                       text='The value of "' + self.name +
                       '" must be an integer.',
                       bitmap='warning',
                       default=0,
                       strings=('Cancel', ))
         raise ValueError
     return ivalue
コード例 #3
0
 def check():
     user_data.execute("select id, pw from user")
     for id, pw in user_data.fetchall():
         pass
     if login_id.get() == id and login_pw.get() == pw:
         l1.pack_forget()
         llf.pack_forget()
         llf2.pack_forget()
         llf3.pack_forget()
         note.pack()
         m2.entryconfigure(u'セキュリティ', state = 'normal')
         m2.entryconfigure(u'ユーザー管理', state = 'normal')
         cur.execute("select site from account")
         for site in cur.fetchall():
             lb.insert('end', site)
             deletelb.insert('end', site)
     else:
         Dialog.Dialog(root, title = 'error', bitmap = 'info',
                       text = u'ID又はパスワードが違います',
                       strings = ['OK'], default = 0)
コード例 #4
0
def popConfirmDeposit():

    depoistUserInfo = None
    if (len(depositNameField.get()) > 0):
        depoistUserInfo = DBOperations.getUserInfoByName(
            depositNameField.get())
    elif (len(depositPhoneField.get()) > 0):
        depoistUserInfo = DBOperations.getUserInfoByMobile(
            depositPhoneField.get())
    elif (len(depositNumberField.get()) > 0):
        depoistUserInfo = DBOperations.getUserInfoByNO(
            depositNumberField.get())
    if (depoistUserInfo != None):
        addWindow = Toplevel()
        addWindow.wm_title('确认信息')
        addWindow.geometry('200x100+600+150')

        footer = Frame(addWindow)
        footer.pack(side='bottom', fill=X)

        #姓名
        printerStr = '姓名:'+ depoistUserInfo.name + '\n' + '项目: 充值' + '\n' \
                      + '总消费金额:' + str(depositAmountField.get()) + '¥'
        printerText = Label(addWindow, text=printerStr,
                            bg='white').pack(side='top')
        cancelBtn = Button(footer,
                           text='取消',
                           command=lambda m=addWindow: termiantWindow(m))
        printBtn = Button(
            footer,
            text='确定',
            command=lambda m=addWindow: confirmDeposit(m, depoistUserInfo))
        cancelBtn.pack(side='left', anchor=SW)
        printBtn.pack(side='right', anchor=SE)
    else:
        Dialog(frame,
               title='提示',
               text='请补全信息',
               bitmap=DIALOG_ICON,
               default=0,
               strings=('取消', '确定'))
コード例 #5
0
 def On_Send_Clear(self, event):
     global MSG_RECV_GROUP
     rsp = None
     msg = self.msg_send.GetValue().encode('utf-8')
     send_data = Constant.SEND_RECV_REQ_SUC_RSP_GRO + \
                 chr(len(str(Login.USERID))) + \
                 str(Login.USERID) + \
                 chr(len(str(FriendList.GROUP_ID))) + \
                 str(FriendList.GROUP_ID) + \
                 chr(len(msg)) + \
                 msg
     try:
         sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         sock.connect((Login.SERVER_IP, int(Login.SERVER_PORT)))
         sock.send(send_data)
         rsp = sock.recv(16)
     except Exception, e:
         self.isSuccess = False
         dialog = Dialog.Dialog(None, u"错误", e.message, 200, 150, 30, 60)
         dialog.Centre()
         dialog.Show()
コード例 #6
0
def login():
    aa = actname.get()
    bb = actpwc.get()
    try:
        a = open('%spw.dat' % aa, 'r')
    except IOError:
        Dialog.Dialog(root,
                      title='error',
                      bitmap='info',
                      text=u'入力したIDが存在しないかパスワードが違います',
                      strings=['OK'],
                      default=0)
        actpwc.set('')
    else:
        for i in a:
            i == i
        if aa and bb == i:
            filecheck()
            actpwc.set('')
            w2.destroy()
            a.close()
コード例 #7
0
def out():
    a = open('%setc1.dat' % actname.get(), 'r')
    for i in a:
        i == i
    if i == 'able':
        global w3
        w3 = Toplevel()
        lb = Listbox(w3, width=60)
        lb.insert(
            END,
            'まずウィンドウを出すモジュールとしてTkinterがある。from Tkinter import *と打てば使えるようになる')
        lb.insert(END, '親ウィンドウを作る設定をする。root = Tk()でおk')
        lb.insert(
            END, '次にウィンドウに配置する文字はLabelを使う。Label(root, text = '
            ').pack() textに書きたい文字を書く')
        lb.insert(
            END, 'ウィンドウにボタンを配置する場合はButton。Button(root, text = '
            ', command = ).pack() commandはボタンを押したときの処理')
        lb.insert(
            END,
            '文字入力をさせる場合はEntry。ここでa = StringVar()を作る必要がある。Entry(root, textvariable = a).pack()'
        )
        lb.insert(END, '処理はたいていdefでdef 関数名():Tab 処理となる。')
        lb.insert(
            END, '.pack()を忘れるとボタンやラベルは表示されない。ボタンやラベルに変数をつけて、変数.pack()でも構わない。')
        lb.insert(END, '最後に必ずroot.mainloop()を入れないとウィンドウすら出てこない。続きはⅡで。')
        sb1 = Scrollbar(w3, orient='v', command=lb.yview)
        sb2 = Scrollbar(w3, orient='h', command=lb.xview)
        lb.configure(yscrollcommand=sb1.set)
        lb.configure(xscrollcommand=sb2.set)
        lb.grid(row=1, column=0, sticky='nsew')
        sb1.grid(row=1, column=1, sticky='ns')
        sb2.grid(row=2, column=0, sticky='ew')
    else:
        Dialog.Dialog(root,
                      title='alert',
                      bitmap='info',
                      text=u'パックを購入してください',
                      strings=['OK'],
                      default=0)
コード例 #8
0
	def setTarget(self, window):
		if self.dialog == -1:
			self.gotoPattern()
		else:
			key = pygame.key.get_pressed()
			dialogobj = Dialog.Dialog(100, self.dialogfile, self.dialog)
			if key[pygame.K_SPACE]:
				if not self.spacepressed:
					self.dialog = (self.dialog + 2) % dialogobj.maxLines() - 1
					if self.dialog == -1:
						self.entities[0].moving = True
					self.spacepressed = True
			else:
				self.spacepressed = False
			dialogobj.box(window)
			target = [self.position.x, self.position.y]
			angle = 0
			if self.entities[0].position.x != self.position.x:
				angle = -math.atan((self.entities[0].position.y - self.position.y)/(self.entities[0].position.x - self.position.x))
			else:
				if self.position.y >= self.entities[0].position.y:
					angle = -math.pi/2
				else:
					angle = math.pi/2

			if self.position.x <= self.entities[0].position.x:
				if angle >= math.pi/4:
					self.anim = 2
				elif angle <= -math.pi/4:
					self.anim = 0
				else:
					self.anim = 3
			else:
				if angle >= math.pi/4:
					self.anim = 0
				elif angle <= -math.pi/4:
					self.anim = 2
				else:
					self.anim = 1
コード例 #9
0
    def generateInterrogationWarnings(self):
        dialogItemList = []
        finalWarningDialog = Dialog('InterrogationWarnings')

        itemIW1 = OutputItem('IW1')
        outputAction = OutputAction('', '')
        pattern = Pattern(
            'This is your first warning. You have two attemps left')
        outputAction.setPattern(pattern)
        itemIW1.setOutputAction(outputAction)
        dialogItemList.append(itemIW1)

        itemIW2 = OutputItem('IW2')
        outputAction = OutputAction('', '')
        pattern = Pattern(
            'This is your second warning. You better get this right')
        outputAction.setPattern(pattern)
        itemIW2.setOutputAction(outputAction)
        dialogItemList.append(itemIW2)

        finalWarningDialog.setDialogItemList(dialogItemList)
        self.dialogList.append(finalWarningDialog)
コード例 #10
0
ファイル: FilePaths.py プロジェクト: pombreda/comp304
def doTempCleanupChoice():
    numTempFiles = 0
    for dir in os.listdir(TEMP_FILE_PATH):
        for file in os.listdir(os.path.join(TEMP_FILE_PATH, dir)):
            numTempFiles += 1
    if (numTempFiles > 10):
        dialog = Dialog.Dialog(
            None, {
                'title':
                "Temporary Files",
                'text':
                str(numTempFiles) + " temporary files were found" +
                " in the session folder:\n" + TEMP_FILE_PATH +
                "\n\nIf you are NOT running another instance of AToM3" +
                " you may safely delete them",
                'bitmap':
                '',
                'default':
                1,
                'strings': ('Delete!', 'Cancel')
            })
        if (dialog.num == 0):
            TempFileManager().destroyDirContents(TEMP_FILE_PATH)
コード例 #11
0
def out2():
    a = open('%setc2.dat' % actname.get(), 'r')
    for i in a:
        i == i
    if i == 'able':
        global w3
        w3 = Toplevel()
        lb = Listbox(w3, width=60)
        lb.insert(END, '前回は配置だけだったが、今回は処理について説明:')
        sb1 = Scrollbar(w3, orient='v', command=lb.yview)
        sb2 = Scrollbar(w3, orient='h', command=lb.xview)
        lb.configure(yscrollcommand=sb1.set)
        lb.configure(xscrollcommand=sb2.set)
        lb.grid(row=1, column=0, sticky='nsew')
        sb1.grid(row=1, column=1, sticky='ns')
        sb2.grid(row=2, column=0, sticky='ew')
    else:
        Dialog.Dialog(root,
                      title='alert',
                      bitmap='info',
                      text=u'パックを購入してください',
                      strings=['OK'],
                      default=0)
コード例 #12
0
def searchsys():
    try:
        rf2.pack_forget()
        rf3.pack_forget()
        rf4.pack_forget()
    except:
        pass
    cur.execute('select count (*) from account where site like "%s"' % pwsearch.get())
    for count in cur.fetchone():
        if count > 0:
            cur.execute('select id, pw, site from account where site like "%s"' % pwsearch.get())
            for id, pw, site in cur.fetchall():
                r_id.set(id)
                r_pw.set(pw)
                r_title.set(site)
                rf2.pack()
                rf3.pack()
                rf4.pack()
        else:
            Dialog.Dialog(root, title = 'error', bitmap = 'info',
                          text = u'一致するアカウントがありません',
                          strings = ['OK'], default = 0)
    os.chdir(currentdir)
コード例 #13
0
def popConfirm():

    addUserInfo = DBOperations.getUserInfoByName(memberNameField.get())
    if (addUserInfo == None):
        addUserInfo = DBOperations.getUserInfoByMobile(memberPhoneField.get())
    if (addUserInfo == None):
        addUserInfo = DBOperations.getUserInfoByNO(memberNOField.get())

    #姓名
    if (addUserInfo == None):
        addWindow = Toplevel()
        addWindow.wm_title('确认信息')
        addWindow.geometry('200x100+600+150')

        footer = Frame(addWindow)
        footer.pack(side='bottom', fill=X)

        printerStr = '姓名:'+ memberNameField.get() \
                     + '\n' + '项目: 添加用户' + '\n' \
                    + '初始金额:' + str(memberAmontField.get()) +'¥'
        printerText = Label(addWindow, text=printerStr,
                            bg='white').pack(side='top')
        cancelBtn = Button(footer,
                           text='取消',
                           command=lambda m=addWindow: termiantWindow(m))
        printBtn = Button(footer,
                          text='确定',
                          command=lambda m=addWindow: confirmAdd(m))
        cancelBtn.pack(side='left', anchor=SW)
        printBtn.pack(side='right', anchor=SE)
    else:
        dialogView = Dialog(frame,
                            title='提示',
                            text='该用户已经存在',
                            bitmap=DIALOG_ICON,
                            default=0,
                            strings=('取消', '确定'))
コード例 #14
0
def showHelpSelectionDialog(helpFileNameList):
    """
  Please call HelpDialog, not this method
  Multiple help documents? How do we choose? Dialog time!
  """
    root = None
    title = 'Help Dialog'
    text = 'Several help documents are available...'
    buttons = helpFileNameList + ['Cancel']
    default = 0
    bitmap = ''

    response = Dialog.Dialog(
        root, {
            'title': title,
            'text': text,
            'bitmap': bitmap,
            'default': default,
            'strings': buttons
        }).num
    # User cancelled
    if (response == len(helpFileNameList)): return
    # Display the help text
    showHelpText(helpFileNameList[response])
コード例 #15
0
def errorPanel(*L):
    """Pop up an error panel, wait for a mouse click, then return.

      [ (we can pop up new windows) and
        (L is a list of strings) ->
          <screen>  :=  <screen> with a new popup displaying the
                concatenation of the elements of L, with a `dismiss'
                button ]
    """

    #-- 1 --
    # [ message  :=  concatenation of elements of L ]
    message = "".join(L)

    #-- 2 --
    # [ we can pop up new windows ->
    #     <screen>  :=  <screen> with a new popup displaying message,
    #                   with a `dismiss' button ]
    d = Dialog(
        title="Message",
        bitmap="info",
        text=message,
        default=0,  # First button is the default
        strings=("OK", ))  # Only one button: OK
コード例 #16
0
    Entry(w2, textvariable=actname).pack()
    Entry(w2, textvariable=actpwc, show='*').pack()
    Label(w2, textvariable=buf).pack()
    b1 = Button(w2, text=u'ログイン', command=homet)
    b1.pack()
    b1.bind('<Return>', homett)
    b1.focus_set()
    Button(w2, text=u'終了', command=sys.exit).pack()


try:
    of = open('License.dat', 'r')
except IOError:
    Dialog.Dialog(root,
                  title='alert',
                  bitmap='info',
                  text=u'ライセンス認証プログラムでライセンス認証されていないため、本ソフトを起動できませんでした。終了します',
                  strings=['OK'],
                  default=0)
    sys.exit()
else:
    for of2 in of:
        of2 == of2
    if of2 == 'disable':
        Dialog.Dialog(
            root,
            title='alert',
            bitmap='info',
            text=u'ライセンス認証プログラムでライセンス認証されていないため、本ソフトを起動できませんでした。終了します',
            strings=['OK'],
            default=0)
        sys.exit()
コード例 #17
0
def save():
    os.chdir(currentdir) 
    try:
        os.chdir("Timetable")
    except WindowsError:
        Dialog.Dialog(root, title = u'エラー', bitmap = 'info',
                          text = u'時間割のデータが見つかりません',
                          strings = ['OK'], default = 0)
    else:
        if st3.get() == '':
            st3.set(u'タイトルがありません')
        f1 = codecs.open('title.dat', 'w', 'shift-jis')
        f1.write(st3.get())
        f1.close()
        if st4.get() == '':
            st4.set(' ')
        f2 = codecs.open('time of lesson1.dat', 'w', 'shift-jis')
        f2.write(st4.get())
        f2.close()
        if st5.get() == '':
            st5.set(' ')
        f3 = codecs.open('time of lesson2.dat', 'w', 'shift-jis')
        f3.write(st5.get())
        f3.close()
        if st6.get() == '':
            st6.set(' ')
        f4 = codecs.open('time of lesson3.dat', 'w', 'shift-jis')
        f4.write(st6.get())
        f4.close()
        if st7.get() == '':
            st7.set(' ')
        f5 = codecs.open('time of lesson4.dat', 'w', 'shift-jis')
        f5.write(st7.get())
        f5.close()
        if st8.get() == '':
            st8.set(' ')
        f6 = codecs.open('time of lesson5.dat', 'w', 'shift-jis')
        f6.write(st8.get())
        f6.close()
        if st9.get() == '':
            st9.set(' ')
        f7 = codecs.open('time of lesson6.dat', 'w', 'shift-jis')
        f7.write(st9.get())
        f7.close()
        if st10.get() == '':
            st10.set(' ')
        f8 = codecs.open('Monper1.dat', 'w', 'shift-jis')
        f8.write(st10.get())
        f8.close()
        if st11.get() == '':
            st11.set(' ')
        f9 = codecs.open('Monper2.dat', 'w', 'shift-jis')
        f9.write(st11.get())
        f9.close()
        if st12.get() == '':
            st12.set(' ')
        f10 = codecs.open('Monper3.dat', 'w', 'shift-jis')
        f10.write(st12.get())
        f10.close()
        if st13.get() == '':
            st13.set(' ')
        f11 = codecs.open('Monper4.dat', 'w', 'shift-jis')
        f11.write(st13.get())
        f11.close()
        if st14.get() == '':
            st14.set(' ')
        f12 = codecs.open('Monper5.dat', 'w', 'shift-jis')
        f12.write(st14.get())
        f12.close()
        if st15.get() == '':
            st15.set(' ')
        f13 = codecs.open('Monper6.dat', 'w', 'shift-jis')
        f13.write(st15.get())
        f13.close()
        if st16.get() == '':
            st16.set(' ')
        f14 = codecs.open('Tueper1.dat', 'w', 'shift-jis')
        f14.write(st16.get())
        f14.close()
        if st17.get() == '':
            st17.set(' ')
        f15 = codecs.open('Tueper2.dat', 'w', 'shift-jis')
        f15.write(st17.get())
        f15.close()
        if st18.get() == '':
            st18.set(' ')
        f16 = codecs.open('Tueper3.dat', 'w', 'shift-jis')
        f16.write(st18.get())
        f16.close()
        if st19.get() == '':
            st19.set(' ')
        f17 = codecs.open('Tueper4.dat', 'w', 'shift-jis')
        f17.write(st19.get())
        f17.close()
        if st20.get() == '':
            st20.set(' ')
        f18 = codecs.open('Tueper5.dat', 'w', 'shift-jis')
        f18.write(st20.get())
        f18.close()
        if st21.get() == '':
            st21.set(' ')
        f19 = codecs.open('Tueper6.dat', 'w', 'shift-jis')
        f19.write(st21.get())
        f19.close()
        if st22.get() == '':
            st22.set(' ')
        f20 = codecs.open('Wedper1.dat', 'w', 'shift-jis')
        f20.write(st22.get())
        f20.close()
        if st23.get() == '':
            st23.set(' ')
        f21 = codecs.open('Wedper2.dat', 'w', 'shift-jis')
        f21.write(st23.get())
        f21.close()
        if st24.get() == '':
            st24.set(' ')
        f22 = codecs.open('Wedper3.dat', 'w', 'shift-jis')
        f22.write(st24.get())
        f22.close()
        if st25.get() == '':
            st25.set(' ')
        f23 = codecs.open('Wedper4.dat', 'w', 'shift-jis')
        f23.write(st25.get())
        f23.close()
        if st26.get() == '':
            st26.set(' ')
        f24 = codecs.open('Wedper5.dat', 'w', 'shift-jis')
        f24.write(st26.get())
        f24.close()
        if st27.get() == '':
            st27.set(' ')
        f25 = codecs.open('Wedper6.dat', 'w', 'shift-jis')
        f25.write(st27.get())
        f25.close()
        if st28.get() == '':
            st28.set(' ')
        f26 = codecs.open('Thuper1.dat', 'w', 'shift-jis')
        f26.write(st28.get())
        f26.close()
        if st29.get() == '':
            st29.set(' ')
        f27 = codecs.open('Thuper2.dat', 'w', 'shift-jis')
        f27.write(st29.get())
        f27.close()
        if st30.get() == '':
            st30.set(' ')
        f28 = codecs.open('Thuper3.dat', 'w', 'shift-jis')
        f28.write(st30.get())
        f28.close()
        if st31.get() == '':
            st31.set(' ')
        f29 = codecs.open('Thuper4.dat', 'w', 'shift-jis')
        f29.write(st31.get())
        f29.close()
        if st32.get() == '':
            st32.set(' ')
        f30 = codecs.open('Thuper5.dat', 'w', 'shift-jis')
        f30.write(st32.get())
        f30.close()
        if st33.get() == '':
            st33.set(' ')
        f31 = codecs.open('Thuper6.dat', 'w', 'shift-jis')
        f31.write(st33.get())
        f31.close()
        if st34.get() == '':
            st34.set(' ')
        f32 = codecs.open('Friper1.dat', 'w', 'shift-jis')
        f32.write(st34.get())
        f32.close()
        if st35.get() == '':
            st35.set(' ')
        f33 = codecs.open('Friper2.dat', 'w', 'shift-jis')
        f33.write(st35.get())
        f33.close()
        if st36.get() == '':
            st36.set(' ')
        f34 = codecs.open('Friper3.dat', 'w', 'shift-jis')
        f34.write(st36.get())
        f34.close()
        if st37.get() == '':
            st37.set(' ')
        f35 = codecs.open('Friper4.dat', 'w', 'shift-jis')
        f35.write(st37.get())
        f35.close()
        if st38.get() == '':
            st38.set(' ')
        f36 = codecs.open('Friper5.dat', 'w', 'shift-jis')
        f36.write(st38.get())
        f36.close()
        if st39.get() == '':
            st39.set(' ')
        f37 = codecs.open('Friper6.dat', 'w', 'shift-jis')
        f37.write(st39.get())
        f37.close()
        if st40.get() == '':
            st40.set(' ')
        f38 = codecs.open('Satper1.dat', 'w', 'shift-jis')
        f38.write(st40.get())
        f38.close()
        if st41.get() == '':
            st41.set(' ')
        f39 = codecs.open('Satper2.dat', 'w', 'shift-jis')
        f39.write(st40.get())
        f39.close()
        if st42.get() == '':
            st42.set(' ')
        f40 = codecs.open('Satper3.dat', 'w', 'shift-jis')
        f40.write(st42.get())
        f40.close()
        if st43.get() == '':
            st43.set(' ')
        f41 = codecs.open('Satper4.dat', 'w', 'shift-jis')
        f41.write(st43.get())
        f41.close()
        if st44.get() == '':
            st44.set(' ')
        f42 = codecs.open('Satper5.dat', 'w', 'shift-jis')
        f42.write(st42.get())
        f42.close()
        if st45.get() == '':
            st45.set(' ')
        f43 = codecs.open('Satper6.dat', 'w', 'shift-jis')
        f43.write(st45.get())
        f43.close()
        os.chdir(currentdir)
コード例 #18
0
def complain(ctext):
    d = TinyDialog.Dialog(title="Warning",
                          text=ctext,
                          bitmap='warning',
                          default=0,
                          strings=("OK", ))
コード例 #19
0
ファイル: Pyquiter.py プロジェクト: drewp/headtrack
from Tkinter import *

if __name__ == '__main__':
    fvwm = Fvwm.FvwmModule(sys.argv)
    # the Dialog object doesn't do a proper global server grab, so we
    # need to use this kludge instead.  Yes, this is bogus, the
    # tempfile module doesn't exactly have the interface we want. :-(
    tempdir = os.path.split(tempfile.mktemp())[0]
    file = os.path.join(tempdir, 'Pyquiter-' + os.environ['DISPLAY'])
    if os.path.exists(file):
        fvwm.send('Beep', cont=0)
        sys.exit(0)
    #
    # create the lock file
    #
    try:
        fp = open(file, 'w')
        master = Tk(className='Pyquiter')
        master.withdraw()
        d = Dialog.Dialog(master,
                          title='Confirm Fvwm Quit',
                          text='Do you really want to quit Fvwm?',
                          bitmap=Dialog.DIALOG_ICON,
                          default=0,
                          strings=('No (cancel)', 'Yes (quit)'))
        if d.num == 1:
            fvwm.send('Quit', cont=0)
    finally:
        fp.close()
        os.unlink(file)
コード例 #20
0
ファイル: AddFriend.py プロジェクト: artinfo1982/chat4lan
                sock.connect((Login.SERVER_IP, int(Login.SERVER_PORT)))
                sock.send(send_data)
                rsp = sock.recv(1024)
            except Exception, e:
                self.isSuccess = False
                dialog = Dialog.Dialog(None, u"错误", e.message, 200, 150, 30,
                                       60)
                dialog.Centre()
                dialog.Show()
            finally:
                sock.close()
            self.Close()

            if self.isSuccess:
                if Constant.SVR_RSP_ADD_FRI_ERR_NOT_EXI == rsp[0]:
                    dialog = Dialog.Dialog(None, u"错误", u"该好友不存在", 200, 150,
                                           40, 60)
                    dialog.Centre()
                    dialog.Show()
                elif Constant.SVR_RSP_ADD_FRI_ERR_AGN == rsp[0]:
                    dialog = Dialog.Dialog(None, u"错误", u"该好友已被添加", 200, 150,
                                           40, 60)
                    dialog.Centre()
                    dialog.Show()
                elif Constant.ADD_FRI_REQ_SUC_RSP == rsp[0]:
                    dialog = Dialog.Dialog(None, u"信息", u"添加好友成功", 200, 150,
                                           40, 60)
                    dialog.Centre()
                    dialog.Show()
                else:
                    dialog = Dialog.Dialog(None, u"错误", u"登录收到无效响应", 200, 150,
                                           40, 60)
コード例 #21
0
def createid():
    os.chdir(Paths)
    if not os.path.exists("%s\\Users\\user2" % Paths):
        if actname.get() and actpw.get() and actpwc.get() != "":
            if actpw.get() == actpwc.get():
                try:
                    e1 = enckey.encrypt(actpw.get())
                except ValueError:
                    pwcon.set(u'パスワードは8文字で入力してください')
                else:
                    if actpw.get() and actpwc.get() and actpw.get() == actpwc.get():
                        idf = ids
                        os.chdir("Users")
                        os.mkdir("user2")
                        os.chdir("user2")
                        os.mkdir("ad")
                        os.mkdir("Market")
                        os.mkdir("Memo")
                        a = open('user.dat', 'w')
                        c = open('money.dat', 'w')
                        i = open('pw.dat', 'w')
                        a.write(actname.get())
                        e1 = enckey.encrypt(actpw.get())
                        i.write(e1)
                        c.write(str(0))
                        a.close()
                        c.close()
                        i.close()
                        try:
                            shutil.move("user.dat", "ad")
                        except WindowsError:
                            pass
                        try:
                            shutil.move("money.dat", "Market")
                        except WindowsError:
                            pass
                        try:
                            shutil.move("pw.dat", "ad")
                        except WindowsError:
                            pass
                        Dialog.Dialog(root, title = 'done', bitmap = 'info',
                                      text = u'設定を適用するには再起動してください',
                                      strings = ['OK'], default = 0)
                    else:
                        pwcon.set(u'アカウント情報を正しく入力してください')
            else:
                pwcon.set(u'アカウント情報を正しく入力してください')
        else:
            pwcon.set(u'アカウント情報を入力してください')
    elif not os.path.exists("%s\\Users\\user3" % Paths):
        if actname.get() and actpw.get() and actpwc.get() != "":
            if actpw.get() == actpwc.get():
                try:
                    e1 = enckey.encrypt(actpw.get())
                except ValueError:
                    pwcon.set(u'パスワードは8文字で入力してください')
                else:
                    if actpw.get() and actpwc.get() and actpw.get() == actpwc.get():
                        idf = ids
                        os.chdir("Users")
                        os.mkdir("user3")
                        os.chdir("user3")
                        os.mkdir("ad")
                        os.mkdir("Market")
                        os.mkdir("Memo")
                        a = open('user.dat', 'w')
                        c = open('money.dat', 'w')
                        i = open('pw.dat', 'w')
                        a.write(actname.get())
                        e1 = enckey.encrypt(actpw.get())
                        i.write(e1)
                        c.write(str(0))
                        a.close()
                        c.close()
                        i.close()
                        try:
                            shutil.move("user.dat", "ad")
                        except WindowsError:
                            pass
                        try:
                            shutil.move("money.dat", "Market")
                        except WindowsError:
                            pass
                        try:
                            shutil.move("pw.dat", "ad")
                        except WindowsError:
                            pass
                        Dialog.Dialog(root, title = 'done', bitmap = 'info',
                                      text = u'設定を適用するには再起動してください',
                                      strings = ['OK'], default = 0)
                    else:
                        pwcon.set(u'アカウント情報を正しく入力してください')
            else:
                pwcon.set(u'アカウント情報を正しく入力してください')
        else:
            pwcon.set(u'アカウント情報を入力してください')
    elif not os.path.exists("%s\\Users\\user4" % Paths):
        if actname.get() and actpw.get() and actpwc.get() != "":
            if actpw.get() == actpwc.get():
                try:
                    e1 = enckey.encrypt(actpw.get())
                except ValueError:
                    pwcon.set(u'パスワードは8文字で入力してください')
                else:
                    if actpw.get() and actpwc.get() and actpw.get() == actpwc.get():
                        idf = ids
                        os.chdir("Users")
                        os.mkdir("user4")
                        os.chdir("user4")
                        os.mkdir("ad")
                        os.mkdir("Market")
                        os.mkdir("Memo")
                        a = open('user.dat', 'w')
                        c = open('money.dat', 'w')
                        i = open('pw.dat', 'w')
                        a.write(actname.get())
                        e1 = enckey.encrypt(actpw.get())
                        i.write(e1)
                        c.write(str(0))
                        a.close()
                        c.close()
                        i.close()
                        try:
                            shutil.move("user.dat", "ad")
                        except WindowsError:
                            pass
                        try:
                            shutil.move("money.dat", "Market")
                        except WindowsError:
                            pass
                        try:
                            shutil.move("pw.dat", "ad")
                        except WindowsError:
                            pass
                        Dialog.Dialog(root, title = 'done', bitmap = 'info',
                                      text = u'設定を適用するには再起動してください',
                                      strings = ['OK'], default = 0)
                        sys.exit()
                    else:
                        pwcon.set(u'アカウント情報を正しく入力してください')
            else:
                pwcon.set(u'アカウント情報を正しく入力してください')
        else:
            pwcon.set(u'アカウント情報を入力してください')
    else:
        pwcon.set(u'作成可能なアカウントが最大です')
コード例 #22
0
def shori():
    if selecti.get() == 1:
        f = open('item1pr.dat', 'r')
        fr = codecs.open('item1.dat', 'r', 'shift-jis')
        for item in fr:
            item == item
        n = '1'
        con = R1
        Lco = L1
        Pco = P1
    if selecti.get() == 2:
        f = open('item2pr.dat', 'r')
        fr = codecs.open('item2.dat', 'r', 'shift-jis')
        for item in fr:
            item == item
        n = '2'
        con = R2
        Lco = L2
        Pco = P2
    if selecti.get() == 3:
        f = open('item3pr.dat', 'r')
        fr = codecs.open('item3.dat', 'r', 'shift-jis')
        for item in fr:
            item == item
        n = '3'
        con = R3
        Lco = L3
        Pco = P3
    if selecti.get() == 4:
        f = open('item4pr.dat', 'r')
        fr = codecs.open('item4.dat', 'r', 'shift-jis')
        for item in fr:
            item == item
        n = '4'
        con = R4
        Lco = L4
        Pco = P4
    if selecti.get() == 5:
        f = open('item5pr.dat', 'r')
        fr = codecs.open('item5.dat', 'r', 'shift-jis')
        for item in fr:
            item == item
        n = '5'
        con = R5
        Lco = L5
        Pco = P5
    if selecti.get() == 6:
        f = open('item6pr.dat', 'r')
        fr = codecs.open('item6.dat', 'r', 'shift-jis')
        for item in fr:
            item == item
        n = '6'
        con = R6
        Lco = L6
        Pco = P6
    if selecti.get() == 7:
        f = open('item7pr.dat', 'r')
        fr = codecs.open('item7.dat', 'r', 'shift-jis')
        for item in fr:
            item == item
        n = '7'
        con = R7
        Lco = L7
        Pco = P7
    if selecti.get() == 8:
        f = open('item8pr.dat', 'r')
        fr = codecs.open('item8.dat', 'r', 'shift-jis')
        for item in fr:
            item == item
        n = '8'
        con = R8
        Lco = L8
        Pco = P8
    if selecti.get() == 9:
        f = open('item9pr.dat', 'r')
        fr = codecs.open('item9.dat', 'r', 'shift-jis')
        for item in fr:
            item == item
        n = '9'
        con = R9
        Lco = L9
        Pco = P9
    if selecti.get() == 10:
        f = open('item10pr.dat', 'r')
        fr = codecs.open('item10.dat', 'r', 'shift-jis')
        for item in fr:
            item == item
        n = '10'
        con = R10
        Lco = L10
        Pco = P10
    if item == 'empty':
        Dialog.Dialog(root, title = 'alert', bitmap = 'info',
                  text = u'商品が入っていません',
                  strings = ['OK'], default = 0)
        selecti.set('0')
    else:
        if chec.get():
            ff = open('wallet.dat', 'r')
            for i in ff:
                i == i
            for p1 in f:
                p1==p1
            if int(i)<int(p1):
                Dialog.Dialog(root, title = 'alert', bitmap = 'info',
                              text = u'お金が不足しています',
                              strings = ['OK'], default = 0)
                selecti.set('0')
            else:
                x = int(i)-int(p1)
                moneyval.set(str(x))
                wallet.append(x)
                chargem.append(x)
                codecs.open('item%s.dat' % n, 'w', 'shift-jis').write('empty')
                open('item%spr.dat' % n, 'w').write('0')
                open('wallet.dat', 'w').write(str(x))
                Dialog.Dialog(root, title = 'alert', bitmap = 'info',
                              text = u'お買い上げありがとうございました',
                              strings = ['OK'], default = 0)
                selecti.set('0')
                con.configure(state = 'disabled')
                Lco.configure(text = 'empty')
                Pco.configure(text = int(0))
        else:
            for p2 in f:
                p2==p2
            for ii in pri:
                ii == ii
            if ii<int(p2):
                Dialog.Dialog(root, title = 'alert', bitmap = 'info',
                              text = u'お金が不足しています',
                              strings = ['OK'], default = 0)
                selecti.set('0')
            else:
                ii-=int(p2)
                to1.configure(text = int(ii))
                pri.append(ii)
                codecs.open('item%s.dat' % n, 'w', 'shift-jis').write('empty')
                open('item%spr.dat' % n, 'w').write('0')
                Dialog.Dialog(root, title = 'alert', bitmap = 'info',
                              text = u'お買い上げありがとうございました',
                              strings = ['OK'], default = 0)
                selecti.set('0')
                con.configure(state = 'disabled')
                Lco.configure(text = 'empty')
                Pco.configure(text = int(0))
コード例 #23
0
ファイル: Login.py プロジェクト: artinfo1982/chat4lan
                sock.settimeout(10)
                sock.connect((SERVER_IP, int(SERVER_PORT)))
                sock.send(send_data)
                rsp = sock.recv(1024)
            except Exception, e:
                self.isSuccess = False
                dialog = Dialog.Dialog(None, u"错误", u"服务器断连", 200, 150, 30, 60)
                dialog.Centre()
                dialog.Show()
            finally:
                sock.close()
            self.Destroy()

            if self.isSuccess:
                if Constant.SVR_RSP_LON_ERR_REP == rsp[0]:
                    dialog = Dialog.Dialog(None, u"错误", u"鉴权失败", 200, 150, 30,
                                           60)
                    dialog.Centre()
                    dialog.Show()
                elif Constant.SVR_RSP_LON_ERR_NOT_EXI == rsp[0]:
                    dialog = Dialog.Dialog(None, u"错误", u"用户不存在", 200, 150, 30,
                                           60)
                    dialog.Centre()
                    dialog.Show()
                elif Constant.SVR_MYSQL_UNREACHABLE == rsp[0]:
                    dialog = Dialog.Dialog(None, u"错误", u"后台数据库不可达", 200, 150,
                                           20, 60)
                    dialog.Centre()
                    dialog.Show()
                elif Constant.SVR_RSP_USR_LOG_IN_REP == rsp[0]:
                    dialog = Dialog.Dialog(None, u"错误", u"该用户已经登录", 200, 150,
                                           20, 60)
コード例 #24
0
def main():

    #set up path to face detection parameters
    path4opencv = './haarcascades'
    face_cascade_path = path4opencv + '/haarcascade_frontalface_alt.xml'
    eye_cascade_path = path4opencv + '/haarcascade_eye.xml'

    #set up object for pre-trained classifier object
    #  the recognition works to find most relevant image features first
    #  as it scans the image,
    #  then 'cascades' to a larger and/or specific set of features
    face_cascade = cv2.CascadeClassifier(face_cascade_path)
    eye_cascade = cv2.CascadeClassifier(eye_cascade_path)

    print 'starting...'

    with open('ImageList.txt', 'r') as infile:
        for filename in infile:
            filename = filename.rstrip()
            filename = filename.rstrip('\n')
            print 'reading ' + filename
            img = cv2.imread('./' + filename, cv2.IMREAD_GRAYSCALE)
            gray = cv2.equalizeHist(img)
            #gray =cv2.cvtColor(imgeq, cv2.COLOR_BGR2GRAY)  #use grayscale if its color

            #call detect function
            faces = face_cascade.detectMultiScale(
                gray,
                scaleFactor=1.2,
                minNeighbors=3,
                minSize=(75, 75),
                flags=cv2.CASCADE_SCALE_IMAGE)

            numfaces = len(faces)
            #check for eyes and show the face to user
            for face in faces:
                print 'a face found ...'
                [x, y, w, h] = face
                print 'size width:' + str(w) + " height:" + str(h)
                cv2.rectangle(gray, (x, y), (x + w, y + h), (0, 255, 0), 4)
                roi_gray = gray[y:y + h, x:x + w]
                eyes = eye_cascade.detectMultiScale(roi_gray)
                if len(eyes) == 2:
                    print '2 eyes found ...'
                    for (ex, ey, ew, eh) in eyes:
                        cv2.rectangle(gray, (x + ex, y + ey),
                                      (x + ex + ew, y + ey + eh), (255, 0, 0),
                                      4)

            cv2.namedWindow('FSA_depression_era_Photo')
            cv2.imshow('FSA_depression_era_Photo', gray)
            cv2.waitKey(200)
            dial_res = Dialog.Dialog(title='Found' + str(numfaces) + ' faces',
                                     text='do you want to:',
                                     bitmap='questhead',
                                     default=0,
                                     strings=('try next image', 'Quit'))
            if dial_res.num == 1:
                print '.. stopping'
                exit()
            else:
                cv2.destroyWindow('FSA_epression_era_Photo')
                cv2.waitKey(1)
                print 'about to start again in 1 sec...'

    cv2.destroyAllWindows()
コード例 #25
0
    def __setFont(self):
        """Set self.__text's font to the currently selected font

          [ if self.__sizeVar is a valid integer in string form ->
              self.__text  :=  self.__text with its font set to
                  selected-font(self)
              return 1
            else ->
              X  :=  X with a popup error dialog
              return 0
        """
        #-- 1 --
        family = self.__families[self.__familyx]

        #-- 2 --
        # [ if self.__sizeVar contains a valid integer as a string ->
        #     size  :=  that value as an integer
        #   else ->
        #     X  :=  X with a popup error dialog
        #     return ]
        try:
            size = int(self.__sizeVar.get())
        except:
            d = Dialog(
                self,
                title="Message",
                bitmap="info",
                text="Size must be an integer",
                default=0,  # First button is the default
                strings=("OK", ))  # Only one button: OK
            return 0

        #-- 3 --
        if self.__wtVar.get(): wt = "bold"
        else: wt = "normal"

        #-- 4 --
        if self.__slantVar.get(): slant = "italic"
        else: slant = "roman"

        #-- 5 --
        # [ font         :=  the font specified by family, size, wt, and slant
        #   self.__text  :=  self.__text switched to that font ]
        font = Font(family=family, size=size, weight=wt, slant=slant)
        self.__text["font"] = font

        #-- 6 --
        # [ self.__actualLabel  :=  self.__actualLabel displaying the actual
        #       family, size, weight, and slant of font ]
        attrs = [font.actual("family"), font.actual("size")]
        weight = font.actual("weight")
        slant = font.actual("slant")

        if weight != "normal":
            attrs.append(weight)

        if slant != "roman":
            attrs.append(slant)

        self.__actualLabel["text"] = string.join(attrs, " ")

        #-- 7 --
        return 1
コード例 #26
0
def doChosenLayout(atom3i, selectionList, optionsDict=None):
    """
  Shows a menu of all the layout algorithms
  """
    selectionList = hierarchicalFilter(selectionList)

    #  stringList = ['Hierarchical', 'Circle', 'Tree-like', 'FTA', 'Spring',
    #                'Orthogonal', 'Cancel']
    stringList = [
        'Hierarchical', 'Circle', 'Tree-like', 'FTA', 'Spring',
        'Dump options to console', 'Circle C++', 'Spring C++', 'FTA C++',
        'Tree C++', 'Cancel'
    ]
    d = Dialog.Dialog(
        atom3i.parent, {
            'title': 'Automatic Layout',
            'text': 'Choose layout algorithm',
            'bitmap': '',
            'default': 0,
            'strings': stringList
        })
    if (d.num == 0):
        doHierarchicalLayout(atom3i, selectionList, optionsDict)
    elif (d.num == 1):
        doCircleLayout(atom3i, selectionList, optionsDict)
    elif (d.num == 2):
        doTreeLikeLayout(atom3i, selectionList, optionsDict)
    elif (d.num == 3):
        doForceTransfer(atom3i, selectionList, optionsDict)
    elif (d.num == 4):
        doSpringLayout(atom3i, selectionList, optionsDict)
    elif (d.num == 5):
        print '\n\n'
        from HierarchicalLayoutModule import AToM3HierarchicalOptions
        AToM3HierarchicalOptions.dumpOptions2Console(atom3i)
        print '\n'
        from CircleLayoutModule import AToM3CircleOptions
        AToM3CircleOptions.dumpOptions2Console(atom3i)
        print '\n'
        from SpringLayoutModule import AToM3SpringOptions
        AToM3SpringOptions.dumpOptions2Console(atom3i)
        print '\n'
        from TreeLikeLayoutModule import AToM3TreeLikeOptions
        AToM3TreeLikeOptions.dumpOptions2Console(atom3i)
        print '\n'
        from ForceTransferModule import AToM3FTAOptions
        AToM3FTAOptions.dumpOptions2Console(atom3i)
    elif (d.num == 6):
        from LayoutViaServer.LayoutViaServer import LayoutType, layoutViaServer
        layoutType = LayoutType([LayoutType.CIRCLE], True, 10)
        layoutViaServer(atom3i, selectionList, layoutType)
    elif (d.num == 7):
        from LayoutViaServer.LayoutViaServer import LayoutType, layoutViaServer
        layoutType = LayoutType([LayoutType.SPRING], True, 10)
        layoutViaServer(atom3i, selectionList, layoutType)
    elif (d.num == 8):
        from LayoutViaServer.LayoutViaServer import LayoutType, layoutViaServer
        layoutType = LayoutType([LayoutType.FTA], True, 10)
        layoutViaServer(atom3i, selectionList, layoutType)
    elif (d.num == 9):
        from LayoutViaServer.LayoutViaServer import LayoutType, layoutViaServer
        layoutType = LayoutType([LayoutType.TREE], True, 10)
        layoutViaServer(atom3i, selectionList, layoutType)
コード例 #27
0
            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            sock.settimeout(10)
            sock.connect((Login.SERVER_IP, int(Login.SERVER_PORT)))
            sock.send(send_data)
            rsp = sock.recv(1024)
        except Exception, e:
            self.isSuccess = False
            dialog = Dialog.Dialog(None, u"错误", e.message, 200, 150, 30, 60)
            dialog.Centre()
            dialog.Show()
        finally:
            sock.close()

        if self.isSuccess:
            if Constant.GRO_MEM_LST_REQ_ERR_RSP == rsp[0]:
                dialog = Dialog.Dialog(None, u"错误", u"查询群组成员失败", 200, 150, 30,
                                       60)
                dialog.Centre()
                dialog.Show()
            elif Constant.GRO_MEM_LST_REQ_SUC_RSP == rsp[0]:
                # 获取群组成员的数目
                index = 1
                length = ord(rsp[index])
                index += 1
                GROUP_MEM_NUM = int(rsp[index:(index + length)])
                index += length
                # 逐个解析出群组成员名字
                for i in range(0, GROUP_MEM_NUM, 1):
                    length = ord(rsp[index])
                    index += 1
                    GROUP_MEM_NAME_ARRAY[i] = rsp[index:(index + length)]
                    index += length
コード例 #28
0
ファイル: Login.py プロジェクト: artinfo1982/chat4lan
    def OnLogin(self, event):
        # 将服务器信息和用户信息存入全局变量
        global SERVER_IP
        global SERVER_PORT
        global LOCAL_PORT
        global USERID
        global USERNAME
        global FRIEND_NUM
        global FRIEND_ID_ARRAY
        global FRIEND_NAME_ARRAY
        global FRIEND_STATUS_ARRAY
        global GROUP_NUM
        global GROUP_ID_ARRAY
        global GROUP_NAME_ARRAY
        global GROUP_MEMBERNUM_ARRAY
        global isParamOK

        SERVER_IP = self.server_ip_edit.GetValue()
        SERVER_PORT = self.server_port_edit.GetValue()
        LOCAL_PORT = self.local_port_edit.GetValue()
        USERID = self.userid_edit.GetValue()
        password = self.password_edit.GetValue()
        sock = None
        rsp = None

        # 对登录界面产生的参数进行非空判断
        if "" == SERVER_IP or "" == SERVER_PORT or "" == USERID or "" == password:
            dialog = Dialog.Dialog(None, u"错误", u"参数不能为空", 200, 150, 60, 60)
            dialog.Centre()
            dialog.Show()
        # 对输入的服务器IP地址进行合法性校验
        elif not Tools.ipChecker(SERVER_IP):
            dialog = Dialog.Dialog(None, u"错误", u"IP地址不合法", 200, 150, 60, 60)
            dialog.Centre()
            dialog.Show()
        # 校验输入的服务器端口是否为整数
        elif not Tools.portChecker(SERVER_PORT):
            dialog = Dialog.Dialog(None, u"错误", u"端口不合法", 200, 150, 60, 60)
            dialog.Centre()
            dialog.Show()
        # 校验输入的用户ID是否为整数
        elif not Tools.idChecker(USERID):
            dialog = Dialog.Dialog(None, u"错误", u"用户ID不合法", 200, 150, 60, 60)
            dialog.Centre()
            dialog.Show()
        # 校验本地端口是否可用,若不可用,则更换一个
        elif not Tools.port_is_free(Tools.get_local_ip(), LOCAL_PORT):
            dialog = Dialog.Dialog(None, u"错误", u"本地端口被占用", 200, 150, 60, 60)
            dialog.Centre()
            dialog.Show()
        else:
            isParamOK = True
            send_data = Constant.LON_IN_REQ_SUC_RSP + \
                chr(len(str(USERID))) + \
                chr(len(password.encode('utf-8'))) + \
                chr(len(P2P_Group_Chat.LOCAL_IP.encode('utf-8'))) + \
                chr(len(LOCAL_PORT.encode('utf-8'))) + \
                str(USERID) + \
                password.encode('utf-8') + \
                P2P_Group_Chat.LOCAL_IP.encode('utf-8') + \
                str(LOCAL_PORT)
            try:
                sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                sock.settimeout(10)
                sock.connect((SERVER_IP, int(SERVER_PORT)))
                sock.send(send_data)
                rsp = sock.recv(1024)
            except Exception, e:
                self.isSuccess = False
                dialog = Dialog.Dialog(None, u"错误", u"服务器断连", 200, 150, 30, 60)
                dialog.Centre()
                dialog.Show()
            finally:
コード例 #29
0
def main():

    #set up path to face detection parameters
    path4opencv = './haarcascades'
    face_cascade_path = path4opencv + '/haarcascade_frontalface_alt.xml'
    eye_cascade_path = path4opencv + '/haarcascade_eye.xml'

    #set up object for pre-trained classifier object
    #  the recognition works to find most relevant image features first
    #  as it scans the image,
    #  then 'cascades' to a larger and/or specific set of features
    face_cascade = cv2.CascadeClassifier(face_cascade_path)
    eye_cascade = cv2.CascadeClassifier(eye_cascade_path)

    print 'starting...'

    #Make a loop to grab image from cam and see if a face is there
    keepgoing = True
    while (keepgoing):
        print 'capturing ...'

        #set up video object
        cap = cv2.VideoCapture(0)
        ret, frame = cap.read()  #grab the cam image, take 2nd one in buffer
        ret, frame = cap.read()
        cap.release()
        while ret == True:  #one way to clear buffer (depends on camera)
            ret, dummyframe = cap.read()

        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)  #use grayscale

        #call detect function
        faces = face_cascade.detectMultiScale(gray,
                                              scaleFactor=1.2,
                                              minNeighbors=3,
                                              minSize=(75, 75),
                                              flags=cv2.CASCADE_SCALE_IMAGE)

        #check for eyes and show the face to user
        if len(faces) > 0:
            print 'face found ...'
            [x, y, w, h] = faces[0]
            print 'size width:' + str(w) + " height:" + str(h)
            cv2.rectangle(gray, (x, y), (x + w, y + h), (0, 255, 0), 4)
            roi_gray = gray[y:y + h, x:x + w]
            eyes = eye_cascade.detectMultiScale(roi_gray)
            if len(eyes) == 2:
                print 'eyes found ...'
                for (ex, ey, ew, eh) in eyes:
                    cv2.rectangle(gray, (x + ex, y + ey),
                                  (x + ex + ew, y + ey + eh), (255, 0, 0), 4)

                cv2.namedWindow('you?')
                #             cv2.startWindowThread()
                cv2.imshow('you?', gray)
                cv2.waitKey(200)
                dial_res = Dialog.Dialog(title='Face Detected',
                                         text='do you want to:',
                                         bitmap='questhead',
                                         default=0,
                                         strings=('Try another face shot',
                                                  'Quit'))
                if dial_res.num == 1:
                    keepgoing = False
                    print '.. stopping'
                else:
                    cv2.destroyWindow('you?')
                    cv2.waitKey(1)
                    print 'about to start again in 3 secs...'
                    time.sleep(3)
            else:
                print 'no eyes.. wait a sec'
                time.sleep(1)
        else:
            print 'no face found - wait a sec...'
            #cv2.imshow('...',gray)
            #cv2.waitKey(200)
            time.sleep(1)

    cv2.destroyAllWindows()
    cap.release()
コード例 #30
0
 def _missing(self):
     Dialog.Dialog(self, title='Undefined operation',
                   text='This operation is not yet implemented.',
                   bitmap='warning', default=0,
                   strings = ('Cancel',))