<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>デスクトップアプリ - Python study</title>
	<atom:link href="https://gloiref-driver-beginner.com/category/%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E3%82%A2%E3%83%97%E3%83%AA/feed/" rel="self" type="application/rss+xml" />
	<link>https://gloiref-driver-beginner.com</link>
	<description>ビジネスで使えるプログラミングスキル</description>
	<lastBuildDate>Fri, 10 Mar 2023 03:51:56 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>

<image>
	<url>https://gloiref-driver-beginner.com/wp-content/uploads/cropped-23476495-1-scaled-e1674895409529-32x32.jpg</url>
	<title>デスクトップアプリ - Python study</title>
	<link>https://gloiref-driver-beginner.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【初心者でも簡単】PythonでWindowsデスクトップアプリを作る</title>
		<link>https://gloiref-driver-beginner.com/python-desktop-application-create/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=python-desktop-application-create</link>
		
		<dc:creator><![CDATA[す～]]></dc:creator>
		<pubDate>Wed, 01 Mar 2023 05:11:03 +0000</pubDate>
				<category><![CDATA[デスクトップアプリ]]></category>
		<guid isPermaLink="false">https://gloiref-driver-beginner.com/?p=104</guid>

					<description><![CDATA[<p>「プログラミング学習って何すればいいの？」</p>
<p>「プログラミング学習はまず、何から始めるの？」</p>
<p>僕自身もなにから始めたらいいかわからなかったので、</p>
<p>初めてでも形として残る。学習もできるデスクトップアプリを作りました。</p>
<p>The post <a href="https://gloiref-driver-beginner.com/python-desktop-application-create/">【初心者でも簡単】PythonでWindowsデスクトップアプリを作る</a> first appeared on <a href="https://gloiref-driver-beginner.com">Python study</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="has-vivid-red-color has-text-color"><strong>「デスクトップアプリを作りたい！」</strong></p>



<p class="has-vivid-red-color has-text-color"><strong>「Pythonでデスクトップアプリを作るにはどうしたらいいの？」</strong></p>



<p>Pythonを勉強して、デスクトップアプリが作れると知ったけど、作り方がわからない</p>



<p>そんな方向けにPythonでデスクトップアプリを作り方について解説していきます。</p>



<div class="is-layout-constrained wp-block-group"><div class="wp-block-group__inner-container">
<div class="wp-block-jin-gb-block-chat-block balloon-box balloon-left clearfix has-93-d-2-f-0-ballon has-e-2-f-6-ff-bgballon"><div class="balloon-icon maru"><img decoding="async" src="https://gloiref-driver-beginner.com/wp-content/uploads/computer_sagyouin_man.png"/></div><span class="icon-name"></span><div class="balloon-serif"><div class="balloon-content">
<p>本記事では、Python初心者の僕でも作れた。簡単デスクトップアプリの作り方を紹介します。</p>
</div></div></div>
</div></div>



<h2>環境</h2>



<ul>
<li>Windows 11</li>



<li>Python 3.10.7</li>



<li>IDEL</li>
</ul>



<h2>デスクトップアプリを作るのに使用したライブラリ</h2>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="640" height="425" src="https://gloiref-driver-beginner.com/wp-content/uploads/ux-g580e1199b_640.jpg" alt="" class="wp-image-130"/></figure>



<p>今回使用したライブラリは<span class="marker"><span class="marker2"><strong>PySimpleGUI</strong></span></span>を使用しています。</p>



<p>使用するにはライブラリをインストールする必要があります。</p>



<p>今回はWindowsでデスクトップアプリを作るのでWindowsを使用の方は<strong><span class="marker"><span class="marker2">コマンドプロンプト</span></span></strong>にて</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>pip install PySimpleGUI</code></pre></div>



<p>と入力してPySimpleGUIをインストールしてください。</p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="681" height="276" src="https://gloiref-driver-beginner.com/wp-content/uploads/2023-03-01-1.png" alt="" class="wp-image-110"/></figure>



<p>上のように出てきたらインストール完了です。</p>



<h2>デスクトップアプリを作るためのソースコード</h2>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="640" height="359" src="https://gloiref-driver-beginner.com/wp-content/uploads/code-gb43fc2d62_640.jpg" alt="" class="wp-image-131"/></figure>



<h3>完成したデスクトップアプリ</h3>



<p>今回作ったデスクトップアプリは住宅ローンの借り入れに対して月々いくらの返済になるのかを計算するアプリです。</p>



<p>完成したのがこちらです。</p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="477" height="224" src="https://gloiref-driver-beginner.com/wp-content/uploads/2023-03-01-2-1.png" alt="" class="wp-image-137"/></figure>



<p>今回は僕が家を買う時の予算と不動産屋さんに見積もってもらった時の金利の年利率0.6％で35年ローンを想定しました。</p>



<p>計算するボタンを押すとこのように計算してくれます。↓</p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="470" height="213" src="https://gloiref-driver-beginner.com/wp-content/uploads/2023-03-01-3.png" alt="" class="wp-image-138"/></figure>



<h3>開発環境（IDEL）</h3>



<p>Pythonをインストールすると同時にインストールされる開発環境です。</p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="631" height="773" src="https://gloiref-driver-beginner.com/wp-content/uploads/2023-03-01-4.png" alt="" class="wp-image-119"/></figure>



<p>開くと</p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="728" height="715" src="https://gloiref-driver-beginner.com/wp-content/uploads/2023-03-01-6.png" alt="" class="wp-image-120"/></figure>



<p>この画面が出てくるので左上のFileからNew Fileを選ぶと次の画面が出てきます。</p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="918" height="815" src="https://gloiref-driver-beginner.com/wp-content/uploads/2023-03-01-7.jpg" alt="" class="wp-image-121" srcset="https://gloiref-driver-beginner.com/wp-content/uploads/2023-03-01-7.jpg 918w, https://gloiref-driver-beginner.com/wp-content/uploads/2023-03-01-7-300x266.jpg 300w, https://gloiref-driver-beginner.com/wp-content/uploads/2023-03-01-7-768x682.jpg 768w, https://gloiref-driver-beginner.com/wp-content/uploads/2023-03-01-7.jpg 856w" sizes="(max-width: 918px) 100vw, 918px" /></figure>



<p>ここにコードを書いていきます。</p>



<p>コードを書き終えたらFileからSaveで保存します。</p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="995" height="800" src="https://gloiref-driver-beginner.com/wp-content/uploads/2023-03-01-8.jpg" alt="" class="wp-image-122" srcset="https://gloiref-driver-beginner.com/wp-content/uploads/2023-03-01-8.jpg 995w, https://gloiref-driver-beginner.com/wp-content/uploads/2023-03-01-8-300x241.jpg 300w, https://gloiref-driver-beginner.com/wp-content/uploads/2023-03-01-8-768x617.jpg 768w, https://gloiref-driver-beginner.com/wp-content/uploads/2023-03-01-8.jpg 856w" sizes="(max-width: 995px) 100vw, 995px" /></figure>



<p>保存したら、Run Moduleを押すとアプリが開かれます。</p>



<h3>ソースコード解説</h3>



<p>実際にコードを書いていきましょう。</p>



<p>アプリを作るコードを紹介します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>import PySimpleGUI as sg

# GUIのレイアウトを定義する
layout = [
    [sg.Text(&#39;借入金額&#39;), sg.Input(&quot;3000&quot;,key=&#39;LOAN&#39;),sg.Text(&#39;万円&#39;)],
    [sg.Text(&#39;年利率&#39;), sg.Input(&quot;0.6&quot;,key=&#39;RATE&#39;)],
    [sg.Text(&#39;返済期間&#39;), sg.Input(&quot;35&quot;,key=&#39;TERM&#39;), sg.Text(&#39;年&#39;)],
    [sg.Button(&#39;計算する&#39;)],
    [sg.Text(&#39;毎月の返済額: &#39;), sg.Text(size=(20,1), key=&#39;MONTHLY_PAY&#39;)],
    [sg.Text(&#39;総返済額: &#39;), sg.Text(size=(20,1), key=&#39;TOTAL_PAY&#39;)]
]

# GUIのウィンドウを作成する
window = sg.Window(&#39;ローンシミュレーションアプリ&#39;, layout)

# イベントループを開始する
while True:
    event, values = window.read()
    
    # ウィンドウが閉じられた場合、ループを抜ける
    if event == sg.WINDOW_CLOSED:
        break
        
    # 「計算する」ボタンがクリックされた場合、入力値から返済額を計算する
    if event == &#39;計算する&#39;:
        if values[&#39;LOAN&#39;] == &#39;&#39; or values[&#39;RATE&#39;] == &#39;&#39; or values[&#39;TERM&#39;] == &#39;&#39;:
            sg.popup_error(&#39;入力値が不正です。全ての項目に数値を入力してください。&#39;)
            continue

        loan = float(values[&#39;LOAN&#39;])
        rate = float(values[&#39;RATE&#39;])
        term = int(values[&#39;TERM&#39;]) * 12  # ヶ月数に変換する
        monthly_rate = rate / 12 / 100  # 月利率に変換する
        monthly_pay = loan *10000* monthly_rate / (1 - (1 + monthly_rate) ** -term)
        total_pay = monthly_pay * term
        window[&#39;MONTHLY_PAY&#39;].update(&#39;{:.2f}円&#39;.format(monthly_pay))
        window[&#39;TOTAL_PAY&#39;].update(&#39;{:.2f}円&#39;.format(total_pay))
        
# ウィンドウを閉じる
window.close()

</code></pre></div>



<p>一つずつ解説していきます。</p>



<h4>PySimpleGUIをインポート</h4>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>import PySimpleGUI as sg</code></pre></div>



<p>最初のこのコードでPySimpleGUIをインポートします。</p>



<h4>レイアウトを設定する</h4>



<p>PySimpleGUIではレイアウトを設定するとき、設定したい並び順にコードを<strong>[]</strong>の中に書いて改行することで配置を設定できます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code> layout = [

]</code></pre></div>



<p></p>



<p>１行の中に複数の項目を入れたいときは、カンマで区切ることで文字やインプットボックスを１行に複数入れられます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>  [sg.Text(&#39;借入金額&#39;), sg.Input(&quot;3000&quot;,key=&#39;LOAN&#39;),sg.Text(&#39;万円&#39;)],</code></pre></div>



<p></p>



<p>合わせたのがこちら</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>layout = [
    [sg.Text(&#39;借入金額&#39;), sg.Input(&quot;3000&quot;,key=&#39;LOAN&#39;),sg.Text(&#39;万円&#39;)],
    [sg.Text(&#39;年利率&#39;), sg.Input(&quot;0.6&quot;,key=&#39;RATE&#39;)],
    [sg.Text(&#39;返済期間&#39;), sg.Input(&quot;35&quot;,key=&#39;TERM&#39;), sg.Text(&#39;年&#39;)],
    [sg.Button(&#39;計算する&#39;)],
    [sg.Text(&#39;毎月の返済額: &#39;), sg.Text(size=(20,1), key=&#39;MONTHLY_PAY&#39;)],
    [sg.Text(&#39;総返済額: &#39;), sg.Text(size=(20,1), key=&#39;TOTAL_PAY&#39;)]
]</code></pre></div>



<h4>ボタンを押した時とウィンドウを閉じた時の設定コード</h4>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code># イベントループを開始する
while True:
    event, values = window.read()</code></pre></div>



<p>このコードでボタンを押した時にイベントを実行します。</p>



<p></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code># ウィンドウが閉じられた場合、ループを抜ける
    if event == sg.WINDOW_CLOSED:
        break</code></pre></div>



<p>このコードでウィンドウが閉じた時にイベントの実行をやめます。</p>



<h4>ボタンを押した時に実行するコード</h4>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code> # 「計算する」ボタンがクリックされた場合、入力値から返済額を計算する
    if event == &#39;計算する&#39;:
        if values[&#39;LOAN&#39;] == &#39;&#39; or values[&#39;RATE&#39;] == &#39;&#39; or values[&#39;TERM&#39;] == &#39;&#39;:
            sg.popup_error(&#39;入力値が不正です。全ての項目に数値を入力してください。&#39;)
            continue</code></pre></div>



<p>計算するボタンを押した時にインプットボックスが空欄だった時にエラーメッセージを出すコードです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>        loan = float(values[&#39;LOAN&#39;])
        rate = float(values[&#39;RATE&#39;])
        term = int(values[&#39;TERM&#39;]) * 12  # ヶ月数に変換する
        monthly_rate = rate / 12 / 100  # 月利率に変換する
        monthly_pay = loan *10000* monthly_rate / (1 - (1 + monthly_rate) ** -term)
        total_pay = monthly_pay * term
        window[&#39;MONTHLY_PAY&#39;].update(&#39;{:.2f}円&#39;.format(monthly_pay))
        window[&#39;TOTAL_PAY&#39;].update(&#39;{:.2f}円&#39;.format(total_pay))</code></pre></div>



<p>月々の返済額を計算するコードとその結果をテキストとして表示するコードです。</p>



<p>このコード部分は作るアプリによっても変わってくる部分になります。</p>



<h2>参考書籍</h2>



<figure class="wp-block-image size-small_size"><img decoding="async" loading="lazy" width="640" height="360" src="https://gloiref-driver-beginner.com/wp-content/uploads/reading-g06e551eb2_1280-640x360.jpg" alt="" class="wp-image-128"/></figure>



<p>今回、デスクトップアプリを作るうえで勉強した書籍を紹介します。</p>



<p class="has-black-color has-text-color"><span class="marker"><strong>この１冊</strong></span>でも簡単なデスクトップアプリなら作れるようになります。</p>



<div class="is-layout-flex wp-block-buttons"></div>



<div class="is-layout-flex wp-container-5 wp-block-columns">
<div class="is-layout-flow wp-block-column" style="flex-basis:100%">
<div class="is-layout-constrained wp-block-group"><div class="wp-block-group__inner-container">
<div class="wp-block-jin-gb-block-box simple-box4">
<ul>
<li>Python２年生　デスクトップアプリ開発のしくみ</li>
</ul>
</div>



<iframe sandbox="allow-popups allow-scripts allow-modals allow-forms allow-same-origin" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=babidy5571803-22&#038;language=ja_JP&#038;o=9&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=as_ss_li_til&#038;asins=B0BJCGJYH8&#038;linkId=c20748630a2c0689d6a84c9eb73d6c24"></iframe>
</div></div>
</div>
</div>



<h2>Python初心者がWindowsデスクトップアプリを作ってみて</h2>



<p>今回、書籍やサイトなどで勉強して作ってみたのですが、紹介した書籍の２章まででデスクトップアプリを作る基礎的な部分は理解できる内容でした。</p>



<p>基礎を勉強してからは、作りたい内容によって勉強方法は変わってくると思います。自分の作りたいアプリを作る前に一度、今回のアプリを作るとプログラミングでアプリを作る勉強になるのでぜひやってみてください。</p><p>The post <a href="https://gloiref-driver-beginner.com/python-desktop-application-create/">【初心者でも簡単】PythonでWindowsデスクトップアプリを作る</a> first appeared on <a href="https://gloiref-driver-beginner.com">Python study</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
