**
想必各位学习了Python基础的同学,都想做一个小程序来玩玩吧,如何通过Python来实现小程序的制作呢?
首先我们要先了解 tkinter 拓展库
#代码里的n和m都是数字
from tkinter import *
#搭建界面
root=Tk()
#搭建窗口
root.title("XXXXXX")
#窗口大小和位置可以用一句代码实现
#root.geometry('nxm+x+m')
#窗口大小 小写x连接
root.geometry('nxm')
#窗口位置
root.geometry('+n+m')
#标签控件
label=Label(root,text='XXXXXX')
label.grid()
#grid()网格式分布,pack()包,place 位置
#输入框
entry=Entry(width=n)
entry.grid(row=n,column=n)
#列表框控件
text=Listbox(root,width=n,height=n)
text.grid(row=1,columnspan=n) #columnspan 组件所跨越的列数
#row行数,column列数
#点击按钮
button=Button(root,text='XXXX',font=n,)#command 点击触发的装置
button.grid(row=n,column=n,sticky=W)
#sticky 对齐方式 N S W E 上 下 左 右
button1=Button(root,text='XX',font=n,command=root.quit)
button1.grid(row=n,column=n,sticky=E) #row行数,column列数
#窗口显示
root.mainloop()
总之,要学习Python开发GUI小程序就需要了解上面的一些基本的控件
下面是实现我们真心话大冒险小程序的代码
from random import * #导入随机数模板
from tkinter import * #导入界面设计版块
import tkinter.font as tkFont #从tkinter.font模板导入字体设置函数
#自定义函数:运行后点击界面按钮进行的操作
def call1():
r=randint(1,len(zhenxinhua)-2) #randint()函数表示随机取出一个范围在1到len(zhenxinhua)-2之间的随机数
var.set(zhenxinhua[r]) #将取出的随机数作为序号把序号对应的题目放进var里
def call2():
r=randint(1,len(damaoxian)-1)
var.set(damaoxian[r])
#题库文件读取
try:
f=open("真心话大冒险题库.txt")
problem=[] #定义一个列表储存题库文件所有内容
zhenxinhua=[] #定义列表储存真心话题目
damaoxian=[] #定义列表储存大冒险题目
for i in range(1000): #这个范围1000说明文件内容不能超过1000行,否则程序报错
str=f.readline() #readline()函数可以从文件读取一行内容,并把其储存在str字符串里
problem.append(str) #将str存入problem列表
if(str==''): #碰到文件末尾时,直接结束循环
break
problem.remove('\n') #这两行是去掉读取到的无用内容
problem.remove('')
for i in range(1000): #这个循环是把problem里面真心话题目部分存进zhenxinhua列表
if i>=len(problem):
break
zhenxinhua.append(problem[i])
if problem[i]=='大冒险\n':
break
for i in range(1000): #同上,这个是大冒险题目
if problem[i]=='大冒险\n':
while i :
if i>=len(problem):
break
damaoxian.append(problem[i])
i+=1
break
except:
print("error...")
print("continue")
#界面创建主要操作
root = Tk() #定义一个窗口,名字为root
root.title("真心话大冒险 v 2.01") #定义窗口显示出来时的标题
root.geometry('700x700') #用geometry固定窗口大小
root.attributes('-toolwindow',1)
ft=tkFont.Font(family='Comic Sans MS') #定义一个字体变量
frame1=Frame(root,bg="green") #在root窗口里划分出一个区域frame1,定义背景颜色为绿色
frame2=Frame(root,bg="yellow") #在root窗口里划分出一个区域frame2,定义背景颜色为黄色
frame1.pack(padx=100,pady=100) #确定frame1的位置,参数表示padx表示区域与窗口竖边的距离,也表示与其他同类部件的距离,pady表示与横边的距离,也表示与其他同类部件的距离
frame2.pack(padx=30,pady=50) #确定frame2的位置,参数表示padx表示区域与窗口竖边的距离,也表示与其他同类部件的距离,pady表示与横边的距离,也表示与其他同类部件的距离
#上面隐藏了一个参数side,默认为TOP,表示居于窗口顶部中间
var=StringVar() #一个字符串类,把字符串储存在var里,方便后面在窗口显示,显示的是题目
var.set("选择真心话或者大冒险") #设定初始字符串,set()函数用于把参数写进var
textLabel=Label(frame1,textvariable=var,height=10, width=400,
anchor=NW, wraplength=400,font=ft,bg="green")#Label,标签函数,用于在窗口中显示文字,将标签放在区域frame1里,调用var,将var里的字符串显示出来
textLabel.pack() #确定标签的位置,同上面frame1.pack,只需要默认为居中
thebutton1=Button(frame2,text="真心话",width=15,height=1,font=ft,command=call1,bg="red")#在窗口设置一个按钮,命名为thebutton1,按钮上显示“真心话”,参数command用于当按钮被点击时调用的操作,bg表示按钮颜色
thebutton1.pack(side=LEFT,fill=Y,padx=50) #确定按钮位置,放于frame2内
thebutton2=Button(frame2,text="大冒险",width=15,height=1,font=ft,command=call2,bg="blue")#同上
thebutton2.pack(side=RIGHT,fill=Y,padx=50)
mainloop() #开始把创建好的窗口显示出来
上面的“真心话大冒险题库.txt”大家可以自己去制作,也可以直接从我上传的资源那里下载下载,注意该txt文件要和py文件放到同一目录下,否则程序执行会报错。
下面是txt文件的内容
真心话
1:如果看到自己最爱的人熟睡在你面前你会做什么?
2:自己最最喜爱的歌?
3:当你最不知道穿什么颜色的时候,你会选择什么颜色?
4:你最后悔的一件事是什么?
5:曾经有过最被感动的事是什么?
6:比较喜欢爸爸还是妈妈?
7:你最想要的5样东西
8:最后一次发自内心的笑是什么时候?
9:如果给你一个机会去世界上任何一个地方旅行你会去:
10:如果时间能倒流你希望回到哪一时间?
11:你心目中理想的爱人是什么样子呢?
12:最想实现的三个愿望是什么?
13:我在你眼里什么样?
14:如果让你拥有一种超能力,你愿意拥有什么呢?
15:最喜欢哪部电影?
16:与喜欢的人见面,想要穿成什么样?
17:如果有来生,你选择当?
18:最喜欢的食物是什么
19:如何向喜欢的人表白?
20:如果你爱的人不爱你怎么办?
21:自己最丢人的事
22:如果有一天,你生命中最重要的东西离你而去了,你会怎么办?
23:如果从天而降99枚金币,你的第一反应是什么?
24:世界末日,你会幸存,并且你可以救一个人,你会怎么做?
25:如果让你选择做一个电影中的角色,你会选谁呢?
26:你在乎别人看你的眼光吗?会为了众人的反对放弃自己想要的东西或人吗?
27:哭得最伤心的是哪一次?为什么?
29:在你心中谁最可信?
30:你希望谁得到幸福?
31:大学一共挂过几门课,大学所有考试中,你考到最低的一门是什么课,考了几分?
32:对梦中情人有什么要求(在一分钟内说出五条)。
33:给大家唱一首对于你来说有特殊意义的歌(与你心中的人有关)
33:你的初恋是几岁?
34:如果再给你一次机会,回到高中毕业那天,你最想对某一位异性说什么话?
35:你最怕的事情或东西是什么(说出三件)。
36:说出同寝室的人最让你受不了的习惯
37:如果有一天有人对你说我爱上你了,你怎么办?
38:最喜欢吃的食物?
39:最伤心的经历?
40:今天穿什么衣服?每一件是花多少钱买的?
41:你觉得活着的意义是什么
42:男女朋友分手后还能做普通朋友吗?为什么?
42:到目前为止写过多少封情书
43:最奢侈的一次消费是什么
44:情人节最想收到什么礼物?
45:到目前为止你做过最疯狂的事是?
46:无聊的时候一般做什么?
47:请讲述未来5年的事业规划?
48:平生最成功的一次撒谎?
49:每个月的开销是多少?花到哪去了?
50:你认为最浪漫的事情是什么?
51…你最喜欢的小说是什么
大冒险
1:唱一首自己擅长的歌
2:请人点一首歌,然后自己唱
3.邀请一位异性好你唱一首歌
4:学超级名模走秀,绕桌子一圈。
5:模仿一位自己熟悉的明星、歌星或动物的动作、歌声或说话方式
6:和坐你右边的人深情对视并对她/他唱《老鼠爱大米》中的高潮部分。
7:表演舞蹈
8:模仿瘸子、瞎子、跛子走路的方式
9:去问一个附近的异性喜不喜欢自己。
10:选定一下几首童歌之一进行现场表演:《春天在哪里》、《让我们荡起双桨》、《两只老虎》、《一闪一闪亮晶晶》、《世上只有妈妈好》、《数鸭子》《抓泥鳅》《捡到一分钱》、《童年》
11:念以下绕口令:季姬寂,集鸡,鸡即棘鸡。棘鸡饥叽,季姬及箕稷济鸡。鸡既济,跻姬笈,季姬忌,急咭鸡,鸡急,继圾几,季姬急,即籍箕击鸡,箕疾击几伎,伎即齑,鸡叽集几基,季姬急极屐击鸡,鸡既殛,季姬激,即记《季姬击鸡记》。
12:与异性表演情景剧“一男一女相遇”
13:背诵两首古诗
14:右手跨过后脑勺从左边摸右眼。
15:重温大话西游的经典对白,现场满意为止。(曾经,有一份真诚的爱情放在我面前,我没有珍惜,等到我失去的时候才后悔莫及,人世间最痛苦的事莫过于此??如果上天能够给我一个再来一次的机会,我会对那个女孩子说三个字:“我爱你。”
16.。正确说出一位异性的大学专业,错误再来一次大冒险。
17:找在场的一位异性情歌对唱。
18:天旋地转:就地闭眼睛,左转三圈,右转三圈,再睁开眼睛,走回自己的座位
19:我是淑女:赢的人将3-5本书放至输的人的头顶,并请他(她)学模特走台步旋转一圈后走回来。如果书掉了,就得重来。
20.说五句英语
21:神情的吻墙10秒
22在厕所里唱歌,让大家都能听到唱的是什么;
23.请在现场选一位异性同学,向他或她表白
24.大笑5秒之后,忽然又大哭5秒钟,反复2-3次
25.扮演4个猪八戒经典动作.
26.与一位异性十指相扣,对视10秒
27.学八种动物叫
28.给异性捶背按摩一分钟。
29.赞美班级中最有特点的一个人(不少于1分钟)
30.为右边第一个男生说一个关于自己和同学的秘密就像以前暗恋过谁
希望本文章对大家进一步学习Python有用!!!
敬请期待下一期的推文!!!!