2026-01-01から1ヶ月間の記事一覧
はじめに 今回は、「日付の切り替え」機能を追加しました。 1. 実装のポイント データベース構造の拡張し、日付ごとにスケジュールを管理するため、SQLiteのテーブル定義に date カラムを追加しました。これにより、特定の日のデータだけを抽出して表示する…
はじめに これまでの実装では、Canvas(描画エリア)のサイズを固定値で管理していました。しかし、実際にアプリを使っていると「もっと広い画面で詳細を確認したい」「ウィンドウを小さくして隅に置いておきたい」といったニーズが出てきます。 固定サイズ…
はじめに 前回記事の「その4:ポップアップWindowに登録済スケジュールを表示」では、ttk.Treeview を使って登録されたデータをリスト形式で確認できる機能を実装しました。 しかし、リストを表示できるだけでは「入力を間違えた」「予定が変わった」といっ…
はじめに 前回記事の「その3:スケジュールタイトルの固定」では、タイムラインをスクロールしても「予定」と「実績」の見出しが常に表示されるようUIを改善しました。 アプリとして形になってくると、次に欲しくなるのが「今、何が登録されているのかをテキ…
はじめに 前回記事の「その2:プロトタイプの作成」では、Canvasウィジェットを使って24時間のタイムラインを描画し、SQLiteでデータを永続化する基本機能を実装しました。 しかし、実際にプロトタイプを使ってみると一つ気になる点が出てきました。それは、…
はじめに 前回記事の「その1:仕様の検討」では、どのようなツールを作るのか、その全体像を整理しました。 今回は、いよいよPythonとtkinterを使って、実際に動作するプロトタイプを作成します。 「24時間のタイムラインをどう描画するか」「SQLiteでのデー…
はじめに 「今日の予定を立てたけれど、結局何に時間を使ったのか分からない……」そんな経験はありませんか? 時間の使い方を改善する第一歩は、「予定」と「実績」を並べて可視化することです。市販のツールやカレンダーアプリも便利ですが、自分のライフス…
はじめに PythonのTkinterを使って、カレンダーアプリを開発していくシリーズの第11回目です。今回は、以下の機能を追加しました。 メモがある日の背景色を変更(可視化) メモの削除機能の追加 1. 今回の主な更新ポイント 1. メモの有無をカレンダーに反映 …
はじめに 前回の記事までは、メモの入力情報の読込みと保存する機能を追加できました。 今回は、この「カレンダー」と「メモ」をと紐付け、日付を選ぶことで対応するメモが切り替わる挙動を実装しました。 1. 今回のアップデート 今回の主な変更点は、「イベ…
はじめに 前回は、カレンダーで選択した日付に合わせてメモを入力し、SQLiteデータベースへ保存する機能を実装しました。しかし、せっかく保存したメモも、アプリを再起動したり別の日付に切り替えたりした際に表示されなければ意味がありません。 今回は、…
はじめに 前回の記事では、SQLiteを使用してメモを保存するためのデータベース構造を定義しました。準備は整いましたが、今のままでは「Save」ボタンを押してもコンソールにログが出るだけで、実際のデータは保存されません。 今回は、ユーザーが入力したテ…
はじめに これまでは日付を確認するだけでしたが、「その日に何を考えたか、何をしたか」を記録できるようにノート機能(永続化)を追加していきます。 単なるテキスト保存ではなく、後々の汎用性を考えてMarkdown形式(.md)としてデータベースに格納する仕…
はじめに tkinterを利用したカレンダーWidgetの作成(その6: カレンダーの日付にボタンクリックのアクション機能の追加)の中でも触れた d=date_obj.date() という記述は、PythonのGUIプログラミングにおいて非常に重要な「変数のキャプチャ(固定)」というテ…
はじめに PythonとTkinterを使った自作カレンダーアプリ開発シリーズの第6回目です。 これまでの記事で、カレンダーの横にノート用のエリアを確保し、アプリらしいレイアウトを整えました。 現状ではカレンダーの日付をクリックしても何も起きません。将来的…
はじめに 前回の記事「tkinterを利用したカレンダーWidgetの作成(その4: 前月・次月切替の実装)」では、カレンダーの月を切り替える機能を実装しました。 今回は、カレンダーとしての実用性をさらに高めるため、画面の右側にメモ(ノート)を記入できるエリ…
はじめに 前回の記事(その3)では、日本の祝日表示に対応したカレンダーのレイアウトを完成させました。しかし、表示されるのは実行時の「現在の月」のみでした。 今回は、UI上部に配置していた「前月」および「次月」ボタンに実際の機能を実装し、アプリケ…
はじめに Pythonとtkinterを使った自作カレンダー作成シリーズの第3回目です。 これまでのフェーズでは、GUIのレイアウト作成をしてきましたが、カレンダーとして機能するためには、月ごとの日付を正しく並べ、さらに日曜・土曜・祝日の色分けを行う必要があ…
はじめに 前回は、Pythonのtkinterライブラリを使用して、カレンダーアプリの土台となるメインウィンドウを表示させるところまでを解説しました。 今回は、カレンダーとしての実用性を高めるための拡張を行います。具体的には、「現在どの月を表示しているか…
はじめに GUIアプリを作成していると、日付を選択したり表示したりするための「カレンダーUI」が必要になる場面がよくあります。ライブラリを導入するのも手ですが、自分の好きなようにカスタマイズできる自作のWidgetがあると非常に便利です。 そこで今回か…
はじめに Nextcloud 32へのバージョンアップ (その1: 方針の検討)から始まり、これまで14回にわたってUbuntu 24.04上のDocker環境におけるNextcloudのセットアップ手順を取り上げてきました。 今回のアップデート作業では、途中で想定していなかったCoreDNS…
はじめに 前回の記事では、CoreDNSを用いたローカル環境での名前解決について解説しました。サーバー側の準備が整ったら、次はクライアント端末から安全に、かつスムーズにアクセスするための設定が必要です。 特にiPadやiPhoneなどのiOSデバイスでは、自己…
はじめに 前回の記事「Nextcloud 32へのバージョンアップ (その12: iPadへの自己署名証明書登録とHTTPSでNextcloudへ接続)」では、iPadからHTTPSを用いてNextcloudへ接続する手順を紹介しました。 ひとまずプロファイルのインストールまでは完了したものの、…
はじめに 前回の記事でCoreDNSを導入し、LAN内での名前解決ができるようになりました。今回はその仕上げとして、iPadから https://nextcloud.home-lan でアクセスできるように設定を行っていきます。 ブラウザでの警告を回避し、セキュアかつ快適に自作クラ…
はじめに 以前、Nextcloudにhttps://nextcloud.localとホスト名でアクセスするために、Nginx Proxy Managerに設定をしていました。 この時は、アクセス元になるmacOS上の/etc/hostsにホスト名とIPアドレスの対応を作成し、IPアドレスの名前解決をしていまし…
はじめに システム開発やデータの整理をしていると、「ファイル名が長すぎてエラーになった」「ディレクトリ構造が深すぎて管理しづらい」といった問題に直面することがあります。 今回は、Nextcloud 32へのバーションアップ(その10: ファイル名が長いエラー…
はじめに Nextcloud 32へのアップデート作業を順調に進めてきましたが、デスクトップクライアントとの同期プロセスにおいて、一部のファイルで「some file name is too long」というエラーが表示される現象に遭遇しました。 クライアント側の通知だけでは、…
はじめに Nextcloud 32へのサーバー側のバージョンアップ作業も一段落し、いよいよ本格的な運用フェーズに入ってきました。 これまでブラウザ経由での利用が中心でしたが、日々の作業をよりスムーズにするためには、ローカル環境との自動同期が欠かせません…
はじめに Nextcloudを運用する際、新規にファイルをアップロードするだけでなく、すでにUbuntu上のローカルディレクトリに格納されている膨大なデータをそのまま共有したいケースがあります。 私の環境でも、既存のディレクトリをNextcloudから直接参照して…
はじめに 前回までの工程で、Docker環境を利用したNextcloud 32のコンテナ立ち上げまでが完了しました。しかし、コンソール上での作業が終わっても、実際にブラウザから安全かつ快適に利用するためには、いくつかの重要な初期設定が残っています。 今回は、…
はじめに Nextcloud 32へのアップデート作業もいよいよ大詰めです。前回までに、バックエンドの環境構築や証明書の作成を進めてきました。 今回は、外部(またはローカルネットワーク内)からのアクセスを効率的かつ安全に管理するために、「Nginx Proxy Man…