2021-02-27

Fedora 34 プレリリース版を試す

Fedora は Red Hat 社が支援するコミュニティ Fedora Project で開発されている Linux ディストリビューションで、最新の技術を積極的に取り込むことで知られています。また、Fedora の開発成果が後にリリースされる Red Hat Enterprise Linux, RHEL に取り込まれています。Fedora は、おおむね春と秋の年二回の頻度で新しい版がリリースされています。

GNOME 40 の誘惑

2011 年に公開された GNOME 3 は、10 年近くマイナーバージョンアップを重ねて Linux のデスクトップ環境として使い続けられてきました。そして、いよいよ今年 3 月末に次期 GNOME 40 がリリースされます。次期からバージョン番号の規則(バージョンスキーム)が変更され、現行の 3.38 から 40 になり、今後は 40, 41, 42, ... と(マイナー)バージョンアップを重ねるということです [1]

今回は、GNOME 2 → 3 へバージョンアップした時のような大きなインターフェイスの変更はありません。小さい変更はあるものの、GNOME シェルを使った現行のユーザーインターフェイスの基本的なスタイルは継承されていきます [2]

たとえ変更は大きくなくとも、早く GNOME 40 を触ってみたくて Fedora Rawhide(Fedora の開発版)を仮想マシンにインストールして GNOME 40 のリリース前の版の使い心地を評価していました。

これは、4 月末にリリースされる予定の次期 Fedora 34 では、GNOME 40 のリリース直後であっても、大きな問題が発生しない限り GNOME 40 が採用されていることがアナウンスされていたからです [3]。その GNOME 40 が、Fedora Rawhide でベータ版になったので、テスト機にインストールしてあった Fedora 33 を、リリース前の Fedora 34 へアップグレードしてみました。

アップグレード

まだ Fedora 34 のベータ版のリリース前ですが、2 月 10 日に Fedora Rawhide から Fedora 34 用ブランチを作成するとアナウンスされていますので [4]、Fedora 33 からプレリリース版の Fedora 34 へのアップグレードは可能です。アップグレードは下記の手順に沿って実施しました。

  1. dnf update --refresh
  2. dnf install dnf-plugin-system-upgrade
  3. dnf system-upgrade download --releasever=34
  4. dnf system-upgrade reboot

今回のテスト機

今回、Fedora 34 へアップグレードしたテスト機は、ASUS TransBook T100HA という2 in 1 タイプの古い PC です[右図]。買った当時はタッチスクリーンを Linux で使うのに苦労しましたが [5]、最近ではフツーにインストールするだけで、画面回転を含めて問題なく使用できるようになりました。

オープンソースのソフトウェア開発に関わる方々の努力に感謝しかありません。

Linux はオープンソースのプロジェクトで無保証です。タダで利用したいのであれば自己責任で利用するのが原則です。

ただ、関連するコミュニティが数多くあるので、自分が関心のあるプロジェクトへ参加して情報交換をすることができます。対応するデバイスドライバがない場合、関連するプロジェクトを探して参加するか、自ら立ち上げて開発する。それができない場合は待つしかありません。開発のモチベーションは多くの場合、ユーザーの需要に比例するので、いつまで待っても Linux 対応のデバイスドライバが出てこない場合だってあります。😅

このテスト機は、画面解像度が 1280 x 800 と、いまどきの PC の画面に比べれば低解像です。こういった画面解像度が低い場合に GNOME は使い物になるのかを意識しました。

RAM は 4GB、ストレージは 64GM の eMMC で、Fedora 33 をクリーンインストールしたものをアップグレードしています。

パーティションは以下のようになっています。ルート領域 / 以下のファイルシステムは btrfs、スワップ領域 (zram0) は、RAM 上に動的に確保される圧縮された領域です。

