プロが教えるわが家の防犯対策術!

Python初心者です。Pythonの標準ライブラリ、tkinterなどを使ってGUIを作ろうとしています。Google Colaboで、このライブラリは使えますか。また、Google ColaboでGUI開発を行うには、どういったライブラリを使えばよいでしょうか。

よろしくお願い申し上げます。

A 回答 (2件)

良かった。

先鞭が付いた。

結果、実の事を言うと、#1氏はこう言ってるが、

> Colabは確かにpython初心者がpythonを学ぶのに便利な環境ですが

実際は、「Colabはpython初心者がpythonを学ぶのに適さない」って事なんだよ。言外に#1氏もそう言ってる。
何故なら貴方のように「Colabを使えばGUIを作れる」って勘違いする人を生み出すから、だ。
プログラミングの仕組みも分からずに?ローカル環境とWeb環境の違いも分からず?Web環境がローカル環境に「アクセス」出来るのがどれだけローカル環境(つまり貴方が使ってるPCだ)に取って「危険」な事になるかも分からず(ColabでGUIが作れる、ってのはそういう事だ)?
ただ念仏のように「簡単だ」って言ってるだけで、実際のトコ「プログラミングにまつわるアレコレ」を学ぶ事から遠ざけている。
単にGoogle Colabは初心者が使うのは「ダメ」なんだよ。
大体、Cobalをプログラミング初心者に薦めるヤツは絶対にトラブルが起きても「助けない」。
そして最悪な事に、最近Google Colabは「Q&Aコーナー」さえ撤去した。過去はスタックオーバーフローへのQ&Aコーナーへと誘導してたのに今はない。
質問コーナーを持ってない、ってぇ事は「初心者向けじゃない」と同義だ。誰か無責任なヤツが初心者に「Google Colabを使えば簡単にプログラミングが学べる!」とか言っても、初心者が疑問に思ってる事を「質問さえ出来やしない」んだ。
ホント、プログラミング初心者にGoogle Colabを薦めるような無責任でバカな奴らは死んだ方がいい、とまで思ってる。そもそも「Google Colabに関する質問」を教えて!gooに質問する事「さえ」間違ってるんだよ。どうして他社サービスへの質問を全く関係ないサイトへ投稿する事になるんだ(そして「教えて!goo」には実際、「泣きついてきた」質問が多い・・・そもそも、どうして「初心者に易しい」のにこんな風になってるんだ?)。
それだけ、「Google Colabを無責任に初心者に薦めた人」はホント、責任を取ってない、って事だ。連中が言ってる事は「口だけ」なんだよ。
貴方は単なる「無責任な奴らの被害者」だ。
結果、#1氏が言ってる通り、

> 普通に pythonをインストールしてローカルで開発しましょう。

ってのが「正しい」んだ。
誰のせいだか知らんが「貴方は入口を間違えた」。
そして何人もの人間が「入口を間違えさせられている」。
どこの誰だか知らんが「無責任な」奴らによって、だ。

さて、貴方が「正しい道」に入ったとして、だ。
まぁ、「GUIを作る」っつっても事実上、「んな事はやらんでエエ」。
実際、#1氏が言ってる通り、

> tkinter は癖がありすぎるし、まともなドキュメントが無いので
> 私は推奨しません。

ってのは正しい。大賛成だ。
っつーか、ベースになってるtcl/tkは「簡単にGUIを作れる」のは作れる、んだけど、かなり制限されている。要は「自由度が低い」。あと、見た目が汚いんだよね。汚い、って言ってアレなら「浮いている」。
WIndowsならWindows、MacならMac、LinuxならLinuxと、「生成されるウィンドウはOSによりデザインが決まってる(厳密に言うとLinuxは違うが)」ってのがフツーなんだけど、tcl/tkで作ったウィンドウってのはそのどれとも「調和しない」んだ(笑)。こういうのを「ルックアンドフィールが違う」と言うんだけど。
結果、tkinterもtcl/tkを受け継いでる以上、そういう性質がある・・・過去よりだいぶマシにはなったけどね。

