Python界面绘制之GUI

tkinter

新建窗口和控制

from tkinter import *
app = Frame()
app.master.geometry('640x480')                        #设置窗口的大小为640*480
app.master.resizable()                                #窗口大小可以通过鼠标拖动改变,app.master.resizable(0,0)则表示窗口大小不可改变
app.master.title("Windows")                           #设置窗口的名称
app.master.mainloop()                                 #维护主进程不退出

布局管理

tkinter有三种方式进行布局管理:

pack

pack属性
属性 简介 可能取值
fill  组件水平或垂直方向的填充

X:                    水平方向填充

Y:                    垂直方向填充

BOTH:            水平和垂直方向填充 

NONE:            不填充

expand  设置组件是否展开,默认不展开

YES:                side无效,组件在父容器中心

NO:

side  设置组件对齐方式

LEFT:                左

RIGHT:             右

TOP:                顶部

BOTTOM:        底部

padx(y)

 设置并列组件间X(Y)方向的间隙

 非负整数,单位为像素,默认值为0

ipadx(y)

 设置子组件之间X(Y)方向的间隙  非负整数,单位为像素,默认值为0
anchor  瞄选项

N:

S:

E:

W:

NW:

NE:

SW:

SE:

CENTER :                    默认值

     

下面展示一段示例代码:

from tkinter import *

def buttonClicked():
    print("Button is clicked ")

app = Frame()
# -------------------- the first containter start -------------------------
frame0 = Frame(app.master)
optionChoices=['Green', 'Red', 'Yellow']
optionValue=StringVar()
option=OptionMenu(frame0, optionValue, *optionChoices)
optionValue.set('Green')
textInput=Text(frame0, width=25, height=0)
radio= Radiobutton(frame0, text='Radio')

option.pack(fill=X, padx=10, pady=4, side=LEFT, ipadx=10)
textInput.pack(fill=X, padx=10, pady=4, side=LEFT, ipadx=10)
radio.pack(fill=X, padx=10, pady=4, side=LEFT, ipadx=10)
frame0.pack(side=TOP, fill=BOTH, expand=NO, anchor=CENTER)
# -------------------- the first containter end-------------------------

# -------------- the second containter start-----------------------
frame1 = Frame(app.master)
checkValue = BooleanVar()
label = Label(frame1, text="Label", width=10, bg="gray", fg="black")
button = Button(frame1, text="Button", width=10, command=buttonClicked)
entry = Entry(frame1, width=25)
check = Checkbutton(frame1, variable=checkValue, onvalue=True, offvalue=False)
checkLabel = Label(frame1, text="Check", fg="black", )
checkValue.set(True)                    # set default value

label.pack(fill=X, padx=10, pady=4, side=LEFT, ipadx=10)
entry.pack(fill=X, padx=10, pady=4, side=LEFT, ipadx=10)
button.pack(fill=X, padx=10, pady=4, side=LEFT, ipadx=10)
check.pack(fill=X, side=LEFT)
checkLabel.pack(fill=X, padx=0, pady=4, side=LEFT, ipadx=0)
frame1.pack(side=TOP, fill=BOTH, expand=NO, anchor=CENTER)
# -------------- the first containter end-----------------------

app.master.geometry('640x480')                        #设置窗口的大小为640*480
app.master.resizable()                                #窗口大小可以通过鼠标拖动改变,app.master.resizable(0,0)则表示窗口大小不可改变
app.master.title("Windows")                           #设置窗口的名称
app.master.mainloop()                                 #维护主进程不退出

运行结果

grid

place

PyQt5

[QtDesigner制作PyQt5界面的方法](https://www.jianshu.com/p/7d0add425d75)

猜你喜欢

转载自blog.csdn.net/IEE2285/article/details/78056705