[bitwalk@localhost ~]$ lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk1      179:0    0 58.2G  0 disk 
├─mmcblk1p1  179:1    0  600M  0 part /boot/efi
├─mmcblk1p2  179:2    0    1G  0 part /boot
└─mmcblk1p3  179:3    0 56.7G  0 part /home
mmcblk1boot0 179:8    0    4M  1 disk 
mmcblk1boot1 179:16   0    4M  1 disk 
zram0        252:0    0  3.7G  0 disk [SWAP]
[bitwalk@localhost ~]$ df -Th
ファイルシス   タイプ   サイズ  使用  残り 使用% マウント位置
devtmpfs       devtmpfs   1.9G     0  1.9G    0% /dev
tmpfs          tmpfs      1.9G     0  1.9G    0% /dev/shm
tmpfs          tmpfs      764M  2.4M  762M    1% /run
/dev/mmcblk1p3 btrfs       57G  8.3G   48G   15% /
tmpfs          tmpfs      1.9G  6.9M  1.9G    1% /tmp
/dev/mmcblk1p3 btrfs       57G  8.3G   48G   15% /home
/dev/mmcblk1p2 ext4       976M  240M  669M   27% /boot
/dev/mmcblk1p1 vfat       599M   21M  579M    4% /boot/efi
tmpfs          tmpfs      382M  116K  382M    1% /run/user/1000
[bitwalk@localhost ~]$ 

GNOME の縦画面

解像度の低い画面を縦長にして、アイコンなどのサイズが適当な大きさで表示されるかを確認しました。

 

画面の操作のスクリーンショットです。ダッシュやアプリ一覧に表示されるアイコンの大きさは、いい感じです。(GNOME 40 アルファリリースの時は画面サイズに依ってはアイコンのサイズが小さくなったりしていました。)

 

ダッシュの向きが、縦向きから横向きへ変更になったことは、(タブレットでよく使う)縦長の画面の場合には、却って使いやすくなったように思います。

下図は、「地図」で東京駅周辺を表示した例と、Microsoft 社のサイトで公開されている PowerPoint のサンプルを LibreOffice Impress で読み込んだ例です。PowerPoint のサンプルは、丁度良い縦長のサンプルが見当たらなかったので横長のサンプルを使っています」。

 

メモリの使用状況は、LibreOffice を起動してもスワップが 0 という状況です。タッチスクリーンを前提として、特定の用途に絞れば、いくつものアプリのウィンドウを同時に開くことはなくなり、4GB 程度のメモリでも案外使えるのかもしれません。

PowerPoint のサンプルを LibreOffice Impress で読み込んだ時のメモリ使用状況

参考サイト

  1. GNOMEが9年続いた3系にお別れ、次期版は「GNOME 40」に | OSDN Magazine [2020-09-18]
  2. bitWalk's: GNOME 40 がやってくる [2020-12-20]
  3. Changes/Gnome40 - Fedora Project Wiki
  4. Fedora 34 being branched from rawhide [2021-02-09]
  5. bitWalk's: ASUS TransBook T100HA と Ubuntu 17.10 [2017-11-12]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ Linuxへ
にほんブログ村

2021-02-23

AlmaLinux 8.3 RC 公開

AlmaLinux は、2020 年末に RHEL 互換の Linux ディストロ、CentOS の開発打ち切るというアナウンスを受けて、米 CloudLinux 社が立ち上げたオープンソースのプロジェクトです。CentOS に代わるディストロという位置付けで、RHEL と 1:1 でバイナリ互換のあるフォークを目指しています。

2 月 1 日に RHEL 8.3 に対応する AlmaLinux 8.3 のベータ版が公開されましたが、2 月 22 日付で RC(リリース候補)が公開されました。

GNOME Boxes にインストールした AlmaLinux 8.3 Beta を RC に更新したので、そのデスクトップ画面のスクリーンショットを掲載しました。

AlmaLinux 8.3 RC のデスクトップ画面
画面ロック状態のスクリーン

参考サイトに、AlmaLinux 関連サイトをまとめました。

参考サイト

  1. AlmaLinux - Forever-Free Enterprise-Grade Operating System
  2. AlmaLinux Wiki | AlmaLinux Wiki
  3. AlmaLinux - Github
  4. Index of /almalinux/8/isos/x86_64/
  5. AlmaLinux Mirrors

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ Linuxへ
にほんブログ村

GNOME Shell 40 を触ってみた (3)

GNOME (/ɡəˈnoʊm, ˈnoʊm/) は、Unix ライクの OS のためのフリーでオープンソースのデスクトップ環境です。現行の GNOME 3 は、Fedora、Ubuntu、Red Hat Enterprise Linux、Pop!_OS など多くの Linux ディストリビューションでデフォルトのデスクトップ環境になっています。

