GUI制作仿qq窗口
使用工具:python3.6, pycharm
使用模块:
tkinter模块:("Tk 接口")是Python的标准Tk GUI工具包的接口,位Python的内置模块,直接import tkinter即可使用
time模块:用于时间显示
注:关于tkinter模块可以参考http://www.cnblogs.com/kaituorensheng/p/3287652.html
效果图:

如果想直接看所有代码,可以忽略之前所有,直接跳到第5步。
1.产生第一个窗口
from tkinter import *
import time
t = Tk()#实例化一个t对象
t.title('与星夜聊天中')#显示标题
t.mainloop()#命令,进入消息循环
看到的窗口可能没有显示完全标题,可以用鼠标拉伸窗口。

2.窗口已经有了,接下来就是布局,可以看到,窗口大概可以分为4个部分A,B,C,D.
from tkinter import *
import time
def main():
t = Tk()#实例化一个t对象
t.title('与星夜聊天中')#显示标题
#创建Frame容器
A = Frame(width=500, height=320, bg='white')
B = Frame(width=500, height=150, bg='white')
C = Frame(width=500, height=30)
D = Frame(width=200, height=500)
#使用grid布局
A.grid()
B.grid()
C.grid()
D.grid(row=0, column=1, rowspan=3, padx=2, pady=3)
t.mainloop()#命令,进入消息循环
if __name__ == '__main__':
main()
页面框架已经出来

3.添加控件按钮发送,取消
from tkinter import *
import time
def main():
t = Tk()#实例化一个t对象
t.title('与星夜聊天中')#显示标题
#创建Frame容器
A = Frame(width=500, height=320, bg='white')
B = Frame(width=500, height=150, bg='white')
C = Frame(width=500, height=30)
D = Frame(width=200, height=500)
#使用grid布局
A.grid()
B.grid()
C.grid()
D.grid(row=0, column=1, rowspan=3, padx=2, pady=3)
txtMsglist = Text(A) # 展示文本的框框
txtMsg = Text(B) # 编辑文字
# 按钮,以及图片展示
btnSend = Button(C, text='发送', width=8)
btnCancel = Button(C, text='取消', width=8)
imageLink = PhotoImage(file="oEfV-hhnunsq0909655.gif") # 只能打开gif,双引号里面可以写自己的图片目录
lblImage = Label(D, image=imageLink) # 显示文件或图片
btnSend.grid(row=2, column=1)
btnCancel.grid(row=2, column=2)
lblImage.grid()
txtMsglist.grid()
txtMsg.grid()
t.mainloop()#命令,进入消息循环
if __name__ == '__main__':
main()
按钮图片都已经出来了,不过大小改变了

4.插件都会延伸,根据内容自动调节大小,所以要固定大小
from tkinter import *
import time
def main():
t = Tk()#实例化一个t对象
t.title('与星夜聊天中')#显示标题
#创建Frame容器
A = Frame(width=500, height=320, bg='white')
B = Frame(width=500, height=150, bg='white')
C = Frame(width=500, height=30)
D = Frame(width=200, height=500)
#使用grid布局
A.grid()
B.grid()
C.grid()
D.grid(row=0, column=1, rowspan=3, padx=2, pady=3)
txtMsglist = Text(A) # 展示文本的框框
txtMsg = Text(B) # 编辑文字
# 按钮,以及图片展示
btnSend = Button(C, text='发送', width=8)
btnCancel = Button(C, text='取消', width=8)
imageLink = PhotoImage(file="oEfV-hhnunsq0909655.gif") # 只能打开gif,双引号里面可以写自己的图片目录
lblImage = Label(D, image=imageLink) # 显示文件或图片
btnSend.grid(row=2, column=1)
btnCancel.grid(row=2, column=2)
lblImage.grid()
txtMsglist.grid()
txtMsg.grid()
A.grid_propagate(0)
B.grid_propagate(0)
C.grid_propagate(0)
D.grid_propagate(0)
t.mainloop()#命令,进入消息循环
if __name__ == '__main__':
main()
大小固定了,基本框架已经完成

5.在发送窗口可以发送文字,也可以取消文字,显示窗口显示时间,人,消息。
from tkinter import *
import time def main():
#发送作用
def sendMsg():
strMsg = '我:' + time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) + '\n'
txtMsglist.insert(END,strMsg)
txtMsglist.insert(END,txtMsg.get('0.0',END))
txtMsg.delete('0.0',END) #取消
def cancelMsg():
txtMsg.delete('0.0', END) t = Tk()#实例化对象
t.title('与星夜聊天中')
#1.创建frame容器,框架
A = Frame(width=500,height=320,bg='white')
B = Frame(width=500,height=150,bg='white')
C = Frame(width=500,height=30)
D = Frame(width=200,height=500) #2.布局
A.grid()
B.grid()
C.grid()
D.grid(row=0,column=1,rowspan=3,padx=2,pady=3)
#添加控件
#文本框----可以显示多行文本
txtMsglist = Text(A)#展示文本的框框
txtMsg = Text(B)#编辑文字 #按钮,以及图片展示
btnSend = Button(C,text='发送',width=8,command=sendMsg)
btnCancel = Button(C,text='取消',width=8,command=cancelMsg)
imageLink = PhotoImage(file="oEfV-hhnunsq0909655.gif")#只能打开gif
lblImage = Label(D,image=imageLink)#显示文件或图片 btnSend.grid(row=2,column=1)
btnCancel.grid(row=2,column=2)
lblImage.grid()
txtMsglist.grid()
txtMsg.grid()
#插件都会延申,根据内容自动调节大小,所以要固定大小
A.grid_propagate(0)
B.grid_propagate(0)
C.grid_propagate(0)
D.grid_propagate(0)
t.mainloop()#命令,进入消息循环 if __name__ == '__main__':
main()
仿qq窗口已经完成了。

