自动点检程式

1导入需要使用到的库

    import tkinter as tk

    import tkinter

    from tkinter import Menu #导入菜单栏

    import configparser

    from tkinter import messagebox

    import os

    from tkinter.filedialog import *

    import pyautogui, time

    import pyautogui as pag

2 设置ini以便可以适应不同的电脑

    #读取配置文件

    config = configparser.ConfigParser()

    config.read("zbconfig.ini")

    #写入坐标配置文件

    try:

        config.add_section("check")

        config.set("check","DJ_X","258")

        config.set("check","DJ_Y","386")

        config.add_section("Form type")

        config.set("Form type","BD_X","920")

        config.set("Form type","BD_Y","274")

        config.add_section("cycle time")

        config.set("cycle time","ZQ_X","594")

        config.set("cycle time","ZQ_Y","340")

        config.add_section("Check item")

        config.set("Check item","DY_X","935")

        config.set("Check item","DY_Y","430")

        config.set("Check item","DE_X","936")

        config.set("Check item","DE_Y","474")

        config.set("Check item","DS_X","935")

        config.set("Check item","DS_Y","518")

        config.set("Check item","DSI_X","935")

        config.set("Check item","DSI_Y","565")

        config.set("Check item","DW_X","935")

        config.set("Check item","DW_Y","614")

        config.set("Check item","DWBZ_X","1110")

        config.set("Check item","DWBZ_Y","610")

        config.set("Check item","DL_X","934")

        config.set("Check item","DL_Y","662")

        config.set("Check item","DQ_X","935")

        config.set("Check item","DQ_Y","710")

        config.set("Check item","DQBZ_X","1120")

        config.set("Check item","DQBZ_Y","707")

        config.set("Check item","DB_X","930")

        config.set("Check item","DB_Y","760")

        config.set("Check item","DJIU_X","932")

        config.set("Check item","DJIU_Y","810")

        config.set("Check item","DH_X","934")

        config.set("Check item","DH_Y","853")

        config.add_section("Send out an audit")

        config.set("Send out an audit","SCJH_X","736")

        config.set("Send out an audit","SCJH_Y","899")

        config.add_section("determine")

        config.set("determine","QD_X","747")

        config.set("determine","QD_Y","375")

        config.add_section("daycheck")

        config.set("determine", "XY_X", "930")

        config.set("determine", "XY_Y", "426")

        config.set("determine", "X1_X", "935")

        config.set("determine", "X1_Y", "474")

        config.set("determine", "X2_X", "935")

        config.set("determine", "X2_Y", "474")

        config.set("determine", "X3_X", "935")

        config.set("determine", "X3_Y", "474")


    except configparser.DuplicateSectionError:

        print("Section 'zbconfig' already exists")


    config.write(open("config.ini", "w"))

    dj_x=config.getint("check","DJ_X")

    dj_y=config.getint("check","DJ_Y")

    bd_x=config.getint("Form type","BD_X")

    bd_y=config.getint("Form type","BD_Y")

    zq_x=config.getint("cycle time","ZQ_X")

    zq_y=config.getint("cycle time","ZQ_Y")

    dy_x=config.getint("Check item","DY_X")

    dy_y=config.getint("Check item","DY_Y")

    de_x=config.getint("Check item","DE_X")

    de_y=config.getint("Check item","DE_Y")

    ds_x=config.getint("Check item","DS_X")

    ds_y=config.getint("Check item","DS_Y")

    dsi_x=config.getint("Check item","DSI_X")

    dsi_y=config.getint("Check item","DSI_Y")

    dw_x=config.getint("Check item","DW_X")

    dw_y=config.getint("Check item","DW_Y")

    dwbz_x=config.getint("Check item","DWBZ_X")

    dwbz_y=config.getint("Check item","DWBZ_Y")

    dl_x=config.getint("Check item","DL_X")

    dl_y=config.getint("Check item","DL_Y")

    dq_x=config.getint("Check item","DQ_X")

    dq_y=config.getint("Check item","DQ_Y")

    dqbz_x=config.getint("Check item","DQBZ_X")

    dqbz_y=config.getint("Check item","DQBZ_Y")

    db_x=config.getint("Check item","DB_X")

    db_y=config.getint("Check item","DB_Y")

    djiu_x=config.getint("Check item","DJIU_X")

    djiu_y=config.getint("Check item","DJIU_Y")

    dh_x=config.getint("Check item","DH_X")

    dh_y=config.getint("Check item","DH_Y")

    scjh_x=config.getint("Send out an audit","SCJH_X")

    scjh_y=config.getint("Send out an audit","SCJH_Y")

    qd_x=config.getint("determine","QD_X")

    qd_y=config.getint("determine","QD_Y")

    xy_x=config.getint("daycheck","XY_X")

    xy_y=config.getint("daycheck","XY_Y")

    x1_x=config.getint("daycheck","X1_X")

    x1_y=config.getint("daycheck","X1_Y")

    x2_x=config.getint("daycheck","X2_X")

    x2_y=config.getint("daycheck","X2_Y")

    x3_x=config.getint("daycheck","X3_X")

    x3_y=config.getint("daycheck","X3_Y")

