Python3小试牛刀

来源:互联网 发布:欧陆风云4 dlc mac 编辑:程序博客网 时间:2024/05/29 15:08

今天开始正式接触Python,因此弄个窗体化程序来小试牛刀,之前我们学校也开设了Python课,但是当时我觉得Python缺点挺多的,例如移植性差,稳定性差等,再加上学校老师不负责任的教育方式以及当时盲目迷恋C++,导致我并没有重视Python这一门强大的语音,考试也是随随便便考了个70多分了事,直到现在才发现,原来PY的功能如此强大,特别是在人工智能、机器视觉等领域,在熟悉了一下它的基本语法之后就开始进行编程了,先上我的源代码,此源码参考了Tkinter的方法的使用


# -*- coding: UTF-8 -*-
import tkinter as tk
class Window(tk.Frame):
    def __init__(self, master=None):#python里None为0#init为对象初始化函数
        tk.Frame.__init__(self, master)#初始化对象
        self.pack()#Widgets组件初始化
        self.createWidgets()#创建Widgets组件


    def createWidgets(self):
        self.print = tk.Button(self)#创建按键
        self.print["text"] = "按了之后打印字符"#按键文本
        self.print["command"] = self.say_love#按键指令
        self.print.pack(side="top")#按键显示位置#若没有则按默认排序       


        self.QUIT = tk.Button(self, text="债见不送", fg="red",
                              command=root.destroy)
        self.QUIT.pack()


        self.fuck = tk.Button(self,text="晓晓好萌",fg="blue")
        self.fuck.pack()
    def say_love(self):
        print("晓晓4F5DA2")


root = tk.Tk()#对根窗口进行操作
app = Window()#(master=root)
app.mainloop()


运行结果如下


按下第一个按钮


程序大概的解释我已经标注出来了这里就不详细讲了,接下来讲我在编译过程中遇到的问题


1.关于pack()的用法

pack()方法是调用Widgets组件的方法

例如pack(side="top")则是把组件放在顶部

也可以直接使用pack()不使用形参

则是按默认方式排序(代码先后顺序)

如果加上形参side="top"则是放在最顶,side="bottom"则是放在最底

但是我把代码改成了如下,两个按钮都用了同一个形参会怎么样?


  self.QUIT = tk.Button(self, text="债见不送", fg="red",
                              command=root.destroy)
        self.QUIT.pack(side="bottom")


        self.fuck = tk.Button(self,text="晓晓好萌",fg="blue")
        self.fuck.pack(side="bottom")

运行结果如下


这下就有点反常理了对吧,这下它并不是按照代码先后顺序来排序了,而是有点像栈的排序,一个放在最下,第二个就只能放在次下了。


2.关于mainloop()//主循环

为了测试mainloop()的用法,我

在程序最后加上了

a=10

print(a)

运行结果如下


关掉窗口才出现print的10


然而我把app.mainloop()注释掉之后再运行发现


pirnt的10在窗口弹出之前出现了,这个跟C/C++的while(1)有点不一样


在下不才,如有错误,望大神指出

原创粉丝点击