python的tkinter中的variable封装成类后调用无效?

学校要求开发一个小程序,目前我做了个查询天气的,当查询天气单独使用时,调用正常,可是import查询天气后,就出了bug

主程序代码:

from tkinter import *
import WEATHER

class main_menu:
    def __init__(self, master):
        master.title('主菜单')
        master.geometry('250x100')
        master.resizable(width=False, height=False)
        F1 = Frame(master)
        F2 = Frame(master)
        F1.pack(side=TOP)
        F2.pack(side=BOTTOM)

        weather_buttom = Button(F1, text='天气查询', command=self.init_weather)
        express_buttom = Button(F1, text='快递查询')
        plane_buttom = Button(F2, text='机票查询')
        train_buttom = Button(F2, text='车票查询')
        weather_buttom.pack(side=LEFT, pady=10, padx=10)
        express_buttom.pack(side=RIGHT, pady=10, padx=10)
        plane_buttom.pack(side=LEFT, pady=10, padx=10)
        train_buttom.pack(side=RIGHT, pady=10, padx=10)


    def init_weather(self):
        weather_window = Tk()
        weather = WEATHER.Weather(weather_window)
        weather_window.mainloop()



if __name__ == '__main__':
    tk = Tk()
    main = main_menu(tk)
    tk.mainloop()

天气查询实现的代码:

import time
from selenium import webdriver  #导入Selenium的webdriver
from selenium.webdriver.common.keys import Keys  #导入Keys
from tkinter import *

class Weather:
    def __init__(self, master):
        master.title('天气查询')
        master.resizable(width=False, height=False)
        F1 = Frame(master)
        F2 = Frame(master)
        F1.pack(side=TOP)
        F2.pack(side=BOTTOM)

        self.var = StringVar()
        self.var.set('aaaaa')

        self.e = Entry(F1)
        self.e.pack(side=LEFT, padx=5, pady=5)

        b = Button(F1, text='确认', command=self.__search)
        b.pack(side=RIGHT, padx=5, pady=5)

        L = Label(F2, textvariable=self.var, height=3)
        L.pack(side=BOTTOM)


    def __search(self):
        city = self.e.get()
        print('查询需要一定时间,请稍候...')

        driver = webdriver.PhantomJS()  #指定使用的浏览器,初始化webdriver
        driver.get("http://www.tianqi.com/")  #请求网页地址
        assert "天气" in driver.title  #看看 关键字 是否在网页title中,如果在则继续,如果不在,程序跳出。
        search = driver.find_element_by_xpath('//*[@id="index_serch"]/input')  #找到xpath元素,这里是个搜索框
        search.clear()  #清空搜索框中的内容
        search.send_keys(city)  #在搜索框中输入city
        search.send_keys(Keys.RETURN)  #相当于回车键,提交

        temperature_text = driver.find_element_by_xpath('/html/body/div[5]/div/div[1]/dl/dd[3]/p/b').text
        temperature_now = '%s当前温度:%s ℃'%(city, temperature_text)
        weather_text = driver.find_element_by_xpath('/html/body/div[5]/div/div[1]/dl/dd[3]/span/b').text
        weather_now = '%s当前天气:%s'%(city, weather_text)

        text = '查询城市:%s\n' \
               '%s\n' \
               '%s'%(city, weather_now, temperature_now)
        self.var.set(text)
        print(text)

        driver.close()  #关闭webdriver



if __name__ == '__main__':
    root = Tk()
    weather = Weather(root)
    root.mainloop()

