基于wxPython的深度学习图像处理界面开发(一)

        Python 中的图形用户界面(Graphical User Interfa GUI)开发库有很多,较为突出有:Tkinter 、PyQt 和 wxPython。 推荐大家使用wxPython 开发图形用户界面。

        1、Tkinter 是 Python 官方提供的图形用户界面开发库,用于封装Tk GUI工具包,跨平台。但是 Tkinter 工具包所含的控件较少,帮助文档不健全,不便于我们开发复杂的图形用户界面。
        2、PyQt 是非Python官方提供的图形用户界面开发库,用于封装Qt 工具包,跨平台若想使用PyQt 工具包,则需要额外安装软件包。
        3、wxPython 是非Python官方提供的图形用户界面开发库,也跨平台。他提供了丰富的控件,可用于开发复杂的图形用户界面。它的工具包帮助文档很完善,案例也很丰富。

          学完本文教程可接着学习更深层次教程:基于wxPython的深度学习图像处理界面开发(二)-CSDN博客

  第一步、安装:

pip install wxpython

第二、Hello World代码:

import wx

# 创建应用程序对象
app = wx.App()

# 创建窗口对象
frm = wx.Frame(None, title="Hello World", size=(400, 300), pos=(100, 100))
# 显示窗口
frm.Show()

# 进入主事件循环
app.MainLoop()

第三步、使用语法:

我这里总结一些常用的语法,比如按钮打开,文本显示结果,显示图片

wx.Button控件

wx.Button是包含文本字符串的控件,是GUI中最常见的元素之一。它可以放置在对话框或者wx.Panel面板,以及几乎任何窗口上。

默认情况下,即如果没有指定对齐样式,则标签将水平和垂直居中。如果按钮同时有标签和位图,上面的对齐样式指定了组合了标签和位图的矩形的位置,如果位图位置由
wx.Button.SetBitmapPosition设置,则定义了位图相对于标签的相对位置(目前不是所有平台上都实现了非默认对齐组合)。

# 静态文本(wx.StaticText)

import wx
import os


class SampleStaticText(wx.Frame):

    def __init__(self, *args, **kw):
        super(SampleStaticText, self).__init__(*args, **kw)

        self.InitUi()

    def InitUi(self):
        # 设置标题
        self.SetTitle('微信公众号:天竺街潜水的八角')
        # 设置窗口尺寸
        self.SetSize(415, 320)

        txt1 = '''
        微信公众号:天竺街潜水的八角
        '''

        self.panel = wx.Panel(self)

        btn = wx.Button(self.panel, -1, "select")
        btn.Bind(wx.EVT_BUTTON, self.OnSelect)

        self.vBox = wx.BoxSizer(wx.VERTICAL)

        self.font = wx.Font(13, wx.DEFAULT, wx.NORMAL, wx.DEFAULT)

        self.Centre()


    def OnSelect(self, event):
        txt1 = '''
        微信公众号:天竺街潜水的八角
        '''
        stcTxt1 = wx.StaticText(self.panel, label=txt1, style=wx.ALIGN_LEFT, pos=(10,10))

        stcTxt1.SetFont(self.font)

        self.vBox.Add(stcTxt1, flag=wx.ALL, border=20)

        self.panel.SetSizer(self.vBox)


def main():
    app = wx.App()
    sample = SampleStaticText(None)
    sample.Show()
    app.MainLoop()


if __name__ == "__main__":
    main()

wx.StaticText控件

静态文本控件wx.StaticText用来显示一行或者多行的只读文本。

# 静态文本(wx.StaticText)

import wx


class SampleStaticText(wx.Frame):

    def __init__(self, *args, **kw):
        super(SampleStaticText, self).__init__(*args, **kw)

        self.InitUi()

    def InitUi(self):
        # 设置标题
        self.SetTitle('微信公众号:天竺街潜水的八角')
        # 设置窗口尺寸
        self.SetSize(400, 320)

        txt1 = '''
        微信公众号:天竺街潜水的八角
        '''

        panel = wx.Panel(self)
        vBox = wx.BoxSizer(wx.VERTICAL)

        font = wx.Font(13, wx.DEFAULT, wx.NORMAL, wx.DEFAULT)

        stcTxt1 = wx.StaticText(panel, label=txt1, style=wx.ALIGN_LEFT)

        stcTxt1.SetFont(font)

        vBox.Add(stcTxt1, flag=wx.ALL, border=10)

        panel.SetSizer(vBox)

        self.Centre()


def main():
    app = wx.App()
    sample = SampleStaticText(None)
    sample.Show()
    app.MainLoop()


if __name__ == "__main__":
    main()

wx.StaticBitmap

静态位图控件wx.StaticBitmap用来显示一个位图。某些平台上的本机实现仅用于显示对话框中的小图标。注意,为了获得最佳效果,如果没有显式地调整大小,则默认情况是控件的大小应该与其中显示的图像的大小相同。可以使用SetScaleMode来控制图像在控件中的缩放方式。

# 静态文本(wx.StaticText)

import wx
import os


class SampleStaticText(wx.Frame):

    def __init__(self, *args, **kw):
        super(SampleStaticText, self).__init__(*args, **kw)

        self.InitUi()

    def InitUi(self):
        # 设置标题
        self.SetTitle('微信公众号:天竺街潜水的八角')
        # 设置窗口尺寸
        self.SetSize(415, 320)

        txt1 = '''
        微信公众号:天竺街潜水的八角
        '''

        panel = wx.Panel(self)

        bmp = wx.Image(os.path.dirname(__file__) + "/background.png", wx.BITMAP_TYPE_PNG).ConvertToBitmap()
        wx.StaticBitmap(panel, wx.ID_ANY, bmp, pos=(10, 20))


        self.Centre()


def main():
    app = wx.App()
    sample = SampleStaticText(None)
    sample.Show()
    app.MainLoop()


if __name__ == "__main__":
    main()

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以给你提供一个简单的登录界面的代码示例: ``` import wx class LoginFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, "登录界面", size=(300, 200)) self.panel = wx.Panel(self, -1) self.label_user = wx.StaticText(self.panel, -1, "用户名:", pos=(50, 50)) self.text_user = wx.TextCtrl(self.panel, -1, "", size=(150, -1), pos=(110, 50)) self.label_pwd = wx.StaticText(self.panel, -1, "密码:", pos=(50, 90)) self.text_pwd = wx.TextCtrl(self.panel, -1, "", size=(150, -1), pos=(110, 90), style=wx.TE_PASSWORD) self.button_login = wx.Button(self.panel, -1, "登录", pos=(110, 130)) self.button_login.Bind(wx.EVT_BUTTON, self.on_login) self.Bind(wx.EVT_CLOSE, self.on_close) def on_login(self, event): user = self.text_user.GetValue() pwd = self.text_pwd.GetValue() if user == "admin" and pwd == "123": wx.MessageBox("登录成功!", "提示", wx.OK | wx.ICON_INFORMATION, self) else: wx.MessageBox("用户名或密码错误!", "提示", wx.OK | wx.ICON_ERROR, self) def on_close(self, event): self.Destroy() if __name__ == "__main__": app = wx.App() frame = LoginFrame() frame.Show() app.MainLoop() ``` 这是一个基于wxPython库编写的登录界面,包括用户名、密码的输入框以及登录按钮。用户输入用户名和密码后点击登录按钮,程序会判断是否正确,如果正确,则弹出登录成功的提示框,否则弹出用户名或密码错误的提示框。您可以根据自己的需要进行修改和补充,比如加入记住密码功能、忘记密码链接等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值