Wikipedia より引用、翻訳、編集

現行の GNOME 3 がリリースされたのは 2011 年のことです。このリリースではデスクトップインターフェイスが GNOME パネルから GNOME Shell へ一新されて賛否を呼びましたが、開発は一貫して続けられました。そして、10 年後の今年 2021 年 3 月末に、次のメジャーバージョン GNOME 40 のリリースが予定されています [1][2]。今度のリリースは今までの開発の延長上にあり、大きな変更はなさそうです。

今回使用した OS は下記の通りです。

Fedora Rawhide (Workstation Edition) x86_64

Fedora Rawhide の GNOME 40 がベータになりました。デフォルトで水平に表示されるようになった「ダッシュ」に表示されるアイコンが適切なサイズで表示されるようになりました。

GNOME40 のオーバービュー

GNOME 40 については、GNOME Shell を中心にウォッチしていますが、GNOME の関連アプリも 40 にバージョンアップしてきていますので、GNOME 40 の全体が判るように情報をまとめ始めます。

参考サイト

  1. Forty - GNOME Wiki!
  2. bitWalk's: GNOME 40 がやってくる [2020-12-20]
  3. bitWalk's: GNOME Shell 40 を触ってみた [2021-01-23]
  4. bitWalk's: GNOME Shell 40 を触ってみた (2) [2021-02-11]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ Linuxへ
にほんブログ村

2021-02-22

今度の Ubuntu 21.04 (Hirsute Hippo)

Ubuntu (/ˈʊbʊntuː/) は、Debian をベースにした Linux ディストリビューションであり、主にフリーおよびオープンソースのソフトウェアで構成されています。Ubuntu は正式には デスクトップ、サーバおよび IoT 向けの 3 つのエディションでリリースされています。Ubuntu 17.10 以降、デフォルトのデスクトップは GNOME です。

Wikipedia より引用・翻訳、編集

次期 Ubuntu 21.04 'Hirsute Hippo'(毛深いカバ)では、どのような新しい機能が盛り込まれるのか調べました。

リリーススケジュールと新しい機能

最終リリースまでのスケジュールの概略は以下の通りです。

  • 2021-02-25  Feature Freeze
    • この時点で新機能やパッケージ、API の導入を止め、開発リリースのバグ修正に専念します。
  • 2021-04-01  ベータ版
    • ベータ版とは、開発者が意図したすべての機能を持ちながらも、残っているバグを取り除くためにテストを受ける必要があるリリースのことです。
  • 2021-04-15  Release Candidate(リリース候補)
    • この週はリリース候補で重要なバグを取り除き、できるだけ多くのテストを行うために使われます。
  • 2021-04-22  Final Release(リリース)

このスケジュールに記載されている、新規にデフォルトになるバージョン、機能は下記のとおりです。

  • python-3.9 as default
  • golang-1.16 by default
  • glibc 2.33 & gcc-11 as available
  • Wayland by default for Ubuntu desktop
  • llvm-12 by default

えっ、これだけですか?😮

いやいや、きっとこれらは主要な変更だけなのでしょう。

Wayland 再び

Ubuntu 17.10 で一旦デフォルトになった Wayland でしたが、18.04 LTS への採用は見送られました。今回、ふたたび Wayland がデフォルトのディスプレイサーバに設定されます。Walyand + Nvidia のグラフィックボードではまだ不具合があるようで、X.org のサーバを使う必要があるとのことです。ディスプレイサーバはログイン画面で切り替えることができます(下図)。

X.org に代わって Wayland がデフォルトに [Ubuntu 21.04 (Hirsute Hippo) Daily Build]

ホームディレクトリのパーミッション変更

Ubuntu 21.04 を新機にインストールすると、ホームディレクトリのパーミッションは、従来の 755 ではなく 750 になります。

ホームディレクトリのパーミッション [Ubuntu 21.04 (Hirsute Hippo) Daily Build]

Ubuntu ではホームディレクトリのパーミッションが緩いということをあらためて知りました。RHEL / Fedora 系ではデフォルトで 700 です。

GNOME 40 は見送り

Ubuntu 21.04 では、デスクトップ環境に GTK4 / GNOME 40 を採用することは見送りになるようです。