3 #获取鼠标位置

    def get():

        po.delete(0,tkinter.END)

        time.sleep(2) #几秒后返回位置

        x, y = pag.position()

        po.insert(0,str(x)+ ',' +str(y))

4 写个点检项目的函数


    #周点检

        def dianjian_1():

            n = int(kaishi_input.get())

            m = int(jieshu_input.get())

            for i in list(range(n, m+1)):

                time.sleep(0.5)

                pyautogui.click(dj_x, dj_y)

                time.sleep(1)

                if i <= 9:

                    pyautogui.typewrite('KTB0000%d'%(i))

                elif i <= 99:

                    pyautogui.typewrite('KTB000%d'%(i))

                elif i >= 100:

                    pyautogui.typewrite('KTB00%d'%(i))

                pyautogui.press('enter')

                pyautogui.press('enter')

                time.sleep(1)

                pyautogui.doubleClick(bd_x, bd_y)

                time.sleep(0.5)

                pyautogui.press('enter')

                time.sleep(0.5)

                pyautogui.keyDown('down')

                time.sleep(0.5)

                pyautogui.doubleClick(zq_x, zq_y)

                pyautogui.keyDown('enter')

                time.sleep(0.5)

                pyautogui.keyDown('down')

                pyautogui.keyDown('down')

                pyautogui.keyDown('enter')

                time.sleep(2.5)

                pyautogui.click(dy_x, dy_y)

                pyautogui.click(de_x, de_y)

                pyautogui.click(ds_x, ds_y)

                pyautogui.click(dsi_x, dsi_y)

                pyautogui.click(dw_x, dw_y)

                time.sleep(0.3)

                pyautogui.click(dwbz_x, dwbz_y)

                time.sleep(0.3)

                pyautogui.typewrite('5V')

                time.sleep(0.3)

                pyautogui.click(dl_x, dl_y)

                pyautogui.click(dq_x, dq_y)

                time.sleep(0.3)

                pyautogui.click(dqbz_x, dqbz_y)

                time.sleep(0.3)

                pyautogui.typewrite('NA')

                time.sleep(0.3)

                pyautogui.click(db_x, db_y)

                time.sleep(0.1)

                pyautogui.click(djiu_x, djiu_y)

                time.sleep(0.1)

                pyautogui.click(dh_x, dh_y)

                time.sleep(0.1)

                pyautogui.click(scjh_x, scjh_y)

                time.sleep(1.5)

                pyautogui.click(qd_x, qd_y)

                time.sleep(3)

                if i == m:

                    tk.messagebox.showinfo("提示", "已点检完成")


        #日点检

        def dianjian_2():

            n = int(kaishi_input.get())

            m = int(jieshu_input.get())

            for i in list(range(n, m + 1)):

                time.sleep(0.5)

                pyautogui.click(dj_x, dj_y)

                time.sleep(1)

                if i <= 9:

                    pyautogui.typewrite('KTB0000%d' % (i))

                elif i <= 99:

                    pyautogui.typewrite('KTB000%d' % (i))

                elif i >= 100:

                    pyautogui.typewrite('KTB00%d' % (i))

                pyautogui.press('enter')

                pyautogui.press('enter')

                time.sleep(1)

                pyautogui.doubleClick(bd_x, bd_y)

                time.sleep(0.5)

                pyautogui.press('enter')

                time.sleep(0.5)

                pyautogui.keyDown('down')

                time.sleep(0.5)

                pyautogui.doubleClick(zq_x, zq_y)

                pyautogui.keyDown('enter')

                time.sleep(0.5)

                pyautogui.keyDown('down')

                pyautogui.keyDown('enter')

                time.sleep(2.5)

                pyautogui.click(xy_x, xy_y)

                pyautogui.click(x1_x, x1_y)

                time.sleep(1)

                pyautogui.click(x2_x, x2_y)

                time.sleep(1)

                pyautogui.click(x3_x, x3_y)

                time.sleep(2.5)

                if i == m:

                    tk.messagebox.showinfo("提示", "已点检完成")

