<?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>「Qt」タグの記事一覧Python Tech</title>
	<atom:link href="https://tech.nkhn37.net/tag/qt/feed/" rel="self" type="application/rss+xml" />
	<link>https://tech.nkhn37.net</link>
	<description>Python学習サイト</description>
	<lastBuildDate>Sun, 11 Jan 2026 05:26:46 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://tech.nkhn37.net/wp-content/uploads/2021/01/cropped-lion-normal-clear-1-32x32.png</url>
	<title>「Qt」タグの記事一覧Python Tech</title>
	<link>https://tech.nkhn37.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【PyQt】PyQt概要 ~PythonでGUI開発~</title>
		<link>https://tech.nkhn37.net/pyqt-gui-programming-overview/</link>
					<comments>https://tech.nkhn37.net/pyqt-gui-programming-overview/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Sat, 19 Nov 2022 20:00:00 +0000</pubDate>
				<category><![CDATA[PyQt]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[LGPL]]></category>
		<category><![CDATA[PySide]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[キュート]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=5851</guid>

					<description><![CDATA[PythonでGUI開発ができるツールキットであるPyQtについて概要を紹介します。 PyQtとは PyQtは、クロスプラットフォームなGUIツールキットであり、Windows、Linux、Mac等様々なOSで動作可能な [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">PythonでGUI開発ができるツールキットである<span class="marker"><strong>PyQt</strong></span>について概要を紹介します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">PyQtとは</h2>



<p class="wp-block-paragraph"><span class="marker"><strong>PyQt</strong></span>は、クロスプラットフォームなGUIツールキットであり、Windows、Linux、Mac等様々なOSで動作可能なGUIプログラムを作成することができます。</p>



<p class="wp-block-paragraph">PyQtは、「<span class="marker"><strong>Qt</strong></span>（キュート）」というGUIツールキットをPythonプログラムから利用できるようにしたものです。まずは、そもそものQtについて説明して、その後にPyQtの概要を説明しようかと思います。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Qt（キュート）について</h3>



<p class="wp-block-paragraph"><span class="marker"><strong>Qt（キュート）</strong></span>とは、クロスプラットフォームに対応したC++のGUIツールキットでハバード・ノード（Haavard Nord）とエリック・チェンエン（Eirik Chambe-Eng）によって開発されました。Qtが最初に世に出たのは1995年のことです。私が初めてQtを知ったのは大学/大学院時代にC++の勉強をしていてGUIで使えるツールないか探していた時でしたので2010年頃であったのを覚えています。</p>



<p class="wp-block-paragraph">Qtはスタイリッシュな画面が作れることが特徴で、Qtが使用されているアプリケーションで有名なのはLinuxのデスクトップ環境であるKDEやコミュニケーションツールのSkypeあたりがあるかなと思います。</p>



<p class="wp-block-paragraph">Qtは、画面オブジェクト間の接続にシグナルとスロットという考え方を採用しています。ボタンなどを押したときにシグナルが発生して、スロットとなる関数が動作するような形で、理解できると非常に感覚的にプログラミングができるようになってきます。</p>



<p class="wp-block-paragraph">本記事の主題であるPyQtは、Qtの機能をPythonで使用できるようにしているもので、私は過去にQtを勉強したことがある流れから、PythonでのGUI開発を勉強しようとなった時にPyQtをまず学びました。本記事の以降ではPyQtについて紹介していきます。 </p>



<h3 class="wp-block-heading jinr-heading d--bold">PyQt概要</h3>



<p class="wp-block-paragraph"><span class="marker"><strong>PyQt</strong></span>は、クロスプラットフォームなGUIツールキットであり、Windows、Linux、Mac等様々なOSで動作可能なGUIプログラムを作成することができます。本記事作成時点では、PyQt6が最新バージョンです。</p>



<p class="wp-block-paragraph">PythonのGUIツールキットとして他にも有名どころとしては以下があります。</p>



<ul class="wp-block-list jinr-list">
<li><a href="https://docs.python.org/ja/3/library/tkinter.html#module-tkinter" target="_blank" rel="noreferrer noopener">tkinter</a></li>



<li><a href="https://kivy.org/" target="_blank" rel="noreferrer noopener">Kivy</a></li>



<li><a href="https://www.wxpython.org/" target="_blank" rel="noreferrer noopener">wxPython</a></li>
</ul>



<p class="wp-block-paragraph">tkinter（ティーケーインターやティーキンターと呼ばれます）はTcl/TkというGUIツールキットを扱えるようにしたPython標準のGUIツールキットです。</p>



<p class="wp-block-paragraph">Python Software FundationとJetBrainsが共同実施している<a rel="noreferrer noopener" href="https://lp.jetbrains.com/ja-jp/python-developers-survey-2021/#FrameworksLibraries" target="_blank">2021 年 Python 開発者アンケートの結果</a>の「その他フレームワークとライブラリ」という項目では、Tkinter、PyQt、Kivy、wxPythonという順番のようでPyQtは標準のtkinterと同じレベルで使われているGUIツールキットとみることができます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img fetchpriority="high" decoding="async" width="519" height="575" src="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-6.png" alt="PyQtのシェア" class="wp-image-7020" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-6.png 519w, https://tech.nkhn37.net/wp-content/uploads/2023/02/image-6-271x300.png 271w" sizes="(max-width: 519px) 100vw, 519px" /><figcaption class="wp-element-caption"><a rel="noreferrer noopener" href="https://lp.jetbrains.com/ja-jp/python-developers-survey-2021/#FrameworksLibraries" target="_blank">2021 年 Python 開発者アンケートの結果</a>より引用</figcaption></figure>
</div>


<p class="wp-block-paragraph">では、PyQtの概要について以降で簡単に見ていきましょう。</p>



<p class="wp-block-paragraph">PyQtは、Pythonライブラリとして提供されており、以下のようにpipでインストールできるようになっています。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip install pyqt6</pre>



<p class="wp-block-paragraph">PyQtは、OSSとして利用ができ、ライセンスとしては、<span class="marker"><strong>GPL（GNU General Public License）</strong></span>が採用されています。GPLはソースコードの公開する必要が出てくる可能性があるので企業で使用する場合には注意が必要です。企業での使用の場合はLGPLが採用されている後述のPySideの方が適しているかもしれません。　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　</p>



<p class="wp-block-paragraph">PyQtはGUIツールキットですが、ベースとなるGUI開発の機能の他にも非常に多くの機能が提供されています。例えば、以下のようなものです。</p>



<ul class="wp-block-list jinr-list">
<li>データベース処理（QtSQL）</li>



<li>ネットワーク（QtNetwork）</li>



<li>マルチメディア（QtMultimedia）</li>



<li>マルチスレッディング（QTimer, QThread）</li>



<li>2Dグラフィックス（Qpainter）</li>



<li>3Dグラフィックス（QtOpenGL）</li>



<li>チャート描画（QtCharts）</li>



<li>ウェブブラウジング（QtWebEngine）</li>
</ul>



<p class="wp-block-paragraph">データベースやネットワーク、グラフィックス、マルチメディア等の対応もできるようなライブラリ群が用意されています。</p>



<p class="wp-block-paragraph">イメージのために簡単なプログラムを見てみましょう。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import sys

from PyQt6 import QtCore as qtc
from PyQt6 import QtGui as qtg
from PyQt6 import QtWidgets as qtw


class MainWindow(qtw.QWidget):
    """メインウィンドウ"""

    def __init__(self):
        """コンストラクタ"""
        super().__init__()
        self.setWindowTitle("Hello, World!")
        self.resize(320, 240)

        label = qtw.QLabel(self)
        label.setText("サンプルプログラム！")

        # 画面表示
        self.show()


if __name__ == "__main__":
    app = qtw.QApplication(sys.argv)
    mw = MainWindow()
    sys.exit(app.exec())</pre>



<p class="wp-block-paragraph">【実行結果】</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="322" height="272" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-96.png" alt="PyQt6 サンプルプログラム" class="wp-image-5861" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-96.png 322w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-96-300x253.png 300w" sizes="(max-width: 322px) 100vw, 322px" /></figure>
</div>


<p class="wp-block-paragraph">上記のように非常に短いプログラムで画面表示ができるGUIプログラミングを始めることができます。</p>



<h3 class="wp-block-heading jinr-heading d--bold">PySide概要</h3>



<p class="wp-block-paragraph">Qtの機能をPythonで使用するもう一つの方法として「<span class="marker"><strong>PySide</strong></span>」というものがあります。PyQtに対応しつつ開発されており、PyQt6に対応するものとしてはPySide6があります。</p>



<p class="wp-block-paragraph">PySideとPyQtの大きな違いとしてはライセンスの違いがあります。上記でも説明した通りPyQtはGPLですが、PySideは<span class="marker"><strong>LGPL（Lesser GPL）</strong></span>です。ソースコードの公開の観点でLGPLはGPLよりも緩和されており、適切に使用すればソースコードを公開する必要はありません。企業で採用する場合にはPySideの方が適している場合がありますので検討するようにしてみてください。</p>



<p class="wp-block-paragraph">なお、PySideは、PyQtとは使用方法など非常に似ているので、PyQtを勉強していれば少しの変更で使用することができます。</p>



<p class="wp-block-paragraph">PySideも、Pythonライブラリとして提供されており、以下のようにpipでインストールできるようになっています。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip install pyside6</pre>



<p class="wp-block-paragraph">PyQtの説明で紹介した簡単なプログラムをPySide版にしてみましょう。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import sys

from PySide6 import QtCore as qtc
from PySide6 import QtGui as qtg
from PySide6 import QtWidgets as qtw


class MainWindow(qtw.QWidget):
    """メインウィンドウ"""

    def __init__(self):
        """コンストラクタ"""
        super().__init__()
        self.setWindowTitle("Hello, World!")
        self.resize(320, 240)

        label = qtw.QLabel(self)
        label.setText("サンプルプログラム！")

        # 画面表示
        self.show()


if __name__ == "__main__":
    app = qtw.QApplication(sys.argv)
    mw = MainWindow()
    sys.exit(app.exec())</pre>



<p class="wp-block-paragraph">【実行結果】</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="322" height="272" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-97.png" alt="PySide6 サンプルプログラム" class="wp-image-5862" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-97.png 322w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-97-300x253.png 300w" sizes="(max-width: 322px) 100vw, 322px" /></figure>
</div>


<p class="wp-block-paragraph">上記、PyQt版と違うのはインポートしているのがPyQt6かPySide6かの違いだけです。より複雑なプログラムの場合には、PyQtとPySideで違いが出る部分があるかと思いますが、上記のように同じような感じで使えるということをご理解いただければよいかと思います。</p>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">PythonでGUI開発ができるツールキットである<span class="marker"><strong>PyQt</strong></span>について概要を紹介しました。</p>



<p class="wp-block-paragraph">PyQtは元々はC++のGUIツールキットのQt（キュート）をPythonで使用できるようにしたものでスタイリッシュなGUIプログラム開発ができます。</p>



<p class="wp-block-paragraph">PyQtはライセンスがGPLのため企業での使用は注意が必要ですが、LGPL版のPySideもありますので使用用途に合わせて選択肢に入れて検討してもらえるとよいのかなと思います。</p>



<section class="wp-block-jinr-blocks-simplebox b--jinr-block-container"><div class="b--jinr-block b--jinr-box d--heading-box8  "><div class="a--simple-box-title d--bold">ソースコード</div><div class="c--simple-box-inner">
<p class="wp-block-paragraph">上記で紹介しているソースコードについては <a href="https://github.com/nkhn37/python-tech-sample-source/tree/main/python-libraries/pyqt/overview" target="_blank" rel="noreferrer noopener">GitHub</a> にて公開しています。参考にしていただければと思います。</p>
</div></div></section>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/pyqt-gui-programming-overview/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Disk: Enhanced  を使用したページ キャッシュ

Served from: tech.nkhn37.net @ 2026-06-14 17:48:15 by W3 Total Cache
-->