ちなみに、同じ時期にリリースされる Fedora 34 では GTK4 / GNOME 40 が導入される予定です。

Fedora Rawhide の GNOME 40

雑感

探し方が悪いのでしょうか、(情報元が判る)Ubuntu の次期リリース予定の情報を集めるのに苦労します。Fedora プロジェクトのように変更予定一覧 [1] が一次情報として利用できると便利なのになあといつも思います。

参考サイト

  1. Releases/34/ChangeSet - Fedora Project Wiki

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ Linuxへ
にほんブログ村

2021-02-21

CentOS から AlmaLinux へ移行

CentOS はコミュニティーベースのプロジェクトで、RHEL のソースコードを元に再構築した無料のディストリビューションです。昨年の 12 月 8 日、CentOS プロジェクトは、現在の RHEL リリースより先行する CentOS Stream へとプロジェクトの活動の焦点を移し、RHEL 8 のリビルドである CentOS Linux 8 のサポートを 2021 年末に終了するという発表をしました [1]

このニュースを知って、家庭内 LAN で稼働している CentOS サーバーを CentOS Stream へ移行したり CentOS へ戻したりとあたふたしましたが、結局、Red Hat Developer Subscription for Individuals を割り当てて RHEL 8.3 をインストールしました。

一方、CentOS の開発方針変更のニュースを受けて AlmaLinux のプロジェクトが立ち上がり、現行の RHEL 8.3 と互換 OS である AlmaLinux 8.3 のベータ版が公開されました [2]。また、CentOS から AlmaLinux へ移行するツールが、GPLv3 のもとで Github に公開されました(下記)。

そこで、GNOME Boxes の仮想マシンに CentOS 8.3 をインストールして、上記のツールを使って AlmaLinux へ移行してみました。

CentOS 8.3 のデスクトップ

CentOS のバージョンは下記のように確認できます。

[bitwalk@centos-pc ~]$ cat /etc/redhat-release
CentOS Linux release 8.3.2011
[bitwalk@centos-pc ~]$ 

移行に際し、念の為、dnf update コマンドで CentOS を最新の状態にしておきます。

almalinux-deploy.sh の実行

AlmaLinux へ移行するツール almalinux-deploy.sh(Bash シェルのスクリプト)をダウンロードします。

[bitwalk@centos-pc ~]$ curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  9251  100  9251    0     0  26814      0 --:--:-- --:--:-- --:--:-- 26814
[bitwalk@centos-pc ~]

管理者権限でダウンロードした移行ツール almalinux-deploy.sh を実行します。

[bitwalk@centos-pc ~]$ sudo bash almalinux-deploy.sh
[sudo] bitwalk のパスワード:
Check root privileges                                                 OK
Check centos-8.x86_64 is supported                                    OK
Download RPM-GPG-KEY-AlmaLinux                                        OK
Import RPM-GPG-KEY-AlmaLinux to RPM DB                                OK
Download almalinux-release package                                    OK
Verify almalinux-release package                                      OK
Remove centos-linux-release package                                   OK
Remove centos-gpg-keys package                                        OK
Remove centos-linux-repos package                                     OK
Remove libreport-plugin-rhtsupport package                            OK
Verifying...                          ################################# [100%]
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:almalinux-release-8.3-2.el8      ################################# [100%]
Install almalinux-release package                                     OK
Remove centos-backgrounds package                                     OK
Install almalinux-backgrounds package                                 OK
Remove centos-indexhtml package                                       OK
Install almalinux-indexhtml package                                   OK
メタデータの期限切れの最終確認: 0:00:19 時間前の 2021年02月21日 19時51分06秒 に実施しました。
依存関係が解決しました。
================================================================================
 パッケージ                      Arch   バージョン              Repo      サイズ
================================================================================
アップグレード:
 anaconda-core                   x86_64 33.16.3.26-2.el8_3.alma appstream 2.4 M
 anaconda-gui                    x86_64 33.16.3.26-2.el8_3.alma appstream 557 k
    :
    :
    :
 xdg-desktop-portal              x86_64 1.6.0-1.el8             appstream 406 k
 xorg-x11-drv-intel              x86_64 2.99.917-38.20180618.el8
                                                                appstream 701 k

