zoukankan      html  css  js  c++  java
  • wxPython 创建基本窗口

    $ pip install wxPython
    
    import wx
    
    class MyFrame(wx.Frame):
      def __init__(self, parent, title):
        super(MyFrame, self).__init__(parent, title=title, size= (600, 400))
        panel = wx.Panel(self)
    
        vbox = wx.BoxSizer(wx.VERTICAL) # 垂直布局
    
        row1 = wx.StaticText(panel, label = "Log in")
        vbox.Add( row1, flag = wx.ALIGN_CENTER)
        vbox.AddSpacer(10)
    
        row2 = wx.BoxSizer(wx.HORIZONTAL)
        row2.Add( wx.StaticText(panel, label = "Username") )
        row2.AddSpacer(10)
        self.username = wx.TextCtrl(panel)
        row2.Add( self.username )
        vbox.Add(row2, flag = wx.ALIGN_CENTER)
        vbox.AddSpacer(10)
    
        row3 = wx.BoxSizer(wx.HORIZONTAL)
        row3.Add( wx.StaticText(panel, label = "Password") )
        row3.AddSpacer(10)
        self.password = wx.TextCtrl(panel, style = wx.TE_PASSWORD)
        row3.Add( self.password )
        vbox.Add(row3, flag = wx.ALIGN_CENTER)
        vbox.AddSpacer(10)
    
        row4 = wx.Button(panel, label = "Submit")
        row4.Bind(wx.EVT_BUTTON, self._submit)
        vbox.Add(row4, flag = wx.ALIGN_CENTER)
    
        panel.SetSizer(vbox) # 设置布局
      
      # 提交
      def _submit(self, e):
        print("Username is (%s)" % (self.username.GetValue()))
        print("Password is (%s)" % (self.password.GetValue()))
        result = wx.MessageBox(
          message = "Username is: %s 
    Password is: %s" % (self.username.GetValue(), self.password.GetValue()),
          caption = "登录信息",
          style = wx.OK | wx.CANCEL | wx.ICON_NONE
        )
        print(result)
    
    # app
    class MyApp(wx.App):
      def OnInit(self):
        self.frame = MyFrame(None, "hello world")
        self.frame.Show()
        return True
    
    app = MyApp()
    app.MainLoop()
    

    build

    $ pip install pyinstaller
    
    • 简单的打包:
    $ pyinstaller main.py -w -F -n demo -i ./logo.ico // 这会生成一个demo.exe的可执行文件 (dll全部被打包到一起,如果要分离dll取消-F选项)
    

    help:

    usage: pyinstaller [-h] [-v] [-D] [-F] [--specpath DIR] [-n NAME] [--add-data <SRC;DEST or SRC:DEST>]
                       [--add-binary <SRC;DEST or SRC:DEST>] [-p DIR] [--hidden-import MODULENAME]
                       [--additional-hooks-dir HOOKSPATH] [--runtime-hook RUNTIME_HOOKS] [--exclude-module EXCLUDES]
                       [--key KEY] [-d {all,imports,bootloader,noarchive}] [-s] [--noupx] [--upx-exclude FILE] [-c] [-w]
                       [-i <FILE.ico or FILE.exe,ID or FILE.icns>] [--version-file FILE] [-m <FILE or XML>] [-r RESOURCE]
                       [--uac-admin] [--uac-uiaccess] [--win-private-assemblies] [--win-no-prefer-redirects]
                       [--osx-bundle-identifier BUNDLE_IDENTIFIER] [--runtime-tmpdir PATH] [--bootloader-ignore-signals]
                       [--distpath DIR] [--workpath WORKPATH] [-y] [--upx-dir UPX_DIR] [-a] [--clean] [--log-level LEVEL]
                       scriptname [scriptname ...]
    
    positional arguments:
      scriptname            要处理的脚本文件的名称,也就是一个.spec文件。如果指定了.spec文件,大多数选项都是不必要的,将被忽略。
    
    optional arguments(可选参数):
      --distpath DIR        DIR放置捆绑的应用程序的位置 (default: .dist)
      --workpath WORKPATH   放置所有临时工作文件 .log .pyz等的位置 (default: .uild)
      -y, --noconfirm       替换输出目录 (default: SPECPATHdistSPECNAME) without asking for confirmation
      --upx-dir UPX_DIR     Path to UPX utility (default: search the execution path)
      -a, --ascii           不包括unicode编码支持 (default: 包括 如果可用)
      --clean               在构建之前清理PyInstaller缓存并删除临时文件
      --log-level LEVEL     生成时控制台消息中的详细信息量。 LEVEL可能是TRACE,DEBUG,INFO,WARN,ERROR, CRITICAL (default: INFO).
    
    What to generate(产生什么):
      -D, --onedir          创建一个包含可执行文件的单文件夹捆绑包 (default)
      -F, --onefile         创建一个文件捆绑可执行文件
      --specpath DIR        用于存储生成的规范文件 (default: 当前目录)
      -n NAME, --name NAME  分配给捆绑的应用程序和规范文件的名称 (default: 第一个脚本的基本名称)
    
    What to bundle, where to search:
      --add-data <SRC;DEST or SRC:DEST>
                            Additional non-binary files or folders to be added to the executable. The path separator is
                            platform specific, ``os.pathsep`` (which is ``;`` on Windows and ``:`` on most unix systems)
                            is used. This option can be used multiple times.
      --add-binary <SRC;DEST or SRC:DEST>
                            Additional binary files to be added to the executable. See the ``--add-data`` option for more
                            details. This option can be used multiple times.
      -p DIR, --paths DIR   A path to search for imports (like using PYTHONPATH). Multiple paths are allowed, separated by
                            ';', or use this option multiple times
      --hidden-import MODULENAME, --hiddenimport MODULENAME
                            Name an import not visible in the code of the script(s). This option can be used multiple
                            times.
      --additional-hooks-dir HOOKSPATH
                            An additional path to search for hooks. This option can be used multiple times.
      --runtime-hook RUNTIME_HOOKS
                            Path to a custom runtime hook file. A runtime hook is code that is bundled with the executable
                            and is executed before any other code or module to set up special features of the runtime
                            environment. This option can be used multiple times.
      --exclude-module EXCLUDES
                            Optional module or package (the Python name, not the path name) that will be ignored (as
                            though it was not found). This option can be used multiple times.
      --key KEY             The key used to encrypt Python bytecode.
    
    How to generate:
      -d {all,imports,bootloader,noarchive}, --debug {all,imports,bootloader,noarchive}
                            Provide assistance with debugging a frozen
                            application. This argument may be provided multiple
                            times to select several of the following options.
    
                            - all: All three of the following options.
    
                            - imports: specify the -v option to the underlying
                              Python interpreter, causing it to print a message
                              each time a module is initialized, showing the
                              place (filename or built-in module) from which it
                              is loaded. See
                              https://docs.python.org/3/using/cmdline.html#id4.
    
                            - bootloader: tell the bootloader to issue progress
                              messages while initializing and starting the
                              bundled app. Used to diagnose problems with
                              missing imports.
    
                            - noarchive: instead of storing all frozen Python
                              source files as an archive inside the resulting
                              executable, store them as files in the resulting
                              output directory.
    
      -s, --strip           Apply a symbol-table strip to the executable and shared libs (not recommended for Windows)
      --noupx               Do not use UPX even if it is available (works differently between Windows and *nix)
      --upx-exclude FILE    Prevent a binary from being compressed when using upx. This is typically used if upx corrupts
                            certain binaries during compression. FILE is the filename of the binary without path. This
                            option can be used multiple times.
    
    Windows and Mac OS X specific options(Windows和Mac OS X特定选项):
      -c, --console, --nowindowed
                             打开用于标准I/O的控制台窗口(默认)。 在Windows上,此选项无效
                             如果第一个脚本是“.pyw”文件。
      -w, --windowed, --noconsole
                             Windows和MacOS X:不提供标准I/O的控制台窗口。 在MacOS X上,这也是
                             触发构建OS X .app捆绑包。 在Windows上,如果第一个脚本
                             是一个“.pyw”文件。 在* NIX系统中,此选项被忽略
      -i <FILE.ico or FILE.exe,ID or FILE.icns>, --icon <FILE.ico or FILE.exe,ID or FILE.icns>
                              FILE.ico:将该图标应用于Windows可执行文件。 FILE.exe,ID,从中提取具有ID的图标
                             一个exe文件。 FILE.icns:将图标应用于Mac OS X上的.app捆绑包
    
    Windows specific options(Windows特定选项):
      --version-file FILE   将版本资源从FILE添加到exe
      -m <FILE or XML>, --manifest <FILE or XML>
                            将清单文件或XML添加到exe
      -r RESOURCE, --resource RESOURCE
                            向Windows可执行文件添加或更新资源。资源是一到四个项目,
                            FILE[,TYPE[,NAME[,LANGUAGE]]]. FILE can be a data file or an exe/dll. For data files, at least
                            TYPE and NAME must be specified. LANGUAGE defaults to 0 or may be specified as wildcard * to
                            update all resources of the given TYPE and NAME. For exe/dll files, all resources from FILE
                            will be added/updated to the final executable if TYPE, NAME and LANGUAGE are omitted or
                            specified as wildcard *.This option can be used multiple times.
      --uac-admin           使用此选项创建清单,该清单将在应用程序重新启动时请求提升。
      --uac-uiaccess        使用此选项可以使高级应用程序与远程桌面一起使用。
    
    Windows Side-by-side Assembly searching options (advanced)(Windows并排程序集搜索选项 高级):
      --win-private-assemblies
                            捆绑到应用程序中的任何共享程序集都将更改为私有程序集。
                            这意味着将始终使用这些程序集的确切版本,以及任何较新的版本
                            安装在用户计算机上的系统级别的文件将被忽略。
      --win-no-prefer-redirects
                            在搜索共享或专用程序集以捆绑到应用程序中时,PyInstaller
                            宁愿不遵循重定向到较新版本的策略,也将尝试捆绑程序集的确切版本。
    
    Mac OS X specific options:
      --osx-bundle-identifier BUNDLE_IDENTIFIER
                            Mac OS X .app bundle identifier is used as the default unique program name for code signing
                            purposes. The usual form is a hierarchical name in reverse DNS notation. For example:
                            com.mycompany.department.appname (default: first script's basename)
    
    Rarely used special options:
      --runtime-tmpdir PATH
                            Where to extract libraries and support files in `onefile`-mode. If this option is given, the
                            bootloader will ignore any temp-folder location defined by the run-time OS. The
                            ``_MEIxxxxxx``-folder will be created here. Please use this option only if you know what you
                            are doing.
      --bootloader-ignore-signals
                            Tell the bootloader to ignore signals rather than forwarding them to the child process. Useful
                            in situations where e.g. a supervisor process signals both the bootloader and child (e.g. via
                            a process group) to avoid signalling the child twice.
    
  • 相关阅读:
    POJ 3253 Fence Repair
    POJ 2431 Expedition
    NYOJ 269 VF
    NYOJ 456 邮票分你一半
    划分数问题 DP
    HDU 1253 胜利大逃亡
    NYOJ 294 Bot Trust
    NYOJ 36 最长公共子序列
    HDU 1555 How many days?
    01背包 (大数据)
  • 原文地址:https://www.cnblogs.com/ajanuw/p/14010931.html
Copyright © 2011-2022 走看看