2022-01-26

python3, pygameの起動時の窓の位置を設定する

OS : Linux Mint 20 xfce
プログラム言語 : python 3.8
ライブラリ(GUI) : pygame 1.9.6

pythonでお気軽にゲームを作成することができるライブラリに pygame がある。

インベーダーゲームやブロック崩しなどのサンプルも、ダウンロードすることですぐに遊ぶことができる。
pygameに関する情報は、書籍やネットで得ることができる。現在、情報は多くはないが、今後増えていくと思われる。

実際にプログラムを作成して、実行させてみたところ、1つの疑問にあたった。

窓が一定以内の大きさで実行すると、起動時は画面の中央位置に表示される。しかし、一定以上大きく設定すると、画面の中央に表示されることはない。

 

<< 何をしたい >>

pygameを使って、画面の中央に窓を表示させたい。
または、表示する位置を指定したい。


<< 解決方法 >>

以下の方法で、起動時の窓の位置を設定できる。

1.画面の中央に窓を表示させる。

import os
# 画面中央に表示
os.environ['SDL_VIDEO_CENTERED']= '0'

 

2.画面上の窓の左上座標を 左から500px、上から200px に設定し、表示する。

import os
# 窓の位置設定
pos_x = 500
pos_y = 200
os.environ['SDL_VIDEO_WINDOW_POS']= '%i,%i' % (pos_x,pos_y)

 

参考にしたサイト
FIXES.PUB
https://www.fixes.pub/program/299654.html

#python, #pygame, #窓, #表示位置, #初期画面


2022-01-01

Linux用のガジェットを自作してみた

新年明けましておめでとうございます。 2022年元日。

OS : Linux Mint 20 xfce

プログラム言語 : python 3.8
GUI : wxpython

Linuxでは気に入ったガジェット(便利な小道具)があまり見当たらないため、自作してみることにした。

pythonのGUIでは、tkinterが有名だが、wxPythonは機能が豊富であることが特徴だ。以前、pythonのバージョン2から3に移行されたが、wxPythonはしばらく対応していなかったため、使用していなかった。

今回はデザイン性より、とにかく作成することを優先したためプログラムは、現在は公開していない。ただし、デザインおよびプログラムを改良した上で改めて、後日公開したいと考えている。

wxPythonで作成されたガジェット
ガジェットの内容

プログラム起動時は、画面の右端にほぼ隠れた状態で表示される。窓の左端をクリックすると、左にスライドし、全ての内容が表示された状態になる。再びガジェット窓の左側をクリックすると、隠れた状態にすることができる。

Linux用ガジェット(起動時の表示)
Linux用ガジェット(起動時)

 今回、表示されるデータは、日付、祭日名や行事名、天気、ニュースのヘッドライン、2ヶ月先の予定表、お気に入り格言、ToDoリストである。祭日名や行事名、予定表、格言、ToDoリストのデータは、個別にCSVとして作成した。

他に、宝くじの当選番号、特定ブログのRSS、 日の出・日の入り時刻、地域別のニュース、株の情報などを表示させることも可能だ。

wxPythonがうまく機能するかどうかは、ディスクトップの設定に依存する。このため、同Mint系のMATEやKDEでは、同じプログラムで正常に動作しない可能性がある。また、同xfceでも、設定次第では表示位置がズレてしまう。


#ガジェット, #python, #wxpython, #天気, #ニュース, #予定表