GUI制作仿qq窗口的更多相关文章
- Android仿QQ窗口的抖动的动画效果
就是仿照QQ窗口的抖动效果,在项目的res下创建anim文件夹,再创建两个xml文件:cycle.xml . myanim.xml cycle.xml : <?xml version ...
- 高仿QQ即时聊天软件开发系列之三登录窗口用户选择下拉框
上一篇高仿QQ即时聊天软件开发系列之二登录窗口界面写了一个大概的布局和原理 这一篇详细说下拉框的实现原理 先上最终效果图 一开始其实只是想给下拉框加一个placeholder效果,让下拉框在未选择未输 ...
- 高仿QQ即时聊天软件开发系列之二登录窗口界面
继上一篇高仿QQ即时聊天软件开发系列之一开端之后,开始做登录窗口 废话不多说,先看效果,只有界面 可能还有一些细节地方没有做,例如那个LOGO嘛,不要在意这些细节 GIF虽短,可是这做起来真难,好吧因 ...
- 循序渐进实现仿QQ界面(一):园角矩形与双缓冲贴图窗口
印象里仿QQ界面的程序应该有很多,搜了一下,虽然出来一大堆,排除了重复的,却只有两三个,没我想象的好.经常看到CSDN上有人问,QQ这个功能怎么实现,那个界面怎么实现,归纳了一下,决定写这么一个仿QQ ...
- JS简单仿QQ聊天工具的制作
刚接触JS,对其充满了好奇,利用刚学到的一点知识,写了一个简单的仿QQ聊天的东西,其中还有很多的不足之处,有待慢慢提高. 功能:1.在输入框中输入内容,点击发送,即可在上方显示所输入内容. 2.点击‘ ...
- < JAVA - 大作业(2)仿qq即时通讯软件 >
< JAVA - 大作业(2)仿qq即时通讯软件 > 背景 JAVA上机大作业:设计一个仿qq即时通讯软件 任务简要叙述:设计一款仿QQ的个人用户即时通讯软件,能够实现注册,登陆,与好友聊 ...
- 仿QQ大战—界面篇
之前在<仿QQ大战-服务器的搭建(ServerSocket)>中实现了服务器的搭建,以及一个简单地传递数据的实现,现在就是来实现类似与QQ聊天通信的功能.首先是界面的实现: 首先:服务器和 ...
- Socket实现仿QQ聊天(可部署于广域网)附源码(1)-简介
1.前言 本次实现的这个聊天工具是我去年c#程序设计课程所写的Socket仿QQ聊天,由于当时候没有自己的服务器,只能在机房局域网内进行测试,最近在腾讯云上买了一台云主机(本人学生党,腾讯云有个学生专 ...
- 用duilib制作仿QQ2013动态背景登录器
转载请说明原出处,谢谢~~ 在上一篇博客里,我修复了CActiveXUI控件的bug,从而可以使用flash动画来制作程序的背景,这篇博客说明一下应该怎么使用CActiveXUI控件创建透明无窗体的背 ...
随机推荐
- QTP 自动货测试桌面程序-笔记(添加控件仓库并关联到action)
录制或编写脚本前先添加行为对应的控件仓库: 心得:多个测试action使用的同一个窗体的仓库单独放于一个仓库中,可以在多个action中添加关联使用 将同一个窗体的控件只放于一个仓库中,减少使用时的名 ...
- python易混易乱(1)
字典 基础操作 <1>keys my_dict = {"name":"zhangsan","age":18} res = my_ ...
- Bootstrap之信息记录
Bootstrap中文网: http://www.bootcss.com/ 上面有一些资料和范例 实例精选: https://v3.bootcss.com/getting-started/#examp ...
- 数据库语法group by
因为在做pgsql和mysql数据库时group by 有报错,但是在以前做mysql5.6的时候没有问题,虽然知道时违反了sql的语法问题,但是没有搞清楚什么原因,也找了不少资料,查找原因,在盆友的 ...
- Spring Boot 构建电商基础秒杀项目 (三) 通用的返回对象 & 异常处理
SpringBoot构建电商基础秒杀项目 学习笔记 定义通用的返回对象 public class CommonReturnType { // success, fail private String ...
- mobile deeplearning
框架: 腾讯ncnn https://github.com/Tencent/ncnn 百度mobile-deep-learning https://github.com/baidu/mobile-de ...
- JAVA-Web 百度编辑器,修改默认大小
百度UEditor富文本编辑器-设置默认字体.字号.行间距及添加字体种类 如果这个还不能改变大小了,找一下在文件夹UEditor--css--中default.css文件,搜索出红色部分: grid_ ...
- Nginx 热部署最版本
L10 进入nginx里的sbin目录 拷贝原先的做备份 cp nginx nginx.old 然后将已经编译好的nginx二进制文件复制到sbin目录下并覆盖原有的二进制文件 kill -USR2 ...
- C语言实现字符串逆序输出
方法一: #include <stdio.h> #include <stdlib.h> #include <string.h> void Reverse(char ...
- BZOJ4482[Jsoi2015]套娃——贪心+set
题目描述 [故事背景] 刚从俄罗斯旅游回来的JYY买了很多很多好看的套娃作为纪念品!比如右 图就是一套他最喜欢的套娃J.JYY由于太过激动,把所有的套娃全 部都打开了.而由于很多套娃长得过于相像,JY ...