好好的运维愣是被我自学成了研发,自学python请看过来
  zZHnZavbRDNq 2023年11月02日 17 0


python学做小程序这篇就够了,tk的综合应用(可用作爬虫界面展示)

本篇技术文档,小编也是给大家演示一下这个最终的效果图,再把这个程序的总体框架给大家展示一下,这样既不浪费大家的时间,也不影响大家的学习的热情

好好的运维愣是被我自学成了研发,自学python请看过来_python

先看效果图


tk程序效果显示一


废话不多说,直接上源码

import tkinter as tk
import tkinter.messagebox
import pymssql
import random
import datetime
import openpyxl
import split
import time
import os
import sys
import requests
import json
import time
import datetime
import  openpyxl
import urllib.request
from openpyxl.styles import Font,Color
from openpyxl.styles import colors

import copy
import openpyxl
from openpyxl.utils import get_column_letter



root = tk.Tk()  # 创建窗口对象的背景色
root.title("辛集水流域     -----数据采集合成程序   v1.10     ")
root.geometry("940x400")

###设置账号和密码设置窗口,放置后期更换密码,导致程序不可用

denglu = tk.LabelFrame(root,text="账号管理",padx=20 ,pady=1)
denglu.grid(row=0,column=0,sticky='W',padx=1 ,pady=1)


tk.Label(denglu,text= "账    户  :").grid(row=0,column=0)
tk.Label(denglu,text= "密    码  :").grid(row=0,column=3)


v1 = tk.StringVar()
v2 = tk.StringVar()


e1 = tk.Entry(denglu, textvariable=v1)
e1.insert(0,'admin')
e2 = tk.Entry(denglu, textvariable=v2,show = '*')
e2.insert(0,'1')

e1.grid(row=0, column=2, padx=1, pady=1)
e2.grid(row=0, column=4, padx=1, pady=1)


###根据需求为程序设置成时间段选项

group = tk.LabelFrame(root, text="请勾选需要采集的时间段",padx=1, pady=14)
group.grid(row=0,rowspan=2, column=1,padx=1, pady=1)



def print_selection():
    pass

shijian1Var = tk.StringVar(value="0")
shijian2Var = tk.StringVar(value="0")
shijian3Var = tk.StringVar(value="0")
qitashijianVar = tk.StringVar(value="0")


diyi = tk.Checkbutton(group, text="昨日21:00~今日6:00", variable=shijian1Var,command=print_selection)
diyi.grid(row=0, column=1, padx=2 ,sticky='W',pady=5)

dier = tk.Checkbutton(group, text="今日7:00 ~今日14:00", variable=shijian2Var,command=print_selection)
dier.grid(row=0, column=2,sticky='W',  padx=2 ,pady=5)

disan = tk.Checkbutton(group, text="今日15:00 ~今日20:00", variable=shijian3Var,command=print_selection)
disan.grid(row=0, column=3,sticky='W',  padx=2 ,pady=5)



###设置其他的时间段输入框
qitagroup = tk.LabelFrame(group,padx=2, pady=2)
qitagroup.grid(row=1, columnspan=6,sticky='N',padx=2, pady=2)

qita = tk.Checkbutton(qitagroup, text="其 他 时 间 段", variable=qitashijianVar,command=print_selection)
qita.grid(row=0, columnspan=2,sticky='W', padx=2 ,pady=5)

tk.Label(qitagroup,text= "开始时间:").grid(row=1,column=1, padx=2 ,pady=5)
tk.Label(qitagroup,text= "结束时间:").grid(row=1,column=3, padx=2 ,pady=5)

v3 = tk.StringVar()
v4 = tk.StringVar()

e3 = tk.Entry(qitagroup, textvariable=v3)
e3.insert(0,'例如 2021-08-08')
e4 = tk.Entry(qitagroup, textvariable=v4)
e4.insert(0,'例如 2021-08-08')

