python 关于tkinter.Tk().geometry("widthxheight+x+y")参数问题的深入提问。

环境 python 3.7.2
图片说明

1:关于tkinter.Tk().geometry("widthxheight+x+y"),官方的文档是:Set geometry to NEWGEOMETRY of the form =widthxheight+x+y. Return。这些我都明白,测试中发现即使省略一部分参数也没有问题。比如:

图片说明

直接输入长宽 或者直接输入位置点(x,y)都能正常运行。于是我就想进入方法里面看看是怎么运行的。

2:图片说明

在eclipse中按住Ctrl点击geometry方法,进入到图2总的1842行处。
再由代码判断进入到了1838行的def wm_geometry(self, newGeometry=None):方法。在方法中执行1841行self.tk.call('wm', 'geometry', self._w, newGeometry)语句。(其中形参newGeometry存放的传入的字符串)

3问题
图片说明
继续进入call方法,发现有很多选择,都设置断点断点调试发现断点都没有走到。分析参数感觉有点像是映射,调用wm类中的geometry方法。(但检查发现这个方法就是在wm类里面)
本人刚刚学习python(以前有点java基础),想请教一下大神后面应该怎么去分析传入的参数处理???

1个回答

同问,但感觉是更底层的代码看不到了,应该是袭用tcl,更像是预编译好了的模块。个人见解。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
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基础),想请教一下大神后面应该怎么去分析传入的参数处理???
大神请问下tkinter的这种格式为什么获取不到entry的值
这个代码为啥获取不到值呢? 获取到的是空值 代码如下: import tkinter root = tkinter.Tk() root.geometry("500x400") def abc(): global s v = tkinter.StringVar() e = tkinter.Entry(root, textvariable=v) e.pack() s = v.get() def aaa(): print(s) but1 = tkinter.Button(root,text = "点",command = abc) but2 = tkinter.Button(root,text = "获取",command = aaa) but1.pack() but2.pack() root.mainloop()
python tkinter 组件config报错
``` import sys import time from tkinter import * clock_lab = None def refresh_time(): clock_lab.config(text = time.localtime(time.time())) myclock = Tk() myclock.title("myclock") myclock.geometry("400x200") clock_lab = Label(myclock,text= time.localtime(time.time())).pack() clock_bt = Button(myclock, text="clock", command =lambda:refresh_time()).pack() myclock.mainloop() ``` 按过按钮之后报错,有没有人知道是怎么回事 >>> Exception in Tkinter callback Traceback (most recent call last): File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__ return self.func(*args) File "F:/code/python/clock.py", line 14, in <lambda> clock_bt = Button(myclock, text="clock", command =lambda:refresh_time()).pack() File "F:/code/python/clock.py", line 8, in refresh_time clock_lab.config(text = time.localtime(time.time())) AttributeError: 'NoneType' object has no attribute 'config'
python tkinter里面,我怎么把函数执行的结果显示(print)到创建的Text里面?
``` import tkinter as tk root=tk.Tk() root.title("how to do ") root.geometry('500x300') tk.Label(root, text="显示", bg="green", font=("Arial", 12), width=5, height=1).place(x=20,y=30) def printtext(): EditText.insert('1.0',A()) def A(): if 2>3:print("句子1") elif 2<0:print("句子2") else:print("句子3") EditText = tk.Text(root,width=20,height=10) EditText.grid(row=2,column=3) btn_test=tk.Button(root, text="按钮", command =printtext,width=5, height=2) btn_test.place( x=200,y=60) root.mainloop() ``` 这样执行的结果为:tkinter.TclError: wrong # args: should be ".!text insert index chars ?tagList chars tagList ...?"
在Python的GUI(tkinter)中,使用for循环添加多给个Entry组件,如何能够对这多个组件在光标离开后(focusout)进行验证?
在Python的GUI(tkinter)中,使用for循环添加多给个Entry组件,如何能够对这多个组件在光标离开后(focusout)进行验证? 代码如下: ``` from tkinter import * from tkinter import messagebox B_number = [] def C(): def row(): obtain_number = row_number.get() if obtain_number.isdigit(): if eval(obtain_number) > 10: messagebox.showinfo("提示","输入行数太多!,最多总计10行") row_number.delete(0,END) row_number.insert(0,"2") else: def judge_B(event): if B.get().isdigit(): print("成功") else: messagebox.showerror("错误","重新输入") a = eval(obtain_number)+1 for i in range(1,a): B = Entry(add) B.bind("<FocusOut>",judge_B) B_number.append(B) B.grid(row = len(B_number)+1,column = 2) else: messagebox.showerror("错误","字符不合法,已修改为2!") row_number_ene.delete(0,END) row_number_ene.insert(0,"2") add = Tk() add.title("行业绿色制造分级判定系数") add.geometry("500x500") Label(add,text = "行数: ").grid(row = 0,column = 0,padx = 5,pady = 10) row_num = StringVar() row_num.set("2") row_number = Entry(add,textvariable = row_num,bg = "grey",width = 7, justify = CENTER) row_number.grid(row =0,column = 1,pady = 10) Button(add,text = "增加多行",command = row).grid(row = 0, column = 2,pady = 10) C() ``` 存在问题,假设我添加两行,然后对每一行输入1,循环输入(即,第一行输入1-第二行输入1-第一行输入1-第二行输入1,第一行输入a,第二行输入a,第一行输入a,第二行 输入a,每次输入后,点上面行数 (避免多次点击)) 输出结果依次为: 报错;(这里应该是成功才对) 成功; 成功; 成功; 成功;(这里应该报错才对) 报错; 报错; 报错 小弟没有C币,还希望大神能帮忙解决下,小弟在此先行感谢
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 Entry文本框中显示数字0,怎么才能让它显示空文本框?
![图片说明](https://img-ask.csdn.net/upload/201907/10/1562737801_847856.jpg) from tkinter import* from random import* def callback(event): n=v.get() if n==x: lb3.config(text="猜中了!") elif n<x: lb3.config(text="遗憾,太小了,请继续!") else: lb3.config(text="遗憾,太大了,请继续!") x=randint(0,100) print(x) w=Tk() w.title("猜数字游戏") w.geometry("300x200") lb1=Label(w,text="----系统已经随机产生0-100的一个数,请猜出该数----") lb1.place(relx=0.5,anchor=N) lb2=Label(w,text="请输入您所猜的数") lb2.place(x=0,y=50) v=IntVar() ety=Entry(w,textvariable=v) ety.place(x=110,y=50) btn=Button(w,text="比较",width=8) btn.place(x=110,y=80) lb3=Label(w,text="") lb3.place(x=100,y=100) btn.bind_all("<Button-1>",callback) w.mainloop()
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创建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里面,怎么把函数的结果按照函数原本的样式输出到text框上面?
``` import tkinter as tk import time root=tk.Tk() root.title("how to do ") root.geometry('500x600') tk.Label(root, text="显示", bg="green", font=("Arial", 12), width=5, height=1).place(x=20,y=30) def print(): EditText.insert('1.0',A()) def A(): for i in range(100): time.sleep(1) #间隔1秒输出 if i < 3: yield ("编号{},字符串A".format(i)) if 3<i and i<5: yield ("编号{},字符串B".format(i)) if i >5: yield ("编号{},字符串C".format(i)) break return EditText = tk.Text(root,width=30,height=10) #创建文本框 EditText.grid(row=2,column=3) btn_test=tk.Button(root, text="按钮", command =print,width=5, height=2) btn_test.place( x=300,y=200) root.mainloop() ``` 这样子运行的结果:在text上出现:Generator Object A at 0x000002898B746CF0 如果把函数的字符串取出来: str=A() result=list(str) 这样子虽然可以输出,但是时间间隔没了、原格式也变了 期望输出结果是这样的: ![图片说明](https://img-ask.csdn.net/upload/201907/05/1562315645_427691.png) 但是如果像图片那样输出,代码可以改成: ``` def A(): for i in range(100): if i < 3: yield ("编号{},字符串A".format(i)) if 3<i and i<5: yield ("编号{},字符串B".format(i)) if i >5: yield ("编号{},字符串C".format(i)) break return for i in A(): print(i) ``` 但这样子在tkinter上insert不了 请问各位大佬,有没有什么办法解决。
缺少 numpy.random.common
我使用python的tkinter编写了一个程序,用pyinstaller编译之后,程序提示 failed to execute script 文件名 错误提示: no module named 'numpy.random.common' 可是我重新pip numpy模块还是不好用 请问怎么解决? ``` #!/usr/bin/python # -- coding: utf-8 -- import fnmatch #选择文件的关键词 import os from time import sleep from tkinter import * import tkinter.filedialog #弹出选择路径的库 import tkinter.messagebox import fnmatch #选择文件的关键词 import re import pandas as pd import docx import pickle import codecs import string import shutil from win32com import client as wc def matchdocname(str1,root,i,list_box): if str1 in os.path.splitext(i)[0]: list_box.insert(END, root+"/"+i) def matchdoccontent(str1,root,i,list_box): if i.endswith('txt'): #当文件为txt时 with open(os.path.join(root, i) ,'r') as fp: errors='' aa=fp.read() if str1 in aa : list_box.insert(END, root+"/"+i) if i.endswith('xls') or i.endswith('xlsx') : #当文件为excel时 df=pd.read_excel(os.path.join(root, i)) df=df.values for k in df: for j in k: j=str(j) if str1 in j: list_box.insert(END, root+"/"+i) if i.endswith('docx'): #当文件为.docx时 word = wc.Dispatch('Word.Application') doc = word.Documents.Open(os.path.join(root, i)) newname=os.path.join(root, i)+"(translate txt)" doc.SaveAs(newname,4) doc.Close() word.Quit() with open(newname ,'r') as fp: errors='' aa=fp.read() if str1 in aa : list_box.insert(END, root+"/"+i) os.remove(newname) if i.endswith('doc'): #当文件为.doc时 word = wc.Dispatch('Word.Application') doc = word.Documents.Open(os.path.join(root, i)) newname=os.path.join(root, i)+"(translate txt)" doc.SaveAs(newname,4) doc.Close() word.Quit() with open(newname ,'r') as fp: errors='' aa=fp.read() if str1 in aa : list_box.insert(END, root+"/"+i) os.remove(newname) #删掉这个临时文件 def left(): if not entry.get() :#检测关键词输入框是否为空 tkinter.messagebox.showerror("提示信息:","出现以下错误:\n关键词不能为空")#弹出警告框 return #如果为空不再执行 if var1.get()==0 and var2.get()==0 : tkinter.messagebox.showerror("提示信息:","出现以下错误:\n匹配项不能为空")#弹出警告框 return #如果为空不再执行 list_box.delete(0,END) path = tkinter.filedialog.askdirectory()#弹出选择路径的窗口,path为获取的路径 path_list = os.walk(path)#获取一个列表目录的对象 for root, dirs, files in path_list: #print root, dirs, files if var1.get()==1 and var2.get()==0: #当只匹配文件名时 list_box.insert(END, '文件名') for i in files: matchdocname(entry.get(),root,i,list_box) elif var1.get()==0 and var2.get()==1: #当只匹配文件内容时 list_box.insert(END, '文件内容') for i in files: matchdoccontent(entry.get(),root,i,list_box) elif var1.get()==1 and var2.get()==1: #当既匹配文件名又匹配文件内容时 list_box.insert(END, '文件名') for i in files: matchdocname(entry.get(),root,i,list_box) list_box.insert(END, '--------------') list_box.insert(END, '文件内容') for i in files: matchdoccontent(entry.get(),root,i,list_box) def func2(e): if not list_box.curselection():#取双击的坐标52 return path = list_box.get(list_box.curselection(),last=None) os.startfile(path) def nagea(e): error = '' tdir = dirs.get(dirs.curselection()) if os.path.isfile(tdir): #如果是文件 则打开 os.startfile(tdir) elif os.path.isdir(tdir): #如果是文件夹 则调用dols setDirAndGo() def wenjianshu(): dirs.delete(0,END) path = tkinter.filedialog.askdirectory()#弹出选择路径的窗口,path为获取的路径 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) cwd.set(os.curdir) dirs.config(selectbackground='LightSkyBlue') 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()) 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) cwd.set(os.curdir) dirs.config(selectbackground='LightSkyBlue') def doLS1(tdir): error = '' 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) cwd.set(os.curdir) dirs.config(selectbackground='LightSkyBlue') 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()) 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) cwd.set(os.curdir) dirs.config(selectbackground='LightSkyBlue') top2 = Tk() top2.title('营销集约管控中心-文件管理') top2.geometry('+50+50')#窗口大小,窗口位置 cwd = StringVar(top2) var=IntVar() dirl = Label(top2,fg = 'BLUE',font = ('Helvetica',18,'bold')) dirl.pack() dirfm = Frame(top2) dirs = Listbox(dirfm,height=25,width=90) #通过使用List的bind()方法,将鼠标双击事件绑定,并调用setDirAndGo函数 dirs.bind('<Double-1>',nagea) dirs.pack(side=LEFT,fill=BOTH) list_box = Listbox(dirfm,height=25,width=90) list_box.bind('<Double-Button-1>',func2) #绑定一个双击触发事件 list_box.pack(side=LEFT,fill=BOTH)#显示列表框 dirfm.pack() #第二个框架bfm,放置按钮 bfm = Frame(top2) open1 = Button(bfm,text='文件树',command=wenjianshu,activeforeground='white',activebackground='blue') open1.pack(side=LEFT) bfm.pack(side=LEFT,fill=BOTH) #多选框插件 var1 = tkinter.IntVar() # 用来储存下面勾选项1中返回的0或1 var2 = tkinter.IntVar() # 用来储存下面勾选项2中返回的0或1 button2=tkinter.Checkbutton(top2,text="匹配文件内容",variable=var2,onvalue=1,offvalue=0) button2.pack(side=RIGHT,fill=BOTH) button1=tkinter.Checkbutton(top2,text="匹配文件名",variable=var1,onvalue=1,offvalue=0) button1.pack(side=RIGHT,fill=BOTH) #按钮控件 entry = Entry()#输入框实例化 entry.pack(side=RIGHT,fill=BOTH)#输入框 button2=Button(top2,text="关键字",command=left) button2.pack(side=RIGHT,fill=BOTH) if __name__ =='__main__': #设定初始目录为桌面 mainloop() ```
Python tkinter图形界面BUTTON事件控制和编辑框返回值出现异常
使用win7的Python3.73的IDLE界面编写图形界面程序,在编码过程中发现,如果定义一个主窗口后再定义一个局部窗口会导致后面的窗口的编辑框设置和取值异常。具体问题用一个测试程序来说明如下: ``` import tkinter as tk from tkinter import messagebox def newwin(title='test',geometry='300x300'): def ShowMessage(): tk.messagebox.showinfo(input.get()) window = tk.Tk() window.title(title) window.geometry(geometry) input = tk.StringVar() input.set('请输入任意内容!') tk.Label(window, text='请输入任意内容: ').place(x=10, y= 10) entry_new_name = tk.Entry(window, textvariable=input) entry_new_name.place(x=150, y=10) btn_show = tk.Button(window, text='显示输入', command=ShowMessage) btn_show.place(x=80, y=90) btn_newwin = tk.Button(window, text='新弹窗', command=newwin) btn_newwin.place(x=150, y=90) btn_exit = tk.Button(window, text='退出', command=exit) btn_exit.place(x=220, y=90) return window root = newwin() root.mainloop() ``` 上述代码执行后,显示一个窗口,内有:一个输入框,三个按钮,一个是显示输入框内容,一个是再次新建一个同样的窗口,一个是系统退出。执行后第一次打开窗口时相关功能正常,但当选择“新弹窗”弹出一个新的窗口后,编辑框的初始内容没有显示,且输入内容后,在新窗口显示编辑框的内容取得的值为变量初始化的值,没有取得新的输入。 关于以上代码,有如下几个问题: 1、为什么新弹窗中编辑框的显示和变化没有和变量关联起来? 2、上述代码中btn_newwin按钮定义如果改为:“btn_newwin = tk.Button(window, text='新弹窗', command=newwin)”中,如果newwin使用带实参格式,则会导致一启动就会不停新建窗口,导致递归调用过深异常出现才终止?这是为什么 ? 3、该代码存储到文件后,使用dos命令行方式执行文件无任何反应。是图形界面的程序无法在非图形界面解释器下执行吗?该怎么解决? 非常抱歉,本人没有C币,不知可有哪位大拿免费指教?谢谢!
python tkinter lable 循环显示的问题
import tkinter as tk import threading import time,random class APP(): def __init__(self,root): self.root = root self.lb1 = tk.Label(root,text = 'lb1',bg = 'blue',width = 20, height = 4) # self.lb1.pack() self.lb2 = tk.Label(root,text = 'lb2',bg = 'red',width = 20, height = 4) # self.lb2.pack() self.lb3 = tk.Label(root,text = 'lb3',bg = 'green',width = 20, height = 4) # self.lb3.pack() self.li = [self.lb1,self.lb2,self.lb3] def _ran(self,root): i = 0 while i<10: for a in self.li: root.update() time.sleep(1) a.place(x = 300, y = 200) i+=1 def go(self): self._ran(self.root) root = tk.Tk() root.geometry('800x600') app = APP(root) t = threading.Thread(target = app.go) t.start() root.mainloop() 如何让标签循环显示,我这么写显示一轮就不动了,新手小白自学,求指教
一个关于python tkinter中text与Botton的问题
本人萌新 写了个一按Botton实现在text中显示余数的代码 我希望是totle=totle-var能够不断循环,显示出余数 例如我输入5,一按botton,text显示的是15,再按一下botton,显示的是10 不知道怎么改代码能够实现 ``` import tkinter as tk window=tk.Tk() window.title('my window') window.geometry('200x200') e=tk.Entry(window,show='') e.pack() def insert_point(): var=e.get() var=int(var) totle=20 totle=totle-var t.insert('insert',totle) var=e.get() def delete_point(): t.delete('1.0','end') b1=tk.Button(window,text='收入',width=15,height=2,command=insert_point) b1.pack() b2=tk.Button(window,text='清除',width=15,height=2,command=delete_point) b2.pack() t=tk.Text(window,height=2) t.pack() window.mainloop() ```
Python tkinter图形界面BUTTON时间控制和编辑框返回值出现异常?
使用win7的Python3.73的IDLE界面编写图形界面程序,在编码过程中发现,如果定义一个主窗口后再定义一个局部窗口会导致后面的窗口的编辑框设置和取值异常。具体问题用一个测试程序来说明如下: ``` import tkinter as tk from tkinter import messagebox def newwin(title='test',geometry='300x300'): def ShowMessage(): tk.messagebox.showinfo(input.get()) window = tk.Tk() window.title(title) window.geometry(geometry) input = tk.StringVar() input.set('请输入任意内容!') tk.Label(window, text='请输入任意内容: ').place(x=10, y= 10) entry_new_name = tk.Entry(window, textvariable=input) entry_new_name.place(x=150, y=10) btn_show = tk.Button(window, text='显示输入', command=ShowMessage) btn_show.place(x=80, y=90) btn_newwin = tk.Button(window, text='新弹窗', command=newwin) btn_newwin.place(x=150, y=90) btn_exit = tk.Button(window, text='退出', command=exit) btn_exit.place(x=220, y=90) return window root = newwin() root.mainloop() ``` 上述代码执行后,显示一个窗口,内有:一个输入框,三个按钮,一个是显示输入框内容,一个是再次新建一个同样的窗口,一个是系统退出。执行后第一次打开窗口时相关功能正常,初始界面如下(编辑框有初始文字显示): ![图片说明](https://img-ask.csdn.net/upload/201906/03/1559522244_111043.jpg) 编辑框输入内容后点击显示输入按钮后的窗口: ![图片说明](https://img-ask.csdn.net/upload/201906/03/1559522335_568410.jpg) 但当选择“新弹窗”弹出一个新的窗口后,编辑框的初始内容没有显示: ![图片说明](https://img-ask.csdn.net/upload/201906/03/1559522415_427087.jpg) 且输入内容后,在新窗口显示编辑框的内容取得的值为变量初始化的值,没有取得新的输入。新弹窗编辑框输入内容后点击显示输入按钮后的窗口: ![图片说明](https://img-ask.csdn.net/upload/201906/03/1559522568_856.jpg) 关于以上代码,有如下几个问题: 1、为什么新弹窗中编辑框的显示和变化没有和变量关联起来? 2、上述代码中btn_newwin按钮定义如果改为:“btn_newwin = tk.Button(window, text='新弹窗', command=newwin)”中,如果newwin使用带实参格式,则会导致一启动就会不停新建窗口,导致递归调用过深异常出现才终止?这是为什么 ? 3、该代码存储到文件后,使用dos命令行方式执行文件无任何反应。是图形界面的程序无法在非图形界面解释器下执行吗?该怎么解决? 非常抱歉,本人没有C币,不知可有哪位大拿免费指教?谢谢!
tkinter grid怎么布局到窗体的右下角?
tkinter的网格布局确实很好理解,但是有个疑问网上一直没找到答案,就是怎么把按钮放到窗口的右下角去? 代码如下,窗体上9个按钮,我想分散分布,但运行时却挤在一起了,求助应该怎么改呢? ``` import tkinter as tk win = tk.Tk() win.geometry('600x400') bt1 = tk.Button(win, text='bt1') bt1.grid(row=0, column=0, sticky='nw') bt2 = tk.Button(win, text='bt2') bt2.grid(row=0, column=1,sticky='n') bt3 = tk.Button(win, text='bt3') bt3.grid(row=0, column=2,sticky='ne') bt4 = tk.Button(win, text='bt4') bt4.grid(row=1, column=0,sticky='w') bt5 = tk.Button(win, text='bt5') bt5.grid(row=1, column=1,sticky='nwes') bt6 = tk.Button(win, text='bt6') bt6.grid(row=1, column=2,sticky='e') bt7 = tk.Button(win, text='bt7') bt7.grid(row=2, column=0,sticky='sw') bt8 = tk.Button(win, text='bt8') bt8.grid(row=2, column=1,sticky='s') bt9 = tk.Button(win, text='bt9') bt9.grid(row=2, column=2,sticky='se') win.mainloop() ``` 显示的窗体如下: ![图片说明](https://img-ask.csdn.net/upload/201911/22/1574390822_295424.jpg)
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就无效了
python tkinter,怎么让控件显示在Frame中呢?
![图片说明](https://img-ask.csdn.net/upload/201905/28/1559057942_87833.png) 我想让红线的控件 显示在 左边那个框里 ``` ui = tk.Tk() ui.geometry('620x600') frame = tk.Frame(height=30, bd=1, relief='sunken' , padx=10, width=200, container=True).grid(row=1, columnspan=1) tk.Label(frame, text='多选题:', height=1, width=10).grid(row=1, column=1) tk.Label(frame, text='tt', height=1, width=10).grid(row=1, column=2) ui.mainloop() ```
tkinter 双击 打开文件
我现在想做一个软件,用python的tkinter查找文件,找到以后双击就可以打开。 怎么处理? ``` # coding:utf-8 #usr/bin/env python from Tkinter import * import tkFileDialog #弹出选择路径的库 import tkMessageBox import os import fnmatch #选择文件的关键词 def left(): if not entry.get() :#检测关键词输入框是否为空 tkMessageBox.showerror("提示信息:","出现以下错误:\n关键词不能为空")#弹出警告框 return #如果为空不再执行 list_box.delete(0,END) path = tkFileDialog.askdirectory()#弹出选择路径的窗口,path为获取的路径 path_list = os.walk(path)#获取一个列表目录的对象 for root, dirs, files in path_list: #print root, dirs, files for i in files: if(entry.get()==os.path.splitext(i)[0]): list_box.insert(END, root+"/"+i) ?????? root = Tk() root.title('文件搜索')#创建窗口 root.geometry('+400+200')#窗口大小,窗口位置 #1.输入关键词 Label(text=' 关键词: ').grid(row=0,column=0)# 创建标签 entry = Entry()#输入框实例化 entry.grid(row=0,column=1)#输入框 Button(text=' 选择文件夹', command=left).grid(row=0,column=4)#按钮 list_box = Listbox(width=80) list_box.grid(row=1, column=0, columnspan=5)#显示列表框 loop = mainloop()#显示窗口 ``` 在中间的??????位置应该用什么代码 可以双击得到的文件,就可以打开了
使用textvariable给Entry赋值,如何将文本框里的文件路径 赋给变量 ,后续需要对路径里的文件进行处理?
1、想要用python实现读取文件路径的交互UI,使用tkinker,已经完成了一部分,代码如下:遇到问题,不知道怎么将路径转换为变量用pandas读取。 2、代码如下: # -*- coding: cp936 -*- from tkinter import * from tkinter import filedialog, ttk #定义打开文件路径的4个函数 def selectPath1(): path1_ = filedialog.askopenfilename() path1.set(path1_) def selectPath2(): path2_ = filedialog.askopenfilename() path2.set(path2_) def selectPath3(): path3_ = filedialog.askopenfilename() path3.set(path3_) def selectPath4(): path4_ = filedialog.askopenfilename() path4.set(path4_) win = Tk() win.title("故障日报生成小工具") W=500 H=300 screenwidth=win.winfo_screenwidth() screenheight=win.winfo_screenheight() x=screenwidth/2-W/2 y=screenheight/2-H/2 win.geometry("%dx%d+%d+%d"%(W,H,x,y)) # win.resizable(0,0) Label(win, text='故障日报生成小工具', font=('Arial', 20)).pack() frm = Frame(win) #left frm_L = Frame(frm) frm_L_1=Frame(frm_L) #设置第一个按钮和文本框 button1 = ttk.Button(frm_L_1, text="打开小区状态表", width=20, command=selectPath1) button1.pack(side=LEFT) path1 = StringVar() entry1 = Entry(frm_L_1, textvariable = path1) entry1.pack(side=RIGHT) frm_L_1.pack(side=TOP) #设置第二个按钮和文本框 frm_L_2=Frame(frm_L) button2 = ttk.Button(frm_L_2, text="打开当前告警", width=20, command=selectPath2) button2.pack(side=LEFT) path2 = StringVar() entry2 = Entry(frm_L_2, textvariable = path2) entry2.pack(side=RIGHT) frm_L_2.pack(side=TOP) #设置第三个按钮和文本框 frm_L_3=Frame(frm_L) button3 = ttk.Button(frm_L_3, text="打开前一日告警日报", width=20, command=selectPath3) button3.pack(side=LEFT) path3 = StringVar() entry3 = Entry(frm_L_3, textvariable = path3) entry3.pack(side=RIGHT) frm_L_3.pack(side=TOP) #设置第四个按钮和文本框 frm_L_4=Frame(frm_L) button4 = ttk.Button(frm_L_4, text="打开TD-LTE小区表", width=20, command=selectPath4) button4.pack(side=LEFT) path4 = StringVar() entry4 = Entry(frm_L_4, textvariable = path4) entry4.pack(side=RIGHT) frm_L_4.pack(side=TOP) frm_L.pack(side=LEFT) #right frm_R = Frame(frm) button5 = ttk.Button(frm_R, text="运行", width=20, command=lambda:xxx) button5.pack(side=TOP) button6 = ttk.Button(frm_R, text="退出", width=20, command=quit) button6.pack(side=TOP) frm_R.pack(side=RIGHT) frm.pack() win.mainloop() 试过用Entry.get()但获取不到。 自学PYTHON,用于提升工作效率,还请多多指教
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网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,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
这30个CSS选择器,你必须熟记(上)
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...
国产开源API网关项目进入Apache孵化器:APISIX
点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!近日,又有一个开源项目加入了这个Java开源界大名鼎鼎的Apache基金会,开始进行孵化器。项目名称:AP...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
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)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
编写Spring MVC控制器的14个技巧
本期目录 1.使用@Controller构造型 2.实现控制器接口 3.扩展AbstractController类 4.为处理程序方法指定URL映射 5.为处理程序方法指定HTTP请求方法 6.将请求参数映射到处理程序方法 7.返回模型和视图 8.将对象放入模型 9.处理程序方法中的重定向 10.处理表格提交和表格验证 11.处理文件上传 12.在控制器中自动装配业务类 ...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
求小姐姐抠图竟遭白眼?痛定思痛,我决定用 Python 自力更生!
点击蓝色“Python空间”关注我丫加个“星标”,每天一起快乐的学习大家好,我是 Rocky0429,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:是谁!是谁把我女朋友的照片放出来的!awsl!太好看了叭...等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!叔叔婶婶能忍,隔壁老王的三姨妈的四表...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
相关热词 c# 输入ip c# 乱码 报表 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件
立即提问