それはさておき。「GUIを作る」って事をせんでエエ、ってのはどういう事か。
世の中、GUIビルダーってモノがあって、ウィンドウを生成してマウスでペタペタと「部品」(ウィジェット)を貼ってけばいい、ってツールがあんのね。
例えばtkinter対象だとこういうブツがある。

PAGE:
https://page.sourceforge.net

これに対してはブログ程度だけど、以下のような解説ページがあるこたぁある。「基本的な使い方を学ぶ」程度なら充分だろ(あとは、GUIなんで「試行錯誤」で何とかなんだろ・・・多分)。

Python TkinterのGUIデザイナーPAGEの使い方:
https://prtn-life.com/blog/tkinter-page

【Python tkinter】GUI作成ソフト「PAGE」使ってみた :
https://note.com/kochatece/n/nf23ddf76d30e

似たようなページは検索すれば割に引っかかる筈だ。

ただ、PAGEにも弱点がある。平たく言うと「かなりバギー」なんだよな。良く落ちる(笑)。
これ、何でかっつーとPAGE自体が「結構新しい」んだわ。tcl/tkの歴史は長いんだけど、一方、Pythonのtkinter(つまりtcl/tkのラッパー)は、「コマンドでGUIを書く」のが同種のライブラリに比べると簡単な為、お陰でこのテの「GUIビルダーの登場」を遅らせちまったわけ。「テキストでGUIプログラムを書いても簡単じゃん?」って事で。
だから、tcl/tkが古くても、GUIビルダーは「出てきて間もない」、結果、バグっぽい挙動だらけ、って事になる。

さて、#1氏はfletと言うのを薦めてる。それは僕はよう知らんので、別のを薦めてみよう。とは言ってもある意味「GUI生成ライブラリ」のデファクトスタンダードの一つ、だ。その名をwxPythonと言う。

wxPython:
https://wxpython.org

wxPythonは今度は「wxWidgets」と言うGUIツールのラッパーだ。そしてtcl/tkより自由度は高い。反面、同種のライブラリQtよか自由度は低いだろう。

Qt(Python向けのラッパーではPyQtとかPySideがある):
https://www.qt.io/ja-jp/

要はwxPythonは「中庸」だ、って事だ。
もちろんこれを紹介した理由は「GUIコードを書く為」じゃない。理由は2つある。

1. wxWidgetsのラッパーは色んな言語で採用している。結果、今後Pythonから別言語に移動しても同様にwxWidgetsを使える可能性が高い。
2. GUIビルダーがある。

ここでは特に2を強調しておく。「自分でGUIのコードを書く」必要がない、んだ。

wxGlade:
https://wxglade.sourceforge.net/

これの解説ページは例えば以下のようなモノがある。

wxWidgets でクロスプラットフォーム GUIアプリを作ろう:
http://0xcc.net/pub/uu-2004-08/

かなり古い記事で、wxGlade自体の見た目は変わってるけど、「基本的な使い方」は一緒だ。この記事だとC++での使い方を書いてるけど、「生成するコード」をPythonにすればいい話。それで簡単にGUIは作れる。
また、同種の「解説ページ」も結果多い。wxWidgets自体がメジャーな「GUI生成ライブラリ」だから、だな。従って「wxGladeの使い方」で迷う事はそんなにないだろう。

そんなトコかな。
以上。
    • good
    • 0
この回答へのお礼

詳しい解説、ありがとうございます。wxPython、試してみたいと思います。Local環境のPythonもインストールしました。colabは使わずにやっていくたいと思います。

お礼日時:2024/03/20 04:41

Colabは確かにpython初心者がpythonを学ぶのに便利な環境ですが、本来科学技術計算用のノートを作るためのWebアプリケーションであって、開発環境ではないです。

Webアプリケーション内でデスクトップアプリを動かすのは原理的に無理。
普通に pythonをインストールしてローカルで開発しましょう。

蛇足、tkinter は癖がありすぎるし、まともなドキュメントが無いので
私は推奨しません。flet とかがお勧め。
    • good
    • 0
この回答へのお礼

ありがとうございます。参考になります。flet、調べてみます。

お礼日時:2024/02/29 10:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A