e3.grid(row=1, column=2,sticky='W' , padx=2 ,pady=5)
e4.grid(row=1, column=4,sticky='W', padx=2 ,pady=5)


###添加污染物标准
wuranwu_bz = tk.LabelFrame(root, text="各类污染物标准", padx=5 ,pady=1)
wuranwu_bz.grid(row=1, column=0,sticky='W', padx=1 ,pady=1)

tk.Label(wuranwu_bz,text= "cod国标").grid(row=0,column=1, padx=1 ,pady=1)
tk.Label(wuranwu_bz,text= "氨氮国标").grid(row=0,column=2, padx=1 ,pady=1)
tk.Label(wuranwu_bz,text= "总磷国标").grid(row=0,column=3, padx=1 ,pady=1)
tk.Label(wuranwu_bz,text= "总氮国标").grid(row=2,column=1, padx=1 ,pady=1)
tk.Label(wuranwu_bz,text= "氯化物标").grid(row=2,column=2,padx=1 ,pady=1)

v5 = tk.StringVar()
v6 = tk.StringVar()
v7 = tk.StringVar()
v8 = tk.StringVar()
v9 = tk.StringVar()


e5 = tk.Entry(wuranwu_bz, textvariable=v5)
e5.insert(0,'30.00')
e6 = tk.Entry(wuranwu_bz, textvariable=v6)
e6.insert(0,'1.50')
e7 = tk.Entry(wuranwu_bz, textvariable=v7)
e7.insert(0,'0.30')
e8 = tk.Entry(wuranwu_bz, textvariable=v8)
e8.insert(0,'15.00')
e9 = tk.Entry(wuranwu_bz, textvariable=v9)
e9.insert(0,'1.50')

e5.grid(row=1, column=1,sticky='W' , padx=1 ,pady=1)
e6.grid(row=1, column=2,sticky='W',padx=1 ,pady=1)
e7.grid(row=1, column=3,sticky='W' , padx=1 ,pady=1)
e8.grid(row=3, column=1,sticky='W', padx=1 ,pady=1)
e9.grid(row=3, column=2,sticky='W' , padx=1 ,pady=1)



#####做一个数据显示区域
jg = tk.LabelFrame(root,text="导出数据结果展示",padx=1,pady=1)
jg.grid(row=3,columnspan=2,sticky='w',padx=1,pady=1)

text=tk.Text(jg,width=110,height=15)
scroll=tk.Scrollbar(jg)
scroll.grid(row=0,column=1)
text.grid(row=0,column=0)
scroll.config(command=text.yview)
text.config(yscrollcommand=scroll.set)

#####开始采集按钮
###创建函数开始动作
def ceshi():
   
    ###获取时间段参数
    ###ext="昨日21:00~今日6:00",
    ##系统当前时间
    time1 = datetime.datetime.now()
    ##获取今天的时间
    today = datetime.date.today()
    ##yesterday为昨天时间
    oneday = datetime.timedelta(days=1)
    yesterday = today - oneday
    try:
      如果shijian1Var这个框被勾选了,将执行什么动作
        if shijian1Var.get() == '1':
            ###需要执行的操作
        	pass
        
        如果shijian2Var这个框被勾选了,将执行什么动作
        if shijian2Var.get() == '1':
        	###需要执行的操作
        	pass

        如果shijian3Var这个框被勾选了,将执行什么动作
        if shijian3Var.get() == '1':
        	###需要执行的操作
        	pass

            
    except Exception as  e:
        tk.messagebox.askokcancel("提示", e)

    text.insert(tk.END, '===================采集数据数据已终止===================\n')


##当点击“开始采集程序按钮”时,将触发一个叫ceshi的函数。
tk.Button(root, text="开启采集程序", width=15, command=ceshi).grid(row=3, column=1, sticky='NE', padx=10, pady=5)  # W左边
tk.Button(root, text="退出当前程序", width=15, command=root.quit).grid(row=3, column=1,sticky='SE', padx=10, pady=5)  # E右边



root.mainloop()  # 进入消息循环


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读