pythonGUIチュートリアル(一)

7162 ワード

0 .前言
最近は忙しくて、pythonまで使うので、この机会を借りてpythonのいくつかの机能を书いたほうがいいでしょう.本文はチュートリアルの名前を顶いていていますが、実はもっと自分の技术を忘れているようです.卒业の答弁の时に自分の书いたコードを読むことができることを望んでいます.本文は极度に无责任で、すべての使い方を绍介することはできません.私が使った机能だけが绍介されています.その他は象徴的に言及されています.だから、あなたは知っています.自分で学びます.
1 .GUIデザイン
pythonでよく見られるいくつかのGUI設計に使用できるライブラリ関数:curses:端末GUIアプリケーションを作成するためのncursesの内蔵パッケージ.Enaml:QMLなどの宣言構文を使用して、きれいなユーザーインタフェースを作成します.Flexx:Flexxは、Webテクノロジーを使用してレンダリングするGUIを作成するための純粋なPythonツールパッケージです.kivy:Windows、Linux、Mac OS、Android、iOSで実行するNUIアプリケーションを作成するライブラリです.pyglet:Python用のプラットフォーム間ウィンドウとマルチメディアライブラリ.PyGObject:GLib/GObject/GIO/GTK+(GTK+3)用のPythonバインディングPyQt:Qtのプラットフォーム間アプリケーションとUIフレームワーク用のPythonバインディングで、Qt v 4とQt v 5フレームワークをサポートする.PySide:Qtのプラットフォーム間アプリケーションとUIフレームワークのPythonバインドに使用し、Qt v 4フレームワークをサポートする.pywebview:Webviewコンポーネントを囲む軽量レベルのプラットフォームにまたがる本体パッケージで、自分の本体専用ウィンドウにHTMLコンテンツTkinterを表示できる:TkinterはPythonの事実上の標準GUIパッケージである.Toga:Python本体のOS本体GUIキット.urwid:端末GUIアプリケーションを作成するためのライブラリで、ウィンドウウィジェット、イベント、豊富な色などに強力なサポートを提供する.wxPython:wxWidgets C++クラスライブラリとPythonの混合.
1.1 tkinterライブラリの使用
本稿では主にtkinterライブラリの使用について説明するが、本稿で使用する環境はpython 3である.7,python 2.xの文法に違いがありますので、区別に注意してください.tkinterはpythonに内蔵された標準GUIライブラリであり、最も一般的で簡単なGUI設計ライブラリでもある.
#!/usr/bin/env python      
import tkinter as tk       

class Application(tk.Frame):              
    def __init__(self, master=None):
        tk.Frame.__init__(self, master)   
        self.grid()                       
        self.createWidgets()

    def createWidgets(self):
        self.quitButton = tk.Button(self, text='Quit',
            command=self.quit)            
        self.quitButton.grid()            

app = Application()                       
app.master.title('Sample application')    
app.mainloop()

これは、終了ボタンのみを含むフォームプログラムを作成するための公式の例です.(オブジェクト向けプログラミング手法を採用).私はオブジェクトに向いていないので、本稿ではプロセスに向いてどのように使うかだけを説明します.ここで、インポートライブラリがimport Tkinterからimport tkinterに変更されたのはpython構文の変化によるもので、python 2を使用してください.xの同級生は注意します.プロシージャ・エンコード向けの最も簡単なウィンドウ・プログラム:インスタンス
#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
import tkinter as tk
window = tk.Tk()
window.title('   ')
window.geometry('720x480') #   
window.mainloop()

このうち#!/usr/bin/pythonは、本コードがlinuxでも正常に動作することを保証するためである.# -*- coding: UTF-8 -*-は、コードの作成フォーマットがuft-8符号化フォーマットであることを保証し、フォーマットの問題でプログラムが実行できないことはありません.import tkinter as tk:tkinterライブラリをインポートし、tkでtkinter window = tk.Tk()を指す:初期化ウィンドウプログラムwindow.mainloop():メッセージサイクルtkinterライブラリに入るには15種類の基本部品が含まれ、
部品
説明
用途
Button
ボタンコントロール
プログラムにボタンを表示
Canvas
キャンバスコントロール
線やテキストなどのグラフィック要素を表示
Checkbutton
複数選択ボックスコントロール
プログラムに複数の選択ボックスを指定できます.
Entry
入力コントロール
簡単なテキストの内容を表示
Frame
フレームコントロール
コンテナとして使用される長方形の領域が画面に表示されます.
Label
タブコントロール
テキストとビットマップを表示できます
Listbox
リストボックスコントロール
Listboxウィンドウウィジェットでは、ユーザーに文字列リストを表示するために使用されます.
Menubutton
メニューボタンコントロール
メニュー項目が表示されるため
Menu
メニューコントロール
メニューバー、ドロップダウンメニュー、ポップアップメニューの表示
Message
メッセージコントロール
複数行のテキストを表示するために使用され、labelと比較して類似しています.
Radiobutton
ラジオボタンコントロール
ラジオボタンのステータスを表示
Scale
範囲コントロール
数値スケールを表示し、出力範囲を限定した数値区間
Scrollbar
スクロールバーコントロール
リストボックスなどの表示領域を超える場合に使用します.
.
Text
テキストコントロール
複数行のテキストを表示
Toplevel
コンテナコントロール
別のダイアログボックスを提供するために使用されます.Frameと似ています.
Spinbox入力コントロール
Entryと似ていますが、入力範囲値を指定できます.
PanedWindow
PanedWindowは、1つ以上のサブコントロールを含むウィンドウレイアウト管理プラグインです.
LabelFrame
Labelframeは簡単なコンテナコントロールで、よく複雑なウィンドウレイアウトと使用されます.
tkMessageBox
アプリケーションを表示するメッセージボックス
1.1.2 buttonの使用
buttonはボタンコントロールで、グラフィックプログラムにボタンを追加します.検索ファイルを作成するGUIを例に説明します.
import tkinter as tk 
import os#     ,        
from tkinter import*
from tkinter import filedialog#       
def search():#  search  
    file_path = filedialog.askopenfilename()
    print(file_path)#      