トランザクションの概要
================================================================================
インストール     4 パッケージ
アップグレード  87 パッケージ
ダウングレード  41 パッケージ

ダウンロードサイズの合計: 1.2 G
パッケージのダウンロード:
(1/1363): iproute-5.3.0-1.el8.x86_64.rpm        806 kB/s | 658 kB     00:00    
(2/1363): iwl100-firmware-39.31.5.1-99.el8.1.no 2.3 MB/s | 168 kB     00:00    
    :
    :
    :
(1362/1363): slirp4netns-1.1.4-2.module_el8.3.0  39 kB/s |  50 kB     00:01    
(1363/1363): qemu-kvm-core-4.2.0-34.module_el8. 803 kB/s | 3.4 MB     00:04    
--------------------------------------------------------------------------------
合計                                            3.0 MB/s | 1.2 GB     06:49     
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  scriptletの実行中: filesystem-3.8-3.el8.x86_64                            1/1 
  scriptletの実行中: kmod-kvdo-6.2.3.114-74.el8.x86_64                      1/1 
  準備             :                                                        1/1 
  scriptletの実行中: libgcc-8.3.1-5.1.el8.alma.x86_64                       1/1 
  アップグレード   : libgcc-8.3.1-5.1.el8.alma.x86_64                    1/2722 
  scriptletの実行中: libgcc-8.3.1-5.1.el8.alma.x86_64                    1/2722 
  再インストール   : fontpackages-filesystem-1.44-22.el8.noarch          2/2722 
  再インストール   : google-noto-fonts-common-20161022-7.el8.1.noar      3/2722 
    :
    :
    :
  yum-4.2.23-4.el8.noarch                                                       
  zenity-3.28.1-1.el8.x86_64                                                    
  zip-3.0-23.el8.x86_64                                                         
  zlib-1.2.11-16.el8_2.x86_64                                                   

完了しました!
Run dnf distro-sync -y                                                OK

Migration to AlmaLinux is completed, please reboot the system
[bitwalk@centos-pc ~]$ 

しばらく待つと、パッケージの再インストール(一部アップグレードを含む)が終了しますので、再起動します。

[bitwalk@centos-pc ~]$ sudo reboot
[sudo] bitwalk のパスワード:

再起動時の grub メニューでは、デフォルトで起動するカーネルが AlmaLinux のものになっていることを確認できます。

再起動時の grub メニュー

無事起動し、ログインすることができました。

AlmaLinux のデスクトップ画面

OS 名およびバージョンを確認すると、ちゃんと AlmaLinux に変わっています。

[bitwalk@centos-pc ~]$ cat /etc/redhat-release
AlmaLinux release 8.3 Beta (Purple Manul)
[bitwalk@centos-pc ~]$ 

以上、スクリプトを実行するだけで、CentOS から AlmaLinux へ簡単に移行できることを確認できました。本ブログのためのログを取りながらでしたが、移行作業は正味一時間半ぐらいしか掛かりませんでした。

参考サイト

  1. CentOS Project shifts focus to CentOS Stream – Blog.CentOS.org [2020-12-08]
  2. Introducing AlmaLinux Beta: A Community-Driven Replacement for CentOS - AlmaLinux - Forever-Free Enterprise-Grade Operating System [2021-02-01]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ Linuxへ
にほんブログ村

2021-02-18

【備忘録】SQLite のデータベースでバイナリデータを扱う

SQLite (/ˌɛsˌkjuːˌɛlˈaɪt/, /ˈsiːkwəˌlaɪt/) は、パブリックドメインの軽量なリレーショナルデータベース管理システム (RDBMS) です。他の多くのデータベース管理システムとは対照的に、サーバとしてではなくアプリケーションに組み込んで利用するデータベースです。 一般的な RDBMS と違い、API は単純にライブラリを呼び出すだけであり、データの保存に単一のファイルを使用することが特徴でです。

Wikipedia より引用、編集

SQLite のデータベースでバイナリーデータを扱うケースを、Qt for Python (Pyside2) の GUI で、PDF ファイルを選んで読み込んだ内容をデータベースに格納し、それを外部プログラムで開く、というサンプルを作って確認しましたので、備忘録にしました。

