Day-16: 图形界面
Python支持多种图形界面,有:第三方库有Tk、wxWidgets、Qt、GTK等。
Python自带的库是支持Tk的Tkinter,无需安装任何安装包,就可以直接使用。
在Python中使用函数调用Tkinter的接口,然后Tk会调用操作系统提供的本地GUI接口,完成最终的GUI。
编写一个简单的GUI:
from Tkinter import * class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets() def createWidgets(self):
self.helloLabel = Label(self, text='Hello, world!')
self.helloLabel.pack()
self.quitButton = Button(self, text='Quit', command=self.quit)
self.quitButton.pack()
app = Application()
# 设置窗口标题:
app.master.title('Hello World')
# 主消息循环:
app.mainloop()
在GUI中,每一个按钮、标签、输入框都是一个Widget。Frame是最大的Widget,它可以容纳其他的Widget。
pack()方法是将已经创建好的Widget添加到父容器中,它是最简单的布局,grid()可以实现相对复杂的布局。
在creatWidgets()方法中,创建的Button被点击时,触发内部的命令self.quit(),使程序退出。
还可以增加输入文本的文本框:
from Tkinter import *
import tkMessageBox class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets() def createWidgets(self):
self.nameInput = Entry(self)
self.nameInput.pack()
self.alertButton = Button(self, text='Hello', command=self.hello)
self.alertButton.pack() def hello(self):
name = self.nameInput.get() or 'world'
tkMessageBox.showinfo('Message', 'Hello, %s' % name)
当用户点击按钮时,触发hello(),通过self.nameInput.get()获得用户输入的文本后,使用txMessageBox.showinfo()可以弹出消息对话框。
注:本文为学习廖雪峰Python入门整理后的笔记
Day-16: 图形界面的更多相关文章
- 阿里云ECS,Ubuntu Server 16.04安装图形界面远程控制
最近阿里云有新用户免费体验6个月的活动,虽说是免费体验,但是还是要买个它们的产品才行,我就花9.9买了个最便宜的,然后就获得了一个乞丐版的ECS服务器,配置是1核内存1G.系统装的是Ubuntu Se ...
- 阿里云ECS服务器环境搭建(1) —— ubuntu 16.04 图形界面的安装
阿里云ECS服务器环境搭建(1) —— ubuntu 16.04 图形界面的安装1. 背景在我们购买阿里云ECS服务器之后,默认的系统环境是很干净的,我购买的是ubuntu16.04,远程登录进入之后 ...
- Ubuntu Server 16.04安装xfce4图形界面远程控制
1.首先连接上你的服务器,然后安装vncserver,命令如下 apt-get install vnc4server 2.安装图形界面 apt-get install xfce4如果安装不上,就 ap ...
- Ubuntu 14.04 或者16.04开启root账户登录和图形界面登录root时候的报错解决方法
1.打开终端 2.输入sudo vi /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 3.添加一行:greeter-show-manual-login ...
- Ubuntu 16.04安装7zip的图形界面工具PeaZip
其实PeaZip不是7zip的图形界面工具,而是一整套方案,里面包括了7z格式的解压缩等. PeaZip Linux版本只有32位包,如果你使用的是64位Ubuntu系统,那么先打开终端运行下面的命令 ...
- ubuntu 16.04 关闭开启图形界面
说明案例:ubuntu16.04 关闭图形界面命令: systemctl disable lightdm.service 开启图形界面命令: ln -s /lib/systemd/system/lig ...
- [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境
[.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 本篇导读: 前面介绍了两款代码管理工具 ...
- no screens found! ubuntu进不了图形界面了
no screens found! ubuntu进不了图形界面了 结果是没装显卡 startx error. reinstall xorg, x server doesn't work. driver ...
- 关于web2py外网访问,图形界面不显示等问题的解决办法
首先系统版本是ubuntu 15.04,系统默认安装了两个版本的python, sudo python web2py.py 默认会调用python2.7版本来执行 会提示 pydo@planpls:/ ...
- 虚拟机+ubuntu 图形界面和终端界面的切换
虚拟机环境,在图形界面和文本界面间切换:1 VMWare虚拟机下,由图形界面切换到文本界面,和虚拟机设置有关,默认VM占用Ctrl+Alt为热键,所以由图形界面切换到文本界面的组合键为: Ctrl+ ...
随机推荐
- iOS之UIWebView无法获取web标题
最近遇到了一个问题,就是在UIWebView的代理方法里,执行document.title的js代码无法获取网页标题,代码如下: - (void)webViewDidFinishLoad:(UIWeb ...
- JAVA在win10上的安装环境配置
[TOC] 第一步: 打开右击电脑选择属性 第二步: 选择高级系统设置 第三部: 选择环境变量 第四部: 选择在系统变量中新建:JAVA_HOME 属性值为你的java的jdk的位置比如我的:E:\J ...
- js 小数计算为啥和想象中不一样!
今天遇到了一个比较有趣的事,如果要你计算0.1+0.2等于多少你会怎么回答? "0.3啊!"你可能都不会考虑.我也一样,当a=0.1,b=0.2时 if(a+b === 0.3){ ...
- WPF控制动画开始、停止、暂停和恢复
1.闲言 好久也没更新一博客了,自己有点发懒,同时确实这几个月来也有点忙.风机监测软件,项目中,有这样一个小需求:正常风机在旋转的时候,上位机软要做一个风机的图片,让它不停地旋转,一但检测到下面风机停 ...
- MySQL 内建函数
日期相关 mysql> select curdate(),curtime(),now(),unix_timestamp(),week('2017-07-24'),year('2017-07-24 ...
- jsp基本语法及运行原理
一.jsp简介 JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导.许多公司参与一起建立 ...
- css基础:样式属性
1.背景与前景:background-color::背景色,样式表优先级高. background-image:url(路径):设置背景图片 background-attachment:fixed:背 ...
- 通过日期在js中求出判断间隔天数,周期等实现分享
在我们在项目的时候,可能出现这样的一种情况,有一个开始时间和一个结束时间,而这两个时间用$('#StartTime').val(); 取出来的时候又是datetime 类型,我们需要求这个时间中的间隔 ...
- WPF DEV实现手风琴效果
说明 最近用WPF+DevExpress做项目时,需要做一个类似手风琴的效果,效果的界面如下.因为没有现成的控件,需要自定义模板,所以写了一个Demo和大家分享,项目中可以根据实际情况使用.如果你用不 ...
- HAproxy功能配置
author:JevonWei 版权声明:原创作品 haproxy配置文档 https://cbonte.github.io/haproxy-dconv/ 环境 前端HAProxy 172.16.25 ...