window = tk.Tk()
file_search = tk.Button(window,text = '    ',bg = "white",command = search,relief = GROOVE)
window.mainloop()

buttonの構文規則: = tk.Button( , = )パラメータには、次のものが含まれます.
ツールバーの
機能
activebackground
マウスを上げるとボタンの背景色が
activeforeground
マウスを上げると、ボタンの前の景色が
bd
ボタンボーダーのサイズ、デフォルトは2ピクセル
bg
ボタンの背景色
command
ボタンに関連付けられた関数で、ボタンがクリックされたときに実行されます.
fg
ボタンの前景色(ボタンテキストの色)
font
テキストフォント
height
ボタンの高さ
highlightcolor
ハイライトする色
image
ボタンに表示する画像
justify
複数行のテキストを表示する場合は、同行しない位置合わせを設定し、LEFT、RIGHT、CENTERなどのオプションがあります
padx
ボタンのx軸方向の内辺距離(padding)とは、ボタンの内容とボタンエッジとの距離を指す
pady
ボタンのy軸方向の内側余白(padding)
relief
枠線のスタイル、コントロールの3 D効果を設定して、オプションはFLAT、SUNKEN、RAISED、GROOVE、RIDGEがあります.デフォルトはFLAT
state
ボタンコンポーネントの状態を設定し、オプションでNORMAL、ACTIVE、DISABLED、デフォルトNORMAL
underline
下線、デフォルトのボタンのテキストに下線はありません.値は下線付き文字列インデックスで、0の場合、最初の文字に下線が付き、1の場合、最初の2文字に下線が付きます.
width
ボタンの内容(テキストまたはピクチャのサイズ)に合わせてサイズが設定されていない場合は、ボタンの幅
wraplength
ボタンの行ごとに表示される文字の数を制限
text
ボタンのテキスト内容
anchor
アンカーオプション、テキストの位置を制御、デフォルトは中心
ファイルを検索するには、ライブラリに付属の関数を使用するだけで = filedialog.askopenfilename()、非常にeasy~
1.1.3 cavansの使用
画像ファイルの挿入例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import tkinter as tk
window = tk.Tk()
canvas = tk.Canvas()
w = Canvas(window,width = 500, height = 500, bg = "white")
filename = PhotoImage(file = "BIT.gif")
image = w.create_image(0,0,anchor = "nw" ,image = filename)
w.pack()
window.mainloop()

構文規則:w = tk.Canvas( , = )ツールバーの
機能
bd
枠線幅、単位ピクセル、デフォルト2ピクセル
bg
背景色
confine
true(デフォルト)の場合、キャンバスはスライド可能な領域の外にスクロールできません.
cursor
カーソルの形状設定、arrow、circle、cross、plusなど
height
高さ
highlightcolor
ハイライトする色
relief
枠線スタイル、オプション値はFLAT、SUNKEN、RAISED、GROOVE、RIDGE、デフォルトはFLAT
scrollregion
キャンバスがスクロール可能な最大領域を定義するメタグループtuple(w,n,e,s),wは左,nは頭,eは右,sは底部である
width
X軸上のキャンバスのサイズ
xscrollincrement
ロール要求の水平スクロールに使用される数量値
xscrollcommand
水平スクロールバー、キャンバスがスクロール可能である場合、この属性は水平スクロールバーである.set()メソッド
yscrollincrement
xscrollincreementに似ていますが、垂直方向
yscrollcommand
垂直スクロールバー、キャンバスがスクロール可能である場合、この属性は垂直スクロールバーである.set()メソッド
画像を挿入する場合は、構文:id = C.create_image(x, y, option, ...)ツールバーの
機能
anchor
デフォルト値はanchor=tkである.CENTERは,画像が(x,y)位置を中心としていることを意味する.このオプションの可能な値については、5.5節「アンカーポイント」を参照してください.例えば、anchor=tkと指定する.Sは、画像を位置決めし、画像の底部(南)の縁の中心に点(x,y)を位置させる
disabledimage
プロジェクトが非アクティブな場合に表示される画像
image
表示する画像
state
画像オブジェクトは作成するtkである.NORMALは、マウスに応答できます.この値をtkに設定.DISABLEDはグレーになり、マウスに応答しません.これをtkに設定と.HIDDENの場合、この項目は表示されません
tags
単一の文字列の場合は、その文字列を使用して画像をマークします.文字列タプルを使用して複数のラベルで画像をマーク
挿入可能な画像のフォーマットはGIFで、その他のフォーマットはこのフォーマットに変換してください、その他のフォーマットは間違っています
2.1後記
私は今このようなものを使っているので、私もこの部分を書きました.他の部分は言及していません.もし私が後期に使うなら、ここに補充します.