一般的に使用されるPython3インターフェイスの開発.md

[ TOC]

0 x00序文####

PythonでのさまざまなGUIの概要と、それらの長所と短所の比較:

GUIプログラミング 紹介機能 長所と短所
PyQt Pythonは、クロスプラットフォームGUIツールセットQtパッケージング用に440のクラスと6000の関数またはメソッドを実装します。PyQtはPythonプラグインとして実装されます。 非常に強力なTkinterのより人気のある代替品。Qtで美しいインターフェースを開発でき、PyQtで美しいインターフェースを開発できます。クロスプラットフォームのサポートは良好ですが、商用ライセンスにはいくつかの問題があるようです。
Tkinter は、PythonによってラップされたTclコードであるPythonのTk GUIツールセットにバインドされています。これは、Pythonインタープリターに埋め込まれたTclインタープリターによって実装されます。Tkinter呼び出しはTclコマンドに変換され、解釈のためにTclインタープリターに渡されます。 PythonGUIインターフェイスを実装します。 TkとPerlTkなどの他の言語バインディングの比較は、TkのCライブラリによって直接実装されます。 Pythonの最長の歴史事実上の標準GUI。Pythonで設定されたTkGUIツールの標準インターフェイスが標準のPythonWindowsインストールに含まれています。有名なIDLEは、Tkinterを使用してGUIの作成を実現することです。GUIはシンプルで、学習して使用できます。それも簡単です。
wxPython Pythonは、クロスプラットフォームGUIツールセットwxWidgets(C ++で記述)のラッパーであり、Pythonの拡張モジュールとして実装されています。 さまざまなプラットフォームで優れたパフォーマンスを発揮するTkinterの人気のある代替品。
PyGTK GTK + GUIライブラリ用の一連のPythonラッパー。 Tkinterのより一般的な代替手段。Gnomeでよく知られているアプリケーションの多くは、PyGTKを使用してGUIを実装しています。たとえば、BitTorrent、GIMP、Geditにはすべてオプションの実装があります。これは、Windowsプラットフォームではうまく機能しないようです。結局のところ、GTKのGUIライブラリが使用されているので問題はありません。
PySide PythonにバンドルされているクロスプラットフォームGUIツールセットQtの別のPythonラッパーは、もともとBoostC ++ライブラリによって実装され、後にShibokenに移行されました。 Tkinterの人気のある代替品は上記と同様です。2つの違いについて
easygui Pythonの非常にシンプルなGUIプログラミングモジュール。他のGUIジェネレーターとは異なり、イベント駆動型ではなく、関数の呼び出しによって実装され、使い方も簡単です。プログラマーが何も知らなくても、シンプルなGUIインタラクティブインターフェイスをユーザーに提供します。 tkinter、フレーム、ウィジェット、コールバック、またはラムダに関する詳細。
ディレクトリナビゲーション#####

(1) easyguiモジュール
(2) wxPythonモジュール

0 x01Easyguiモジュール####

1. EasyGUIの紹介#####

**1.1 EasyGUIとは何ですか? ****
EasyGUIは、Pythonの非常にシンプルなGUIプログラミングモジュールです。他のGUIジェネレーターとは異なり、イベント駆動型ではありません。
それどころか、すべてのGUIインタラクションは、単純な関数呼び出しによって実現できます。EasyGUIは、プログラマがtkinter、フレームワーク、コンポーネント、コールバック、またはラムダに関する詳細を知らなくても、シンプルなGUIインタラクションインターフェイスをユーザーに提供します。

EasyGUIはTkinterで実行され、独自のイベントループがあり、IDLEはTkinterによって作成されたアプリケーションであり、独自のイベントループもあります。したがって、2つが同時に実行されている場合、競合が発生し、予測できない結果が生じる可能性があります。したがって、EasyGUIプログラムにこのような問題があることがわかった場合は、IDLEの外部でプログラムを実行してみてください。

