两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

前面我們學(xué)習(xí)了兩種GUI模塊,下面我們串接起前面的內(nèi)容來(lái)創(chuàng)建一個(gè)登陸+注冊(cè)+寫日記的圖形用戶界面。本節(jié)的設(shè)計(jì)思路為:首先通過(guò)一個(gè)主頁(yè)面來(lái)控制登錄界面(這是一種常用的設(shè)計(jì)理念,使主頁(yè)面更為簡(jiǎn)潔),在登錄頁(yè)面控制兩個(gè)頁(yè)面,如果登錄信息正確,那么跳轉(zhuǎn)到下一個(gè)頁(yè)面,若要注冊(cè)也則點(diǎn)擊進(jìn)入注冊(cè)頁(yè)面,本節(jié)會(huì)通過(guò)四個(gè)代碼,三個(gè)頁(yè)面來(lái)簡(jiǎn)單實(shí)現(xiàn)。

1. 主頁(yè)面程序(main.py)

from tkinter import *
from LoginPage import *
root = Tk()
root.title('小程序')
Login(root)
root.mainloop()

 2. 登陸頁(yè)面程序(LoginPage.py)

from tkinter import *
from tkinter.messagebox import *
from MainPage import *
from Register import *
class Login(object):
    def __init__(self, master=None):
        self.root = master  # 定義內(nèi)部變量root
        self.root.minsize(300, 200)
        self.username = StringVar()
        self.password = StringVar()
        self.create()
    def create(self):
        self.page = Frame(self.root)  # 創(chuàng)建Frame
        self.page.pack()
        Label(self.page).grid(row=0, stick=W)
        Label(self.page, text='賬戶: ').grid(row=1, stick=W, pady=10)
        Entry(self.page, textvariable=self.username).grid(row=1, column=1, stick=E)
        Label(self.page, text='密碼: ').grid(row=2, stick=W, pady=10)
        Entry(self.page, textvariable=self.password, show='*').grid(row=2, column=1, stick=E)
        Button(self.page, text='登陸', command=self.loginCheck).grid(row=3, stick=W, pady=10)
        Button(self.page, text='注冊(cè)', command=self.regis).grid(row=3, column=1, stick=E)
    def loginCheck(self):
        if self.username.get() == 'qy' and self.password.get() == '123456':
            self.page.destroy()
            MainPage(self.root)
        else:
            showinfo(title='錯(cuò)誤', message='賬號(hào)或密碼錯(cuò)誤!')
    def regis(self):
        self.page.destroy()
        app = wx.App()
        frame = MyFrame()
        frame.Show()
        app.MainLoop()

3. 注冊(cè)頁(yè)面程序(Register.py)