本ブログ記事では下記の OS 環境で動作確認をしています。

Fedora 33 (Workstation Edition) x86_64

以下に、サンプル sqlite_binary_test.py を示しました。

sqlite_binary_test.py

サンプルを実行して、メニューから File(F) » Open をクリックします。

sqlite_binary_test.py の実行例 (1)

SQLite のデータベースファイル self.dbname (= 'test.sqlite') が存在しなければ、カレントディレクトリに作成します。

    def initDB(self):
        init_query = [
            'CREATE TABLE file (name_file TEXT UNIQUE, content NONE)',
        ]

        con = sqlite3.connect(self.dbname)
        cur = con.cursor()

        for query in init_query:
            cur.execute(query)

        con.commit()
        con.close()

データベースに書き込む PDF ファイルを選択します。

sqlite_binary_test.py の実行例 (2)

ファイルをバイナリモードで読み込んでパスを除いたファイル名と、読み込んだバイナリをデータベースに書き込みます。

    def showDialog(self, combo: QComboBox):
        dialog = QFileDialog()
        dialog.setNameFilters(['PDF files (*.pdf)'])
        if dialog.exec_():
            fname = dialog.selectedFiles()[0]
            name_file = os.path.basename(fname)
            f = open(fname, 'rb')
            with f:
                content = f.read()

                con = sqlite3.connect(self.dbname)
                cur = con.cursor()
                cur.execute("INSERT INTO file VALUES(?, ?);", [name_file, content])
                con.commit()
                con.close()

                self.get_filelist(combo)

コンボボックスに読み込んだファイルが追加されるので、 Open ボタンをクリックします。

sqlite_binary_test.py の実行例 (3)

コンボボックスに表示されているファイル名と一致するレコードのバイナリの内容を読み込んで、一時保存領域にファイル名で保存して、デフォルトのアプリケーションでファイルを開きます。

    def on_click_open(self, combo: QComboBox):
        name_file = combo.currentText()
        if len(name_file) == 0:
            return

        out_file = os.path.join(tempfile.gettempdir(), name_file)

        con = sqlite3.connect(self.dbname)
        cur = con.cursor()
        cur.execute("SELECT content FROM file WHERE name_file = ?;", [name_file])
        out = cur.fetchall()
        con.close()

        with open(out_file, 'wb') as f:
            f.write(out[0][0])

        if platform.system() == 'Linux':
            subprocess.Popen(['xdg-open', out_file])
        elif platform.system() == 'Darwin':
            subprocess.Popen(['open', out_file])
        else:
            os.startfile(out_file)

GNOME のドキュメントビューア Evince が起動し、PDF の内容が表示されます。

Evince による PDF ファイルの表示

動作確認をする目的で作成したサンプルであるため、無駄な重複が残っていますしエラー時の例外処理などもしていません。なお、今回扱った PDF ファイルは圧縮されているので、Python 側で更に圧縮する処理は加えていませんが、扱うバイナリファイルの内容により検討する必要があります。

参考サイト

  1. SQLite Home Page
  2. SQLiteで利用可能なデータ型 | SQLite入門

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村

2021-02-16

【備忘録】PySide2 の QProcess

Qt for Python (PySide2) は、Qt の Python バインディングを提供するプロジェクトで、オープンソース版の Qt と同じく、LGPLv3 / GPLv3Qt commercial license(商用ライセンス)が適用されています。最近はクロスプラットフォーム用の GUI ライブラリとして使うことが多くなりました。

本ブログ記事では下記の OS 環境で動作確認をしています。

Fedora 33 (Workstation Edition) x86_64

古い記事ですが、参考サイト [1]PyQt の QProcess を使ったサンプルを見つけました。実は他のことを検索していたのですが、QProcess を使うケースも絶対あると思ったので、PySide2 用に書き直して動くかことを確認できたので、備忘録としました。

以下に GUI などを少し書き直したサンプルを示しました。この例は外部コマンド ping を実行して、その出力を QTextEdit ウィジェット上に表示するというものです。

qt_process.py
qt_process.py の実行例

参考サイト

  1. python - RealTime output from a subprogram to stdout of a pyQT Widget - Stack Overflow [2014-02-27]
  2. QProcess — Qt for Python

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村