查询天气中的self.var在把查询天气单独使用时,可以正常赋值,而当在menu中调用查询天气,self.var就无效了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于python,tkinter中的messagebox
![图片说明](https://img-ask.csdn.net/upload/201912/01/1575190545_552212.png) 这个对话框中,想要实现功能: 1、点击“是”后,弹出电影连接或者直接播放电影 2、点击“否”或“取消”后,关闭当前窗口 怎么样可以实现?? 怎样可以对点击后的返回值进行处理啊???
python、tkinter中,循环方式使用lambda传递参数,为什么只传了最后一个
导入tkinter,制作几个按钮,点击每个按钮时打印出一个变量值,我期待的效果是:三个按钮分别打印出0,1,2。但结果,得到的都是2。lambda传值怎么会这样??搞不懂,哪位老师赐教一下 import tkinter as tk mywin = tk.Tk() def fun(val): print(val) for i in range(0,3): tk.Button(mywin, text='btn'+str(i), width=20, height=2, command=lambda:fun(i)).pack() mywin.mainloop() Italink 老师说lambda传值是传的变量i的引用,那么怎么样让lambda传递i的值,而不是i的引用呢?? tk.Button(mywin, text='btn'+str(i), width=20, height=2, command=lambda:fun(i)).pack() 这句要怎么写才行呢? Italink 老师能再说的细一点吗? 我初学Python, 不懂的地方多......
Python的tkinter模块,通过给Button添加事件绑定改变其state失败。
Python的tkinter模块,通过给Button添加事件绑定改变其state失败,请问这是为什么,附上代码如下 ![图片说明](https://img-ask.csdn.net/upload/201703/09/1489036463_131680.png) 测试结果输出 relief的样式为sunken,但实际窗口上的button标签样式并未改变,请问这是什么问题,如何实现改变relief
python使用tkinter调用新窗口,被调用的窗口点击右上角关闭按钮会报错,怎么屏蔽按钮
主窗口中写了一个按钮调用一个函数,打开一个新的窗口 ``` def ask_wifi(self): inputDialog =getWifi.MyDialog() self.wait_window(inputDialog) return inputDialog.wifi ``` 新的窗口中需要点击选择并返回选择内容,选择遇到一个问题,点击右上角关闭按钮x的时候会报错,有什么帮忙屏蔽按钮或者处理这个报错,新窗口代码: ``` import tkinter as tk from tkinter import * around_wifi=['1','2','3'] class MyDialog(tk.Toplevel):#wifi选择界面 def __init__(self): super().__init__() self.title('wifi') self._setup_UI() def _setup_UI(self): self.wifi_listbox=Listbox(self) self.wifi_listbox.bind('<Double-Button-1>',self.ok) for str in around_wifi: self.wifi_listbox.insert(END,str) self.wifi_listbox.grid() def ok(self,i): wifi=self.wifi_listbox.get(self.wifi_listbox.curselection()) self.wifi=[wifi] print('wifi:',wifi) self.destroy() return self.wifi ``` 报错如下: AttributeError: 'MyDialog' object has no attribute 'wifi'
python中tkinter的text问题
在文本框插入内容,我们用text.insert('insert',...) 但这种做法是添加式的插入,可以进行覆盖式的插入吗? 大神们指教
python3中tkinter如何删除指定控件
我想问一下,我在tkinter中添加了一个label,现在想删除或者隐藏它,应该怎么做? 我是展示了一张图片,想通过其他线程在完成操作后,来删掉这个图片。 搜索了很多文章,最接近的是提及text的删除,但对于整个控件label的删除,居然没人回答过!在官网文档中也未提及,大家都不删除控件吗? 代码我给简化了一下: ``` #-*-coding:utf-8-*- import tkinter as tk top = tk.Tk() filename = 'D:\\python34\\1.png' img = tk.PhotoImage(file = filename) label = tk.Label(top, image=img) label.pack() top.mainloop() ```
python2 中tkinter 打开文件 中文乱码
这个程序的目的是写一个文件树软件,通过“打开”button 打开地址对话框,选择文件夹。如果是文件夹 双击则继续打开 如果是文件 双击则打开文件。 (双击打开文件还没写) 现在打开文件夹之后 很多地方显示乱码,而且打开某一个文件并不是马上显示出文件夹中所有文件,需要点进去再退回来才能显示。 现在程序应该有不少错误,一点点改吧。 首先请问大神 怎么解决中文乱码问题? 在运行的时候提示这种错误语言: Traceback (most recent call last): File "D:\Python27\lib\lib-tk\Tkinter.py", line 1547, in __call__ return self.func(*args) File "d:\Untitled-1.py", line 28, in setDirAndGo doLS() File "d:\Untitled-1.py", line 52, in doLS cwd.set(os.getcwd()+'\\'+tdir) UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 3: ordinal not in range(128) ``` #!/usr/bin/env python # -*- coding: utf-8 -*- import os from time import sleep from Tkinter import * import tkFileDialog #弹出选择路径的库 import tkMessageBox import fnmatch #选择文件的关键词 def dakai(): dirs.delete(0,END) default_dir = r"C:\Users\lenovo\Desktop" # 设置默认打开目录 path = tkFileDialog.askdirectory(title=u"选择文件", initialdir=(os.path.expanduser(default_dir))) doLS1(path) #双击时调用,双击时,设置背景色为红色,并调用doLS函数打开所选文件 def setDirAndGo(ev=None): last = cwd.get() dirs.config(selectbackground='red') check = dirs.get(dirs.curselection()) if not check: check = os.curdir cwd.set(check) doLS() #实现更新目录的核心函数 def doLS(ev=None): error = '' tdir = cwd.get() if not tdir:tdir=os.curdir #若路径输入错误,或者打开的是文件,而不是目录,则更新错误提示信息 if not os.path.exists(tdir): error = os.getcwd()+'\\'+tdir + ':未找到文件' elif not os.path.isdir(tdir): error = os.getcwd()+'\\'+tdir + ':未找到目录' if error: cwd.set(error) top2.update() sleep(1) if not (last): last = os.curdir cwd.set(os.curdir) dirs.config(selectbackground='LightSkyBlue') dirn.config(text=os.getcwd()+'\\'+tdir) top2.update() return cwd.set(os.getcwd()+'\\'+tdir) top2.update() dirlist = os.listdir(tdir)#os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。 dirlist.sort() os.chdir(tdir)#os.chdir() 方法用于改变当前工作目录到指定的路径。 #更新界面上方标签内容 dirl.config(text=os.getcwd().decode("gbk").encode("utf-8")) top2.update() dirs.delete(0,END) dirs.insert(END,os.pardir)#os.chdir(os.pardir) 切换到上级目录 即将上级目录.. 插入到dirs对象中 #把选定目录的文件或文件夹的名字的列表依次插入到dirs对象中 for eachFile in dirlist: dirs.insert(END,eachFile.decode("gbk").encode("utf-8")) #先解码 再编码 bingo! cwd.set(os.curdir) dirs.config(selectbackground='LightSkyBlue') def doLS1(path): error = '' tdir = path if not tdir:tdir=os.curdir #若路径输入错误,或者打开的是文件,而不是目录,则更新错误提示信息 if not os.path.exists(tdir): error = os.getcwd()+'\\'+tdir + ':未找到文件' elif not os.path.isdir(tdir): error = os.getcwd()+'\\'+tdir + ':未找到目录' if error: cwd.set(error) top2.update() sleep(1) if not (last): last = os.curdir cwd.set(os.curdir) dirs.config(selectbackground='LightSkyBlue') dirn.config(text=os.getcwd()+'\\'+tdir) top2.update() return cwd.set(os.getcwd()+'\\'+tdir) top2.update() dirlist = os.listdir(tdir)#os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。 dirlist.sort() os.chdir(tdir)#os.chdir() 方法用于改变当前工作目录到指定的路径。 #更新界面上方标签内容 dirl.config(text=os.getcwd().decode("gbk").encode("utf-8")) top2.update() dirs.delete(0,END) dirs.insert(END,os.pardir)#os.chdir(os.pardir) 切换到上级目录 即将上级目录.. 插入到dirs对象中 #把选定目录的文件或文件夹的名字的列表依次插入到dirs对象中 for eachFile in dirlist: dirs.insert(END,eachFile.decode("gbk").encode("utf-8")) cwd.set(os.curdir) dirs.config(selectbackground='LightSkyBlue') top2 = Tk() top2.title('营销集约管控中心-文件树') cwd = StringVar(top2) dirl = Label(top2,fg = 'blue') dirl.pack() dirfm = Frame(top2) dirsb = Scrollbar(dirfm) dirsb.pack(side=RIGHT,fill=Y) dirs = Listbox(dirfm,height=15,width=50,yscrollcommand=dirsb.set) #通过使用List的bind()方法,将鼠标双击事件绑定,并调用setDirAndGo函数 dirs.bind('<Double-1>',setDirAndGo) # 下面实现单击时,将所选文件路径加名字更新到下方输入框控件中,不能用self.dirs.bind('<Button-1>', self.setDirn)绑定单击事件,会出错 #dirs.bind("<<ListboxSelect>>", setDirn) dirsb.config(command=dirs.yview) dirs.pack(side=LEFT,fill=BOTH) dirfm.pack() #第二个框架bfm,放置按钮 bfm = Frame(top2) open = Button(bfm,text='打开',command=dakai,activeforeground='white',activebackground='blue') open.pack(side=LEFT) bfm.pack() if __name__ =='__main__': #设定初始目录为桌面 mainloop() ```
Python-Tkinter请问有什么办法可以在事件处理过程中,即时刷新Text的信息?
新手刚学了Thinter,我用了for循环往文本框里添加信息,,用的insert方法,点击按钮后结果如下图所示,,表面上看不出控制台的结果跟Text组件的结果有啥区别,,但是事实上左边的Text的信息是4秒后才把添加的四条信息刷新出来的,,然而看到信息里面的用time方法打印出的时间戳确实方法已经处理过…… 也就是说事件发生-循环语句中处理好但是要方法结束后,事件产生的组件信息才会刷新出来? ``` def test(): for i in range(1,5): i=i*1.0 print(time.time()) t4.insert(i,'hello--'+str(time.time())+'\n') if i==4: break time.sleep(1) print(time.time()) b2=Button(frm_l,width=10,command=test) ``` ![图片说明](https://img-ask.csdn.net/upload/201507/09/1436439793_929807.jpg) 那请问有什么办法可以在事件处理过程中,即时刷新Text的信息? 补充一下,其实搞这个Text信息,,就是为了使用时候可以看到程序的一些运行情况。。我是想把方法的运行情况的返回值(把原本打印到控制台的提示信息变成方法的返回值)都直接显示到Text文本框里面,这是比较直观的方法。 然而事实上现在却卡在这里。或者换个思路,,有什么办法让别人(没有安装python环境)使用打包后的exe程序的时候看到控制台里面的信息。。
python3 tkinter获取Entry输入值报错
``` #!/usr/bin/env python # encoding: utf-8 from tkinter import * top = Tk() top.title('计算器') top.grid_size() label0 = Label(top, text='计算器', font='仿宋 24 bold', width=20, height=2) label0.grid(row=0, column=1, columnspan=3, rowspan=2) label1 = Label(top, text='输入参数一:', font='楷体 13', width=16, height=1) label1.grid(row=2, column=0) label2 = Label(top, text='输入参数二:', font='楷体 13', width=16, height=1) label2.grid(row=3, column=0) input1 = Entry(top, width=20) data1 = int(input1.get()) input1.grid(row=2, column=1) input2 = Entry(top, width=20) data2 = int(input2.get()) input2.grid(row=3, column=1) button1 = Button(top, text='滚加', width=20, height=1) button1.grid(row=6, column=0) jieguo = Text(top, width=40, height=6) jieguo.grid(row=2, column=2, rowspan=4, columnspan=2) button6 = Button(top, text='退出', command=top.quit(), width=110) button6.grid(row=8, column=0, columnspan=5) mainloop() ``` 做的一个小计算器,具体计算过程还没写,刚写了一个可视界面,运行时报错,问问各位大神,(=@__@=)哪里错了 data1 = int(input1.get()) ValueError: invalid literal for int() with base 10: ''
Python关于Tkinter的多线程问题
使用TKinter编写界面,实现选择测试用例并执行,最后打印出测试结果。功能是实现了,可是每次一点下开始执行,整个界面就失去响应了,要等到测试用例执行完了,界面才恢复响应,已经把执行用例和画界面分别作为单独的线程来处理了,为什么还是不行? 界面如下: ![图片说明](https://img-ask.csdn.net/upload/201512/22/1450763641_583787.png) 相关代码如下: def ExcuteSet(): global Exe_Flag Exe_Flag=True #执行测试用例 exe_thread= threading.Thread(target=ExecuteCase) exe_thread.setDaemon(True) exe_thread.start() exe_thread.join() def Interface(): global ComX,Baud,TBuf global txt1,txt2,txt3 # 界面 root.title(u'自动化测试工具') root.geometry('800x600') #滚动条 scroll1=Tk.Scrollbar(root,orient=Tk.VERTICAL) #滚动条 scroll1.pack(fill="y",side='right') txt1 = Tk.Text(root,width=60,height=20,border=5,yscrollcommand=scroll1.set) txt1.pack(side='right',padx=3,pady=1,anchor='c') txt1.bind("<Key>",TextKey) scroll1.config(command=txt1.yview) txt1.place(x=300,y=300) #scroll1.place(x=750,y=300) #操作按钮 TBuf = StringVar() cnv1 = tk.Canvas(root,height=260,width=260) cnv1.pack(side='bottom',padx=0,pady=0,anchor='c') cnv1.create_window(60,40,window=ttk.Label(root,text=u'串口号: ')) cnv1.create_window(165,40,window=ttk.Combobox(root,textvariable=ComX,values=['COM1', 'COM2', 'COM3','COM4','COM5', 'COM6', 'COM7','COM8'],width=12)) cnv1.create_window(60,80,window=ttk.Label(root,text=u'波特率: ')) cnv1.create_window(165,80,window=ttk.Combobox(root,textvariable=Baud,values=['4800','9600','14400','19200','38400','57600','115200'],width=12)) cnv1.create_window(70,120,window=ttk.Label(root,text=u'输入目录: ')) cnv1.create_window(240,120,window=ttk.Entry(root,textvariable=TBuf,width=40)) cnv1.create_window(80,150,window=ttk.Button(root,textvariable=OpenOff,command=COMOpen,width=12)) cnv1.create_window(80,180,window=ttk.Button(root,text=u'选择用例',command=SelectCase,width=12)) cnv1.create_window(80,210,window=ttk.Button(root,text=u'开始执行',command=ExcuteSet,width=12)) cnv1.create_window(80,240,window=ttk.Button(root,text=u'停止测试',command=StopTest,width=12)) cnv1.create_window(175,180,window=ttk.Button(root,text=u'清除用例',command=ClearCase,width=12)) cnv1.place(x=320,y=0) #滚动条 scroll2=Tk.Scrollbar(root,orient=Tk.VERTICAL) #滚动条 scroll2.pack(fill="y",side='left') #显示测试用例 txt2 = Tk.Text(root,width=40,height=20,border=5,yscrollcommand=scroll2.set) txt2.pack(padx=3,pady=1,anchor='c') scroll2.config(command=txt2.yview) txt2.place(x=0,y=0) scroll2.place(x=300,y=0) #显示测试用例执行情况 txt3 = Tk.Text(root,width=40,height=20,border=5) txt3.pack(padx=3,pady=1,anchor='c') txt3.place(x=0,y=300) root.mainloop() if __name__=='__main__': isOpened.clear() Init() #初始化 Opencom() threads=[] #读串口数据 com_thread = threading.Thread(target=COMTrce) threads.append(com_thread) #画界面 inter_thread = threading.Thread(target=Interface) threads.append(inter_thread) #执行用例 #exe_thread= threading.Thread(target=ExecuteCase) #threads.append(inter_thread) for t in threads: t.setDaemon(True) t.start() for t in threads: t.join() print "Over!!!!!!!!!!!" ``` ```
python中tkinter自带的下载文件进度条
![图片说明](https://img-ask.csdn.net/upload/201708/01/1501574065_29575.jpg) 大神们,像这样的进度条怎么做啊,需要什么模块
python tkinter创建GUI后创建多进程报错
代码如下: ``` import multiprocessing as mp from tkinter import * class Multi_pro: def __init__(self,master): self.parent = master self.parent.geometry('400x400') self.bt = Button(self.parent,text='开始子进程',command=self.pro_start) self.bt.place(x=5,y=2) self.scbar = Scrollbar(self.parent,bd = 30) self.scbar.place(x=360,y=25) self.lstbx = Listbox(self.parent,height=8,width = 50,yscrollcommand = self.scbar.set) self.lstbx.place(x=1,y=25) self.lstbx.insert(END,'lalala!') self.scbar.config(command = self.lstbx.yview) def pro_start(self): self.q = mp.Queue() self.sunpro1 = mp.Process(target=self.func) self.sunpro1.start() while True: print(self.q.get()) def func(self): sum = 0 for i in range(100): sum+=i q.put(sum) if __name__ == '__main__': tk = Tk() Multi_pro(tk) tk.mainloop() ``` ![代码错误提示如下:](https://img-ask.csdn.net/upload/201911/02/1572681785_951697.png)
python中用tkinter加email写邮件发送系统
用tkinter的button添加文件 但是email模块中都是对单一文件处理的函数 有没有可以处理任意文件格式的函数 还是需要用后缀名去判断格式 然后再用相应的函数?求解。
python3 tkinter 在指定文件夹内查找所有文件 是否包含关键字
关键字 通过entry 输入 ,关键字为:entry.get() 指定文件夹通过path = tkinter.filedialog.askdirectory()获取地址 怎么能够查找包含关键字的文件?
Python_tkinter关于主窗口和弹窗的控件的显示
请各位大佬指教,谢谢 :) 目的:主窗口选择通讯类型,选定后显示弹窗内容,同时隐藏主窗口;弹窗关闭后,主窗口恢复。 问题:选择通讯类型后,弹窗内无任何内容,关闭弹窗(还没添加弹窗的destroy,现在是直接右上角的×),发现主窗口的界面被弹窗的内容覆盖,没弄明白为什么会显示到主窗口去 : ( ``` import tkinter as tk from tkinter import ttk # import SocketTest # import time class TcpTool(tk.Tk): def __init__(self): super().__init__() self.modeSelected = tk.StringVar() self.canvas = tk.Canvas(self, width=500, height=400) self.background = tk.PhotoImage(file=r'E:\picture3.gif') self.dispalyBackground = self.canvas.create_image(250, 0, anchor='n', image=self.background) self.combobox = ttk.Combobox(self, textvariable=self.modeSelected) self.combobox['value'] = ('', ' TCP-Server', ' TCP-Client', ' UDP') self.combobox.current(0) # self.mode = tk.Label(text='Communicate Mode') # self.displayBackground.pack() # self.combobox.place() self.combobox.bind("<<ComboboxSelected>>", self.newWindow) self.canvas.place(x=0, y=0) self.canvas.create_window(100, 80, width=100, height=20, window=self.combobox) # self.canvas.create_window(150,50,width=130,height=20,window=self.mode) self.title('Communicate Tools') self.geometry('500x300') self.resizable(False, False) self.mainloop() def donothing(self): pass def newWindow(self, event_type): if self.combobox.get() == ' TCP-Server': mydialog = NewDialog(1) elif self.combobox.get() == ' TCP-Client': mydialog = NewDialog(2) elif self.combobox.get() == ' UDP': mydialog = NewDialog(3) else: return self.withdraw() self.wait_window(mydialog) self.update() self.deiconify() return class NewDialog(tk.Toplevel): def __init__(self, event): super().__init__() self.title('Communicate Tools') self.geometry('680x500') # self.resizable(False, False) self.wm_attributes('-topmost', 1) self.frame_top = tk.Frame(width=640, height=80, bg='grey') self.frame_center_left = tk.Frame(width=310, height=250, bg='blue') self.frame_center_right = tk.Frame(width=310, height=250, bg='yellow') self.frame_bottom = tk.Frame(width=640, height=100, bg='purple') self.localIp = tk.IntVar() self.localPort = tk.IntVar() self.destinationIp = tk.IntVar() self.destinationPort = tk.IntVar() self.sendEntry = tk.StringVar() self.acceptEntry = tk.StringVar() self.click = tk.StringVar() self.connectStatus = 0 self.localIp.set('172.168.155.167') self.localPort.set('9000') self.destinationIp.set('172.168.155.166') self.destinationPort.set('9001') self.sendEntry.set('Enter data to send') # self.acceptEntry.set('data get from destination ') tk.Label(self.frame_top, text='Local IP:', width=10, height=1, font=('Arial', 12) ).place(x=20, y=10) tk.Label(self.frame_top, text='Local Port:', width=10, height=1, font=('Arial', 12)).place(x=20, y=46) tk.Entry(self.frame_top, textvariable=self.localIp, font=('Arial', 13), width=14).place(x=125, y=10) tk.Entry(self.frame_top, textvariable=self.localPort, font=('Arial', 13), width=14).place(x=125, y=46) tk.Checkbutton(self.frame_top, text='连接', width=8, variable=self.click, font=('幼圆', 11), cursor='arrow', selectcolor='red', relief='sunken', justify=tk.CENTER, onvalue=1, offvalue=0, command=self.socConnect, indicatoron=False).place(x=560, y=10) self.socketStatus = tk.Label(text='', width=9, bg='red').place(x=572, y=56) self.remoteAddress = tk.Label(self.frame_top, text='Destination IP', width=15, height=1, font=('Arial', 12)) self.remotePort = tk.Label(self.frame_top, text='Destination Port', width=15, height=1, font=('Arial', 12)) self.enter_remoteAddress = tk.Entry(self.frame_top, textvariable=self.destinationIp, font=('Arial', 13), width=14) self.enter_remotePort = tk.Entry(self.frame_top, textvariable=self.destinationPort, font=('Arial', 13), width=14) self.remoteAddress.place(x=270, y=10) self.remotePort.place(x=270, y=46) self.enter_remoteAddress.place(x=420, y=10) self.enter_remotePort.place(x=420, y=46) tk.Entry(self.frame_center_left, textvariable=self.sendEntry, font=('Arial', 12)).place(x=10, y=220) self.sendAreaText = tk.Text(self.frame_center_left, width=33, height=10, font=('Arial', 11)) self.sendAreaScroll = tk.Scrollbar(self.frame_center_left, orient='vertical', command=self.sendAreaText.yview) self.sendAreaText.configure(yscrollcommand=self.sendAreaScroll.set) self.send = tk.Label(self.frame_center_left, text='Send Area', width=10, height=1, font=('Arial', 12)) self.sendAreaScroll.place(x=278, y=100) self.sendAreaText.place(x=10, y=35) self.send.place(x=107, y=5) # tk.Entry(self.frame_center_right, textvariable=self.acceptEntry, font=('Arial', 12)).place(x=10, y=10) self.acceptAreaText = tk.Text(self.frame_center_right, width=33, height=10, font=('Arial', 11)) self.acceptAreaScroll = tk.Scrollbar(self.frame_center_right, orient='vertical', bd=50, command=self.acceptAreaText.yview) self.acceptAreaText.configure(yscrollcommand=self.acceptAreaScroll.set) self.accept = tk.Label(self.frame_center_right, text='Accept Area', width=10, height=1, font=('Arial', 12)) self.acceptAreaScroll.place(x=278, y=100) self.acceptAreaText.place(x=10, y=35) self.accept.place(x=107, y=5) self.frame_top.grid(row=0, column=1, columnspan=3, padx=10, pady=10) self.frame_center_right.grid(row=1, column=0, columnspan=2, padx=10, pady=5) self.frame_center_left.grid(row=1, column=2, columnspan=2, padx=5, pady=5) self.frame_bottom.grid(row=2, column=0, columnspan=3, padx=10, pady=10) self.frame_top.grid_propagate(0) self.frame_center_left.grid_propagate(0) self.frame_center_right.grid_propagate(0) self.frame_bottom.grid_propagate(0) def socConnect(self): pass if __name__ == '__main__': L = TcpTool() ```
python tkinter中button怎么绑定多个变量
我想了好久,想不到解决办法。 我是用tkinter+selenium,一键启动几个浏览器。 是考虑多线程吗?还是本身command可以直接绑定多个变量? 求指点解决思路最好,比如怎么查看button的command的使用。。。。。 然后再考虑多线程或者别的什么? 我实在是小白,大神别见笑,提点两句给个方向,谢谢
关于python tkinter的问题
我用tkinter的时候,为什么button按钮绑定了函数,运行以后函数就自动运行了 from tkinter import * from stock_system.updata.tushare_data_updata import tushare_update def update(): tu = tushare_update() tu.update_sql() root = Tk() # 通过command属性来指定Button的回调函数 Button(root, text='Hello Button', command=update).pack() root.mainloop()
Python使用tkinter实时动态显示图像闪烁问题?
global img_ global laser_map # 地图数据,从服务器收到数据,先解码 laser_map = base64.b64decode(msg) file_image = open('build_map.png', 'wb+') file_image.write(laser_map) img_ = Image.open("build_map.png",) width, height = img_.size # 做旋转操作 if width < height: self.rotate_flag = True img_.rotate(90, expand=True).save('build_map_rotate.png') else: self.rotate_flag = False img_.rotate(0, expand=True).save('build_map_rotate.png') self.zoom_map_image = Image.open('build_map_rotate.png') # PIL project tranform into PhotoImage project laser_map = ImageTk.PhotoImage(self.zoom_map_image) self.laser = self.canvas_map.create_image(self.canvas_center_x, self.canvas_center_y, anchor='center',image=laser_map) self.canvas_map.place(x=0, y=0)
python 关于tkinter.Tk().geometry("widthxheight+x+y")参数问题的深入提问。
环境 python 3.7.2 ![图片说明](https://img-ask.csdn.net/upload/201902/14/1550124344_4153.png) 1:关于tkinter.Tk().geometry("widthxheight+x+y"),官方的文档是:Set geometry to NEWGEOMETRY of the form =widthxheight+x+y. Return。这些我都明白,测试中发现即使省略一部分参数也没有问题。比如: ![图片说明](https://img-ask.csdn.net/upload/201902/14/1550124512_154603.png) 直接输入长宽 或者直接输入位置点(x,y)都能正常运行。于是我就想进入方法里面看看是怎么运行的。 2:![图片说明](https://img-ask.csdn.net/upload/201902/14/1550124782_620507.png) 在eclipse中按住Ctrl点击geometry方法,进入到图2总的1842行处。 再由代码判断进入到了1838行的def wm_geometry(self, newGeometry=None):方法。在方法中执行1841行self.tk.call('wm', 'geometry', self._w, newGeometry)语句。(其中形参newGeometry存放的传入的字符串) 3问题 ![图片说明](https://img-ask.csdn.net/upload/201902/14/1550125458_740329.png) 继续进入call方法,发现有很多选择,都设置断点断点调试发现断点都没有走到。分析参数感觉有点像是映射,调用wm类中的geometry方法。(但检查发现这个方法就是在wm类里面) 本人刚刚学习python(以前有点java基础),想请教一下大神后面应该怎么去分析传入的参数处理???
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
兼职程序员一般可以从什么平台接私活?
这个问题我进行了系统性的总结,以下将进行言简意赅的说明和渠道提供,希望对各位小猿/小媛们有帮助~ 根据我们的经验,程序员兼职主要分为三种:兼职职位众包、项目整包和自由职业者驻场。 所谓的兼职职位众包,指的是需求方这边有自有工程师配合,只需要某个职位的工程师开发某个模块的项目。比如开发一个 app,后端接口有人开发,但是缺少 iOS 前端开发工程师,那么他们就会发布一个职位招聘前端,来配合公司一...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
写了很久,这是一份最适合/贴切普通大众/科班/非科班的『学习路线』
说实话,对于学习路线这种文章我一般是不写的,大家看我的文章也知道,我是很少写建议别人怎么样怎么样的文章,更多的是,写自己的真实经历,然后供大家去参考,这样子,我内心也比较踏实,也不怕误导他人。 但是,最近好多人问我学习路线,而且很多大一大二的,说自己很迷茫,看到我那篇 普普通通,我的三年大学 之后很受激励,觉得自己也能行,(是的,别太浪,你一定能行)希望我能给他个学习路线,说
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
碎片化的时代,如何学习
今天周末,和大家聊聊学习这件事情。 在如今这个社会,我们的时间被各类 APP 撕的粉碎。 刷知乎、刷微博、刷朋友圈; 看论坛、看博客、看公号; 等等形形色色的信息和知识获取方式一个都不错过。 貌似学了很多,但是却感觉没什么用。 要解决上面这些问题,首先要分清楚一点,什么是信息,什么是知识。 那什么是信息呢? 你一切听到的、看到的,都是信息,比如微博上的明星出轨、微信中的表情大战、抖音上的...
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。 背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法 不过,当我看了源代码之后 这程序不到50行 尽管我有多年的Python经验,但我竟然一时也没有看懂 当然啦,原作者也说了,这个代码也是在无聊中诞生的,平时撸码是不写中文变量名的, 中文...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
相关热词 c# 输入ip c# 乱码 报表 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件
立即提问