import wx
class MyFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "登錄界面", size=(300, 300))
        panel = wx.Panel(self)#創(chuàng)建一個(gè)畫布,然后創(chuàng)建功能區(qū)并放到畫布上
        self.title = wx.StaticText(panel,label = '注冊(cè)界面')
        self.username = wx.StaticText(panel,label = '用戶名字:')
        self.user_name = wx.TextCtrl(panel,style = wx.TE_LEFT)
        self.userpassword = wx.StaticText(panel,label = '輸入密碼:')
        self.user_password = wx.TextCtrl(panel,style = wx.TE_PASSWORD)
        self.userpassword1 = wx.StaticText(panel,label = '確認(rèn)密碼:')
        self.user_password1 = wx.TextCtrl(panel,style = wx.TE_PASSWORD)
        self.button_register = wx.Button(panel,label = '注冊(cè)')
        container_one = wx.BoxSizer(wx.HORIZONTAL)  # 創(chuàng)建一個(gè)box容器并控制水平排列
        container_one.Add(self.username,proportion = 0,flag = wx.ALL,border = 7)
        container_one.Add(self.user_name,proportion = 1,flag = wx.ALL,border = 7)
        container_two = wx.BoxSizer(wx.HORIZONTAL)  # 創(chuàng)建一個(gè)box容器并控制水平排列
        container_two.Add(self.userpassword,proportion = 0,flag = wx.ALL,border = 7)
        container_two.Add(self.user_password,proportion = 1,flag = wx.ALL,border = 7)
        container_four = wx.BoxSizer(wx.HORIZONTAL)  # 創(chuàng)建一個(gè)box容器并控制水平排列
        container_four.Add(self.userpassword1,proportion = 0,flag = wx.ALL,border = 7)
        container_four.Add(self.user_password1,proportion = 1,flag = wx.ALL,border = 7)
        container_three = wx.BoxSizer(wx.HORIZONTAL)  # 創(chuàng)建一個(gè)box容器并控制水平排列
        container_three.Add(self.button_register,proportion =0,flag = wx.ALIGN_CENTER,
        border = 4)
        sizers = wx.BoxSizer(wx.VERTICAL)    sizers.Add(self.title,proportion=0,
        flag=wx.BOTTOM|wx.TOP|wx.ALIGN_CENTER,border=10)
        sizers.Add(container_one,proportion = 0,flag =wx.EXPAND|wx.LEFT|wx.RIGHT,border=40)
        sizers.Add(container_two, proportion=0, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, 
        border=40)
        sizers.Add(container_four, proportion=0, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, 
        border=40)
        sizers.Add(container_three, proportion=0, flag=wx.ALIGN_CENTER|wx.TOP, border=10)
        panel.SetSizer(sizers)
if __name__ == "__main__":
    app = wx.App()
    frame = MyFrame()
    frame.Show()
    app.MainLoop()

4. 寫日記頁(yè)面程序(MainPage.py)

from tkinter import *
class MainPage(object):
    def __init__(self, master=None):
        self.root = master  # 定義內(nèi)部變量root
        self.root.geometry('%dx%d' % (600, 400))  # 設(shè)置窗口大小
        self.createPage()
    def createPage(self):
        self.inputPage = InputFrame(self.root)  # 創(chuàng)建不同F(xiàn)rame
        self.queryPage = QueryFrame(self.root)
        self.countPage = CountFrame(self.root)
        self.aboutPage = AboutFrame(self.root)
        self.inputPage.pack()  # 默認(rèn)顯示數(shù)據(jù)錄入界面
        menubar = Menu(self.root)
        menubar.add_command(label='寫日記', command=self.inputData)
        menubar.add_command(label='看日記', command=self.queryData)
        self.root['menu'] = menubar  # 設(shè)置菜單欄
    def inputData(self):
        self.inputPage.pack()
        self.queryPage.pack_forget()
        self.countPage.pack_forget()
        self.aboutPage.pack_forget()
    def queryData(self):
        self.inputPage.pack_forget()
        self.queryPage.pack()
        self.countPage.pack_forget()
        self.aboutPage.pack_forget()

5. 綜合使用

 

wxpython21

輸入‘qy’、密碼‘123456’,點(diǎn)擊登陸,進(jìn)入下一頁(yè)面。

wxpython22

點(diǎn)擊注冊(cè)進(jìn)入下一頁(yè)面:

wxpython23

6. 總結(jié)

這個(gè)簡(jiǎn)單的案例結(jié)合了TkinterwxPython兩種用法,大家頁(yè)面的跳轉(zhuǎn)就類似于模塊調(diào)用,等同于直接調(diào)用其他模塊中的方法,也就是建立了頁(yè)面與頁(yè)面之間的連接,本節(jié)內(nèi)容只是Gui模塊的簡(jiǎn)單使用,有興趣的同學(xué)可以去開(kāi)發(fā)一個(gè)屬于自己的小程序。


點(diǎn)贊(0)

C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語(yǔ)言學(xué)練課程

解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程

從零到寫出一個(gè)爬蟲的Python編程課程

只會(huì)語(yǔ)法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時(shí)間)