# 引入tk
import tkinter as tk
class UserLogin(object):
""" 初始化窗口 """
def __init__(self, master=None):
self.root = master
self.root.geometry("250x220+125+110") # 窗体大小,注意:之间的间隔是“x”而不是“*”,后面的+是用来做居中显示
self.username = StringVar() # 用户名字段
self.password = StringVar() # 密码字段
self.create_page() # 调用函数
def create_page(self):
self.page = Frame(self.root) # 创建一个新页面
self.page.pack() # 显示
root = tk.Tk()
# 获取窗口大小
# print(root.winfo_screenwidth(), root.winfo_screenheight()) # 电脑屏幕大小
# print(root.winfo_reqwidth(), root.winfo_reqheight()) # 创建改程序的窗口大小
root.title('这是定义的显示在左上角的名称') # 程序名称
UserLogin(root)
root.mainloop() # 进入循环队列

tk.Tk()是调用tkinter模块来创建窗口

在实现页面之后,可以使用Button、Entry、Label等组件来实现功能

Button 按钮,和HTML功能相似 Button(第一个参数为创建的页面; 参数为text,显示的提示信息; 参数command,实现点击事件)
Label 标签,显示提示信息 Label(第一个参数为创建的页面, 参数为text,显示的提示信息)
Entry 输入框,相当于HTML里面的input Entry(第一个参数为创建的页面, 参数为textvariable,关联的字段; 参数show用来显示使用信息是否保密)

具体使用案例:

Button(self.page, text='群组', width=9, font=("Arial, 12"), command=self.friend_groups).grid(row=1, column=2, sticky='W')

Label(self.page, text=self.username).grid(row=0, column=1, sticky='W')

Entry(self.page, textvariable=self.username).grid(row=2, column=1, columnspan=2, sticky='E')

关于grid:

    def create_page(self):
self.page = Frame(self.root) # 创建一个新页面
self.page.pack()
# 表单的实现
"""
grid(row, cloumn, cloumnspan, rowspan, sticky)
row:表示从第几行开始
coumn:表示从第几列开始显示
cloumnspan:表示往后合并几列
rowspan:表示往后合并几行
sticky:表示对齐方式,N/S/E/W 分别表示:上/下/右/左
"""
self.page.title_label = Label(self.page, text='用户登录').grid(row=0, column=1, sticky='N,S,E,W') # 创建一个标题
self.page.white_label1 = Label(self.page, text=" ").grid(row=1, sticky='N')
self.page.username_label = Label(self.page, text="帐号:").grid(row=2, sticky='W')
self.page.username_input = Entry(self.page, textvariable=self.username).grid(row=2, column=1, columnspan=2, sticky='E') # 创建一个输入框
self.page.white_label2 = Label(self.page, text=" ").grid(row=3, sticky='N')
self.page.password_label = Label(self.page, text="密码:").grid(row=4, sticky='W')
self.page.password_input = Entry(self.page, textvariable=self.password, show='*').grid(row=4, column=1, columnspan=2, sticky='E')
self.page.white_label3 = Label(self.page, text=" ").grid(row=5, sticky='N')
self.page.button_login = Button(self.page, text='登录', command=self.login).grid(row=6, column=1, sticky='W')
self.page.button_register = Button(self.page, text='注册', command=self.register).grid(row=6, column=2, sticky='W')

关于滚动条的使用:

    def showInfoMesssage(self):
if self.page1:
self.page1.destroy() # 如果有缓存,那么就删除缓存界面
self.page1 = Frame(self.oldroot)
scrolly = Scrollbar(self.page1)
scrolly.pack(side=RIGHT, fill=Y)
ListViews = Listbox(self.page1, yscrollcommand=scrolly.set, width=60, height=20)
showMessageLists = [] # 用来当要显示的消息容器
InfoMessages = self.networkMesssage(self.fids) # 获取发送信息
InfoMessages_recv = self.networkMesssage(self.ownerids) # 获取接收信息
dealed_infos = self.dealLists([InfoMessages, InfoMessages_recv]) # 处理信息
if dealed_infos:
for dealed_info in dealed_infos:
ListViews.insert(END, dealed_info)
else:
ListViews.insert(END, InfoMessages['error'])
ListViews.pack()
scrolly.config(command=ListViews.yview)
self.page1.pack()

