tkinter+多线程+socket网络登录,群聊聊天室

-
tkinter+多线程+socket网络登录,群聊聊天室. 可账户,账户保存至本地文件
Python关于Tkinter的多线程问题_course
2015-12-22使用TKinter编写界面,实现选择测试用例并执行,最后打印出测试结果。功能是实现了,可是每次一点下开始执行,整个界面就失去响应了,要等到测试用例执行完了,界面才恢复响应,已经把执行用例和画界面分别作为单独的线程来处理了,为什么还是不行? 界面如下:  相关代码如下: 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!!!!!!!!!!!" ``` ```
Tkinter GUI程序的多线程问题,,继承Tkinter.Event 求高手指点_course
2011-08-22在写一个串口终端,界面如下: 我是这样实现的,建立一个接收线程 thread = threading.Thread(target=ComReci) thread.start() 来完成串口数据大接收,
关于Tkinter,多线程的问题_course
2011-08-29#coding=utf-8 import Tkinter import threading import multiprocessing import string import time def f
- Python 技术篇-socket套接字实现两个窗口间消息传递实例演示,TCP实现 13392019-02-24socket实现客户端服务器的消息传递有TCP和UDP两种方式。 TCP和UCP的区别:TCP需要建立客户端与服务器的连接,UDP不需要。 TCP可以实现客户端和服务器相互传递消息,UDP只能由服务器向客户端传递消息。 创建一个 TCP 连接的 socket 对象: socket(),没有参数就代表 TCP 连接。 下面这段是等待客户端连接,连接成功后返回新的连接 conn,这就是与客户端的连接,后续相互发消息用的就是这个。客户端用 Socket_TCP.connect(addr) 与服务器连接。
10KB
基于MySQL—Tkinter—正则表达式—Tcp—线程的聊天应用程序
2018-07-13用Tkinter做的界面,布局十分简单,账号使用正则进行限制,TCP进行通信,采用多线程运行服务端,MySQL存储用户信息,
python线程问题 threads can only be started once_course
2018-02-25 代码如下: import tkinter as tk from tkinter import ttk from threading import Thread import time class main(): def method(self): for i in range(3): time.sleep(1) print(i) op = main() runT = Thread(target=op.method) win = tk.Tk() win.title("Python") def click(): runT.start() action = ttk.Button(win, text="Click Me!", command=click) # 7 action.grid(column=0, row=0) win.mainloop() 我想每次点击下按钮就执行一次,但是python线程只能执行一次 按钮第二次点击就报错threads can only be started once 请问如何才能解决呢?
python串口通信的线程问题_course
2017-08-29问题是这样的,想写一个串口测控程序和单片机通信。界面用tkinter写的。但是突然发现在接受串口数据的时候gui是不响应鼠标等操作的…由于是新手,不知道该怎么办,是不是要用多线程了……
python带GUI的程序中怎么加入多线程_course
2012-07-24现在有一个使用GUI的程序,但是程序中的函数要处理的东西很多,每次一运行的时候,程序界面就卡死在那里,但是还在处理数据,这样感觉怪别扭呢。想用多线程来处理一下,可是我不知道从何下手,那些讲解多线程的书
python tkinter多线程程序中listbox和scrollbar的问题_course
2017-05-13最近在使用tkinter写的一个多线程的程序的时候遇到一个问题。 这个程序有5个线程,每个线程都会去执行show函数,show函数是输出0至999到listbox上。 我在当线程要输出数据到listbox上时使用了线程锁,可是程序就卡在第一个线程上,应该是卡在listbox.update()这里。 程序的执行顺序是:点击start按钮,生成了5个线程,有一个线程获得了进入共享区的锁,其余线程等待。但是进入共享区的那个线程却一直没有释放锁,我跟踪的时候看到是执行了listbox.update()后就卡住了。 可是只有一个线程获得了更新listbox的权限,为什么会出现这种情况。 当我把输出到listbox的语句换成"print i"直接输出到控制台上时,程序却是正常运行的,那么也就是说是listbox的更新机制问题了。 我又发现当我把listbox中yscrollcommand给注释掉后,程序就可以运行,但是scrollbar就没有用了。 那么当listbox更新发生改变时,会调用yscrollcommand中的srocllbar.set函数,然后srollbar又会去调用它command里面的listbox.yview函数。那问题是不是出现在线程调用和listbox,srollbar回调函数之间呢,那要怎样改才能使程序正常运行。 程序代码如下:(主要是注释的地方) ``` # -*- coding: utf8 -*- from Tkinter import * import time import threading class APP(): def __init__(self,master): self.frame = Frame(master,height=2,bd=1,relief=SUNKEN) self.frame.pack(fill=X) self.button = Button(self.frame,text="Start",width=10,height=1,command=self.test) self.button.pack(padx=10,pady=10) self.sb = Scrollbar(self.frame) self.sb.pack(side=RIGHT,fill=Y) self.listbox = Listbox(self.frame,height=25,width=50) self.listbox.pack() #我发现把yscrollcommand给注释掉后多线程程序才能跑起来,但是scrollbar就没用了 #---------------------------------------------------------------- self.listbox['yscrollcommand'] = self.sb.set #---------------------------------------------------------------- self.sb.config(command=self.listbox.yview) def test(self): func(self) def func(self): def show(self): global mutex for i in range(1000): if mutex.acquire(1):#线程锁,进入共享区 #------------------------------------------------------------ self.listbox.insert(END,str(i)) self.listbox.see(self.listbox.index(END)) self.listbox.update() #------------------------------------------------------------ #问题应该是出在多线程和listbox的更新这一块,就是上面三句 mutex.release() for i in range(5): thread = threading.Thread(target=show,args=(self,)) thread.setDaemon(True) thread.start() mutex=threading.Lock() root = Tk() app = APP(root) root.mainloop() ```
Python处理大文件的效率问题!(tkinter的界面卡死小问题)_course
2017-05-18最近觉得python脚本比vbs强大不少,改用python。基础处理功能顺手不少。但开始处理大文件的时候发现较为严重的效率问题。特到此求助一下。 以下未特别注明,python均采用python.org
-
学院
JavaEE框架(Maven+SSM)全程实战开发教程(源码+讲义)
JavaEE框架(Maven+SSM)全程实战开发教程(源码+讲义)
-
学院
【数据分析-随到随学】SPSS调查问卷统计分析
【数据分析-随到随学】SPSS调查问卷统计分析
-
下载
个人总结的408往年题目知识点分布
个人总结的408往年题目知识点分布
-
下载
课程设计综合最终材料.zip
课程设计综合最终材料.zip
-
下载
KDDCUP99.zip
KDDCUP99.zip
-
下载
计算机考研408历年真题和答案汇编(2009-2021).pdf
计算机考研408历年真题和答案汇编(2009-2021).pdf
-
下载
Zhong Shi Ying Yu Zhi Jian (Bei - Ping Qia Mu.mobi
Zhong Shi Ying Yu Zhi Jian (Bei - Ping Qia Mu.mobi
-
博客
RPC 用着好好的?为什么还需要使用 MQ?
RPC 用着好好的?为什么还需要使用 MQ?
-
博客
CINTA作业十
CINTA作业十
-
博客
pat-1072
pat-1072
-
博客
Codeforces Round #674 (Div. 3)
Codeforces Round #674 (Div. 3)
-
博客
Arrays分类算法-Longest Peak
Arrays分类算法-Longest Peak
-
下载
旋转LED电子时钟.zip
旋转LED电子时钟.zip
-
学院
电商设计专业思维
电商设计专业思维
-
下载
Mi Classcal.zip
Mi Classcal.zip
-
学院
基于X210的裸机时钟温度显示器-第3/3季
基于X210的裸机时钟温度显示器-第3/3季
-
博客
PHP基本语法
PHP基本语法
-
下载
抢购京东平台的茅台1499
抢购京东平台的茅台1499
-
博客
金三银四面试必看:十年面试官告诉你JMM是什么和面什么
金三银四面试必看:十年面试官告诉你JMM是什么和面什么
-
学院
pyechart数据可视化
pyechart数据可视化
-
下载
华为Mate10Pro维修图PCB位置图(PDF格式)
华为Mate10Pro维修图PCB位置图(PDF格式)
-
下载
鲁大师_v5.1020.1165_去广告清爽版绿单文件.exe
鲁大师_v5.1020.1165_去广告清爽版绿单文件.exe
-
学院
android笔试面试和实战课程
android笔试面试和实战课程
-
下载
微猫wetool个人版安装包修复低版微信问题.exe
微猫wetool个人版安装包修复低版微信问题.exe
-
博客
FPGA 之 SOPC 系列(六)Nios II 程序开发 II
FPGA 之 SOPC 系列(六)Nios II 程序开发 II
-
学院
Excel高级图表技巧
Excel高级图表技巧
-
下载
一键整合排序ts文件转换为MP4视频的python文件
一键整合排序ts文件转换为MP4视频的python文件
-
学院
朱有鹏老师嵌入式linux核心课程2期介绍
朱有鹏老师嵌入式linux核心课程2期介绍
-
博客
Centos 如何安装 nginx
Centos 如何安装 nginx
-
学院
【数据分析-随到随学】机器学习模型及应用
【数据分析-随到随学】机器学习模型及应用