python操作redmine且有窗口tkinter

代码如下没啥可说的

# -*- coding: utf-8  -*-
import sys
import Tkinter

from redminelib import Redmine
from tkinter import messagebox

 
#解决中文编码问题 python2.7 且  IDLE
stdi,stdo,stde=sys.stdin,sys.stdout,sys.stderr
reload(sys)
sys.setdefaultencoding('utf-8')
sys.stdin,sys.stdout,sys.stderr=stdi,stdo,stde
print sys.stdout    


redmine = Redmine('http://192.168.1.134/redmine', username=' ', password=' ')
project = redmine.project.get(' ')
print(project.id)

def on_closing():
    if messagebox.askokcancel("Quit", "Do you want to quit?"):
        top.destroy()

def submit():
    var.set("....")

    inputStr = redmineId_text.get("0.0","end")#从第0行第0列开始读取(‘1.3’表示从第一行第3列开始读取),第二个参数End表示最后一个字符


    inputStr = inputStr.replace('\n', '').replace('\r', '') #去换行

    inputStr = inputStr.replace(' ', '') #去空格
    
    redmineIdsArray = inputStr.split(',')
    
    print(redmineIdsArray)


    testerId = tester_text.get("0.0","end")
    try:
        user_1 = redmine.user.get(testerId)
        print(user_1.firstname )
        print(user_1.lastname  )
    except Exception:
        var.set(testerId+" 该用户不存在 啥都没处理 http://192.168.1.134/redmine/users/348 ")
        return
    else:
         print('333')

    for redmineId in redmineIdsArray :

        try:
            issue = redmine.issue.get(redmineId)

            redmine.issue.update(redmineId, assigned_to_id =testerId, status_id = 24)
            
        except Exception:
            print('555')
            var.set(redmineId+" 找不到该redmine, 之前的redmine已处理,之后的redmine未处理 !")
            return
        else:
            print('666')
        
    var.set("success ! 都给了打工人"+user_1.firstname+' '+user_1.lastname)
    

top = Tkinter.Tk()

top.title("redmine自动化")
top.geometry("700x300+100+200") #窗体大小  与0,0的相对位置

 
readme_label = Tkinter.Label(top, text='功能为: 将一个redmine指派给指定的测试',compound=Tkinter.CENTER,fg="red")

redmineId_label = Tkinter.Label(top, text='redmine号码(如果多个用英文逗号隔开如 16559,16509):')
redmineId_text = Tkinter.Text(top, height=1, width=50)

tester_label = Tkinter.Label(top, text='测试人员ID( 是57  是187)(只可以输入一个人):')
tester_text = Tkinter.Text(top, height=1, width=50)

button_ = Tkinter.Button(top,text="do it !",command=submit)

var = Tkinter.StringVar()
var.set("")
label_message = Tkinter.Label(top,textvariable=var,fg="red")


readme_label.grid(row=1, column=0,sticky='W')
redmineId_label.grid(row=3, column=0,sticky='W')
redmineId_text.grid(row=3, column=1,sticky='E')

tester_label.grid(row=4, column=0,sticky='W')
tester_text.grid(row=4, column=1,sticky='E')

button_.grid(row=6, column=0,sticky='W')
label_message.grid(row=7, column=0,sticky='W')


top.protocol("WM_DELETE_WINDOW", on_closing)
# 进入消息循环
top.mainloop()


python的窗口还是挺方便的,虽然不如vb布局很随意, 但也不错可以快速开发
需要说的是下载各种包,挺麻烦的

猜你喜欢

转载自blog.csdn.net/wangduqiang747/article/details/109839222
今日推荐