tk简单使用的更多相关文章

  1. Tkinter教程之Button篇(2)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811300 # Tkinter教程之Button篇(2)'''5.指定Button的宽度与高度 ...

  2. 简单说说Tk和Tcl

    开园第一个博客,简单说说Tk和Tcl. 我接触Tk和Tcl是在学习Python Tkinter时候,创建Tk对象,下面言归正传: Tcl:工具命令语言,英文全称为Tool Command Langua ...

  3. DES加密,Tk写的简单的GUI

    # -*- coding: UTF-8 -*- from Tkinter import * from tkMessageBox import * ip = [ 58,50,42,34,26,18,10 ...

  4. Python中Tk模块简单窗口设计

    Python中Tk和PyQt都可以设计小程序,区别在于:Tk界面美观度相对较差,但由于是Python的内置模块,最终生成的程序大小相比于PyQt较小. import tkinter # 导入TKint ...

  5. Python3的tkinter写一个简单的小程序

    一.这个学期开始学习python,但是看了python2和python3,最后还是选择了python3 本着熟悉python的原因,并且也想做一些小程序来增加自己对python的熟练度.所以写了一个简 ...

  6. 简单介绍一下R中的几种统计分布及常用模型

    统计学上分布有很多,在R中基本都有描述.因能力有限,我们就挑选几个常用的.比较重要的简单介绍一下每种分布的定义,公式,以及在R中的展示. 统计分布每一种分布有四个函数:d――density(密度函数) ...

  7. [小菜随笔]python tkinter实现简单的ping命令

    本文主要是介绍python图形界面上的按键与实际功能的对接,其实编程掌握了基础之后的学习应该都是靠自己去挖掘其他的 在网上发现多半教程都是2的,故本文使用的是python3.5,其实也没什么区别,就有 ...

  8. Tcl Tk Introduction

    Tcl Tk Introduction eryar@163.com 摘要Abstract:Tcl/Tck脚本可以很容易实现用户自定义的命令,方便的创建图形化的用户界面GUI,所以Tcl和Tk的应用领域 ...

  9. Linux- Nginx简单的负载均衡(一)

    这里先进行简单的nginx负载,安装nginx这里就不多说了,我们情景假设在已经安装好了nginx上: 1)查询nginx中的upstrea负载均衡模块  默认是有安装的.进入nginx源码目录中 . ...

随机推荐

  1. shell脚本实例-shell 分析系统瓶颈脚本

    #!/usr/bin/bash PS3="Your choice is: [10 for quit]" #检查是那个系统 os_check() { if [ -e /etc/red ...

  2. python scrapy解码方法和时间格式转换

    import scrapy from datetime import datetime class BianSpider(scrapy.Spider): name = 'bian' # allowed ...

  3. 【Python】多线程-2

    1.    进程和线程的区别: (1) 一个进程可以有多个线程,一个进程中的多个线程共享该进程的所有资源,多线程切换比多进程切换快,因为不用上下文切换,Python中并发建议用多进程 (2) 进程是资 ...

  4. 实验楼 Linux 基础入门(新版)挑战:寻找文件

    传送门:https://www.shiyanlou.com/courses/running 挑战:寻找文件 实验环境: 用户名:shiyanlou 密码:76036575 寻找文件 介绍 有一个非常重 ...

  5. Spring Boot 揭秘与实战(九) 应用监控篇 - 自定义监控端点

    文章目录 1. 继承 AbstractEndpoint 抽象类 2. 创建端点配置类 3. 运行 4. 源代码 Spring Boot 提供的端点不能满足我们的业务需求时,我们可以自定义一个端点. 本 ...

  6. C和C++内存模型

    以下内容,大部分整理自网络 C分为四个区:堆,栈,静态全局变量区,常量区 C++内存分为5个区域(堆栈全常代 ): 堆 heap : 由new分配的内存块,其释放编译器不去管,由我们程序自己控制(一个 ...

  7. JAVA修饰符、关键字和继承(一)

    一.静态修饰符----static static可以修饰内部类.块.属性.方法,经static修饰过的元素储存地址唯一,不会改变 public class Test{ static int a=1; ...

  8. tarfile — Read and write tar archive files

    参考: https://docs.python.org/2/library/tarfile.html http://www.jianshu.com/p/bbad16822eab #解压文件tarfil ...

  9. 两个Inline-block元素不对齐

    可能是有一个元素用了overflow:hidden,(给另一个元素也加上) 也有可能是基线没对齐,用vertical-align:top可以

  10. ES最佳实践之分片使用优化

    Elasticsearch最佳实践之分片使用优化 作者:老生姜 一.遇到的问题 与大多数分布式系统一样,Elasticsearch按照一定的Hash规则把用户数据切分成多个分片,然后打散到不同机器进行 ...