PythonでGUIアプリを作る(Tkinter)~ウィジェットの配置(place編)

Python

Pythonで、GUIアプリを作るには、Tkinterというライブラリを使う方法があります。

Tkinterでは、ウィジェットというGUI部品を、ウィンドウに配置することで、GUIアプリを作っていきます。

ウィジェットを配置する方法は、pack、grid、placeという3つの方法があります。

今回は、placeという方法を紹介します。

広告

「place」の使い方

「place」の使い方は、以下のページで紹介しています。

広告

サンプルコード

x、yの使い方

#!usr/bin/env python
# -*- coding: utf-8 -*-

from tkinter import *
from tkinter import ttk

# メインウィンドウ作成
app = Tk()
app.geometry("600x400")

# 青色のキャンバス作成
canvas1 = Canvas(
    app,
    width=300,
    height=300,
    bg="blue"
)

# 1つ目のボタン作成
button1 = Button(
    app,
    width=10,
    height=1,
    text="ボタン1"
)

# 2つ目のボタン作成
button2 = Button(
    app,
    width=20,
    height=2,
    text="ボタン2"
)

# ウィジェットの配置
canvas1.place(
    x=50,
    y=50
)

button1.place(
    x=200,
    y=70
)

button2.place(
    x=300,
    y=200
)

# メインループ
app.mainloop()

実行結果

anchorの使い方

#!usr/bin/env python
# -*- coding: utf-8 -*-

from tkinter import *
from tkinter import ttk

# メインウィンドウ作成
app = Tk()
app.geometry("600x400")

# 青色のキャンバス作成
canvas1 = Canvas(
    app,
    width=300,
    height=300,
    bg="blue"
)

# 1つ目のボタン作成
button1 = Button(
    app,
    width=10,
    height=1,
    text="ボタン1"
)

# 2つ目のボタン作成
button2 = Button(
    app,
    width=20,
    height=2,
    text="ボタン2"
)

# ウィジェットの配置
canvas1.place(
    x=50,
    y=50
)

button1.place(
    x=200,
    y=70
)

button2.place(
    x=300,
    y=200,
    anchor=NE
)

# メインループ
app.mainloop()

実行結果

width、heightの使い方

#!usr/bin/env python
# -*- coding: utf-8 -*-

from tkinter import *
from tkinter import ttk

# メインウィンドウ作成
app = Tk()
app.geometry("600x400")

# 青色のキャンバス作成
canvas1 = Canvas(
    app,
    width=300,
    height=300,
    bg="blue"
)

# 1つ目のボタン作成
button1 = Button(
    app,
    width=10,
    height=1,
    text="ボタン1"
)

# 2つ目のボタン作成
button2 = Button(
    app,
    width=20,
    height=2,
    text="ボタン2"
)

# ウィジェットの配置
canvas1.place(
    x=50,
    y=50
)

button1.place(
    x=200,
    y=70
)

button2.place(
    x=300,
    y=200,
    width=100,
    height=100
)

# メインループ
app.mainloop()

実行結果

relx、relyの使い方

#!usr/bin/env python
# -*- coding: utf-8 -*-

from tkinter import *
from tkinter import ttk

# メインウィンドウ作成
app = Tk()
app.geometry("600x400")

# 青色のキャンバス作成
canvas1 = Canvas(
    app,
    width=300,
    height=300,
    bg="blue"
)

# 1つ目のボタン作成
button1 = Button(
    app,
    width=10,
    height=1,
    text="ボタン1"
)

# 2つ目のボタン作成
button2 = Button(
    app,
    width=20,
    height=2,
    text="ボタン2"
)

# ウィジェットの配置
canvas1.place(
    x=50,
    y=50
)

button1.place(
    x=200,
    y=70
)

button2.place(
    relx=0.5,
    rely=0.5
)

# メインループ
app.mainloop()

実行結果

ウィンドウサイズを変更しても、ボタン2の位置は、(0.5、0.5)の比率で維持されている。

relwidth、relheightの使い方

#!usr/bin/env python
# -*- coding: utf-8 -*-

from tkinter import *
from tkinter import ttk

# メインウィンドウ作成
app = Tk()
app.geometry("600x400")

# 青色のキャンバス作成
canvas1 = Canvas(
    app,
    width=300,
    height=300,
    bg="blue"
)

# 1つ目のボタン作成
button1 = Button(
    app,
    width=10,
    height=1,
    text="ボタン1"
)

# 2つ目のボタン作成
button2 = Button(
    app,
    width=20,
    height=2,
    text="ボタン2"
)

# ウィジェットの配置
canvas1.place(
    x=50,
    y=50
)

button1.place(
    x=200,
    y=70
)

button2.place(
    relwidth=0.3,
    relheight=0.1,
    relx=0.5,
    rely=0.5
)

# メインループ
app.mainloop()

実行結果

ウィンドウを引き延ばして、ボタン2の縦横の画面比率は変わらない
広告

まとめ

Tkinterで、ウィジェットを配置する方法として、placeを紹介しました。

Pythonを勉強するなら、独学より、きちんとした講座で勉強するほうが効率的です。わからないこともすぐに聞けるので。わからないことを調べるのは時間がかかります。

Pythonコース

コメント

タイトルとURLをコピーしました