環境バージョン:Python 3.7.2、easygui-0.98.1-py3.7.egg
公式サイト:[https://github.com/robertlugg/easygui](https://github.com/robertlugg/easygui)
pipを使用してインストールします:pip install easygui

1.2 EasyGUIモジュールとメソッドの紹介をインポートする
EasyGUIこのモジュールを使用するには、最初にモジュールをインポートする必要があります。

importステートメントは次のとおりです。

import easygui
from easygui import*import easygui as g

# コマンドラインでEasyGUIを呼び出すのはこのようなもので、IDE(IDLEなど)を使用することもできます。, PythonWin, Wing,など)オンコール:
Python3/Lib/site-packages/easygui-0.98.1-py3.7.egg/easygui/easygui.py
easygui.egdemo()

モジュールメソッドのリスト:

(0) easygui.egdemo()  #EasyGUIデモプログラム

''' メッセージダイアログ'''msgbox(msg='(Your message goes here)', title=' ', ok_button='OK', image=None, root=None)  #メッセージボックス
enterbox(msg='Enter something.', title=' ',default='', strip=True, image=None, root=None)  #入力ボックス,戻り値は、ユーザーが入力した文字列です。;integerbox(msg='', title=' ',default=None, lowerbound=0, upperbound=99, image=None, root=None) #数值入力ボックス
# 複数の単純な入力ボックス,ユーザーが入力した値がオプションよりも小さい場合、返されるリストの値は空の文字列で埋められ、入力されたオプションが多すぎるとユーザーは切り捨てられます。,ユーザーは操作をキャンセルしてNoneを返します
multenterbox(msg='Fill in values for the fields.', title=' ', fields=[], values=[], callback=None, run=True)passwordbox(msg='Enter your password.', title=' ',default='', image=None, root=None) #パスワード入力ボックス(に*ナンバーフォーム表示)'''ボタンダイアログ'''
# メッセージを表示して[OK]ボタンを指定します。任意のメッセージとタイトルを指定し、[OK]ボタンを上書きできます
# 「キャンセル」を選択するかウィンドウを閉じると、ブール値0が返されます。それ以外の場合は1です。
# 注:「C[o]ntinue」[o]ショートカットキーを表します。つまり、ユーザーがキーボードのo文字をタップすると、「C」をクリックするのと同じです。[o]ntinue」ボタン。
ccbox(msg='Shall I continue?', title=' ', choices=('C[o]ntinue','C[a]ncel'), image=None, default_choice='C[o]ntinue', cancel_choice='C[a]ncel')

# ccbox付き()デフォルトのchoicesパラメーター値がここで異なることを除いて、同じです。[<F1>]キーボードのF1ファンクションキーを「はい」のショートカットキーとして使用することを意味します。
ynbox(msg='Shall I continue?', title=' ', choices=('[<F1>]Yes','[<F2>]No'), image=None, default_choice='[<F1>]Yes', cancel_choice='[<F2>]No')

# ボタンボックスを使用する()独自のボタンのセット、ボタンボックスを定義する()あなたがカスタマイズしたボタンのセットが表示されます。
# ユーザーがいずれかのボタンをクリックすると、ボタンボックス()ボタンのテキストコンテンツを返します。ユーザーが[キャンセル]をクリックするかウィンドウを閉じると、デフォルトのオプション(最初のオプション)に戻ります。
buttonbox(msg='', title=' ', choices=('Button[1]','Button[2]','Button[3]'), image=None, images=None, default_choice=None, cancel_choice=None, callback=None, run=True)

# 基本的にボタンボックス付き()同じように、違いは、ユーザーが最初のボタンを選択すると番号0が返され、2番目のボタンが選択されると番号1のインデックスボックスが返されることです。(msg='Shall I continue?', title=' ', choices=('Yes','No'), image=None, default_choice='Yes', cancel_choice='No')boolbox(msg='Shall I continue?', title=' ', choices=('[Y]es','[N]o'), image=None, default_choice='Yes', cancel_choice='No')  #最初のボタンが選択されている場合はTrueを返し、それ以外の場合はFalseを返します。

''' 選択する/チェックボックス'''
# ボタンコンポーネントは、ユーザーにシンプルなボタンオプションを提供するのに便利ですが、オプションが多数ある場合、またはオプションの内容が特に長い場合は、選択可能なリストをユーザーに提供することをお勧めします。
choicebox(msg='Pick an item', title='', choices=[], preselect=0, callback=None, run=True) #シングルボックス
multchoicebox(msg='Pick an item', title='', choices=[], preselect=0, callback=None, run=True) #ユーザーが0、1、または複数のオプションを同時に選択できるようにする

''' テキストボックスを表示'''
# 注:textパラメーターは、編集可能なテキスト領域のコンテンツを設定します。これは、文字列、リスト、または祖先のタイプにすることができます。
textbox(msg='', title=' ', text='', codebox=False, callback=None, run=True)codebox(msg='', title=' ', text='') #テキストボックスと同等のモノスペースフォント(自動行折り返しなし)でテキストコンテンツを表示する(codebox=True)'''ファイルディレクトリ選択ボックス'''
# この関数は、ユーザーが選択したディレクトリ名(フルパスを含む)を返すダイアログボックスを提供するために使用されます。ユーザーが[キャンセル]を選択すると、[なし]が返されます。
diropenbox(msg=None, title=None,default=None)fileopenbox(msg=None, title=None,default='*', filetypes=None, multiple=False)filesavebox(msg=None, title=None,default='', filetypes=None) #この関数は、ファイルを保存する必要のあるパスを選択するためのダイアログボックスを提供します(フルパスを使用)

# デフォルトパラメータの設定方法について:
defaultパラメータはデフォルトパスを指定し、通常は1つ以上のワイルドカードを含みます。
デフォルトのパラメータが設定されている場合、fileopenbox()デフォルトのファイルパスと形式を表示します。
defaultデフォルトのパラメータは'*'、ファイルのすべての形式に一致します。

# 例えば:
default="c:/fishc/*.py"これはCを示しています:\fishcフォルダー内のすべてのPythonファイル。
default="c:/fishc/test*.py"これはCを示しています:\名前がtestで始まるfishcフォルダー内のすべてのPythonファイル。

# filetypesパラメータの設定方法について:
ファイルマスクを含む文字列のリストにすることができます。例:filetypes=["*.txt"]
文字列のリストにすることができます。リストの最後の文字列は、ファイルタイプの説明です(例:filetypes)。=["*.css",["*.htm","*.html","HTML files"]]

1.3 EgStoreストアドプロシージャ
GUIプログラミングの一般的なシナリオは、ユーザーにパラメーターを設定してから保存するように依頼して、ユーザーが次にプログラムを使用するときに自分の設定を思い出せるようにすることです。ユーザーの設定を保存および復元するプロセスを実現するために、EasyGUI EgStoreと呼ばれるクラスを提供します。

場合:

from easygui import EgStore

# EgStoreクラスから継承された「設定」と呼ばれるクラスを定義します
# 設定オブジェクトに値を設定することで変数をインスタンス化できるため、設定を簡単に覚えてから、設定を使用できます.store()メソッドはハードディスクに保持されます。
classSettings(EgStore):

 def __init__(self, filename):  #ファイル名を指定する必要があります
  # 覚えておくべき属性の名前を指定してください
  self.author =""
  self.book =""

  # 次の2つのステートメントを実行する必要があります
  self.filename = filename
  self.restore()

# 「設定」のインスタンス化されたオブジェクト「設定」を作成します
settingsFilename ="settings.txt"
settings =Settings(settingsFilename)

author ="WeiyiGEEK"
book ="ゼロファンデーションでピホンを学ぶ"

# 上記の2つの変数の値を「設定」オブジェクトに保存します
settings.author = author
settings.book = book
settings.store()print("\n保存済み\n")

1.4 例外をキャッチ
exceptionbox()関数は、例外を処理するためのより良い方法を提供します。EasyGUIを使用してGUIプログラムを作成する場合、例外が必然的に発生することがあります。もちろん、アプリケーションの実行方法によって異なります。アプリケーションがクラッシュすると、スタックが発生します。トレースはスローされるか、stdout標準出力関数に書き込まれる可能性があります。

例外が発生すると、exceptionbox()はコードボックス()にスタックトレースを表示し、さらに処理を実行できるようにします。
例えば:

import easygui
try:print('I Love FishC.com!')int('FISHC') #ここで例外が発生します
except:
  easygui.exceptionbox()  #エラー処理

WeiyiGeek。例外キャプチャ

2. EasyGUIの使用例#####
#! /usr/bin/python3
# ケース:easyguiモジュールの使用

import easygui as g

nickname =input('スクリーン名を入力してください:')
love =input("あなたの趣味を入力してください:")
age = g.enterbox('年齢を入力してください:','情報入力')
res = g.msgbox('入力した個人情報は次のとおりです。'+nickname+',趣味:'+love+',年齢:'+age,'個人情報','確認済み')print("msgboxの戻り値:",res)  #戻る_button值  msgboxの戻り値: 確認済み
sex = g.buttonbox('あなたの性別を選択してください:','エントリー情報',('男性','女性','none'),default_choice='none')
city = g.multchoicebox('都市の選択','エントリー情報',['北京','上海','広州','深セン','チョンチン'])

# ファイルを作成するディレクトリを選択します
savedir = g.diropenbox(msg=None, title='',default=None)  
test = g.fileopenbox(msg=None, title=None,default='*', filetypes=None, multiple=False)
savefile = g.filesavebox(msg=None, title='ファイルが保存されるディレクトリ',default='', filetypes=None) 
# C:\Users\Administrator\Documents 
# C:\Users\Administrator\Desktop\Study-Promgram\README.md 
# C:\Users\Administrator\Desktop\Study-Promgram\test.txt

withopen(savefile,'w+',encoding='utf-8')as f:
 f.write(nickname+'\n'+love+'\n'+age+'\n'+res+'\n'+sex+'\n')for x in city:
  f.write(x+'\n')

g.textbox(nickname+'\n'+love+'\n'+age+'\n'+res+'\n'+sex+'\n','効果','value')print("モジュールテストが完了しました。")

WeiyiGeek.msgbox

WeiyiGeek。実行が完了しました

Recommended Posts

一般的に使用されるPython3インターフェイスの開発.md
一般的に使用されるPython3スクリプトプログラミング.md
Pythonの安らかなフレームワークインターフェイスの開発と実装
python開発[最初の記事]
PythonGUIインターフェイスプログラミング
Pythonインターフェース開発の実装手順の詳細な説明
Pythonで一般的に使用される魔法の方法
ubuntuビルドpython開発環境
Python開発でのパンダの使用
Pythonは詳細な開発のためにC / C ++を組み込んでいます
Python開発でのnumpyの使用
本当のゼロの基本的なPython開発ウェブ
Python名刺管理システムの開発
パイソンクローラー開発の学習パス
CentOS7はPython言語開発環境を構成します