5 配置GUI界面

win = tk.Tk()

win.title("EMS Automatic Check")

win.geometry('450x350')

def _quit():

    """结束主事件循环"""

    win.quit()

    win.destroy()

    exit()

#创建菜单栏工单

menuBar = Menu(win)

win.config(menu=menuBar)

# 在菜单栏中创建一个名为Help的菜单项

def bangzhu():

    tk.messagebox.showinfo("help", "1 不同显示器需要更新坐标\n2 坐标值填在zbconfig文件里面\n获取坐标方法\n先点击获取,然后点击需要获取坐标的地方")

helpMenu = Menu(menuBar, tearoff=0)

menuBar.add_command(label="Help", command=bangzhu)

# 在菜单栏中创建一个名为About的菜单项

def About():

    tk.messagebox.showinfo("关于", "version:0.0.03\nAuthor:kevin_li")

aboutMenu = Menu(menuBar, tearoff=0)

menuBar.add_command(label="About", command=About)

canvas = tk.Canvas(win, height=200, width=500)#创建画布

image_file = tk.PhotoImage(file='welcome.gif')#加载图片文件

image = canvas.create_image(0,0, anchor='nw', image=image_file)#将图片置于画布上

canvas.pack(side='top')#放置画布(为上端)

kaishi_text = IntVar

kaishi_lb = Label(win,text='开始ID:',font=('微软雅黑',13))

kaishi_lb.place(x=50,y=150)

kaishi_input = Entry(win,width=15,textvariable=kaishi_text)

kaishi_input.place(x=110,y=155)

jieshu_text = IntVar

jieshu_lb = Label(win,text='结束ID:',font=('微软雅黑',13))

jieshu_lb.place(x=50,y=190)

jieshu_input = Entry(win,width=15,textvariable=jieshu_text)

jieshu_input.place(x=110,y=195)

#创建开始点检按钮

b3 = tk.Button(win,text="周點檢",width=12,height=3,command=dianjian_1)

b3.place(x=230,y=150)

b4 = tk.Button(win,text="日點檢",width=12,height=3,command=dianjian_2)

b4.place(x=330,y=150)

tip = tk.Label(win, text="返回点击2s后的关标位置:")

tip.place(x=30,y=240)

po = tk.Entry(win)

po.place(x=170,y=240)

do = tk.Button(win,text="获取",command=get) #点击获取位置

do.place(x=320,y=240)

win.mainloop()

6 成品界面![在这里插入图片描述](https://img-blog.csdnimg.cn/20190907104921163.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxeXU2MA==,size_16,color_FFFFFF,t_70)

你可能感兴趣的:(自动点检程式)