2018/03/31

symbolic link privilege not held が出る場合の対処方法 (Windows 10)

Python でシンボリックリンクを作成するには `os.symlink()` を使用します。
ただ、Windows でこれを普通に実行すると `OSError: symbolic link privilege not held` が発生してしまいます。

2018/03/08

Linux に wxPython をインストールする方法

以前、[Ubuntu 16.04 に wxPython (Python3用) をインストール | 穀風](https://kokufu.blogspot.com/2017/04/ubuntu-1604-wxpython-python3.html) を書いたのですが、
[wxPython 4.0.1](https://www.wxpython.org/news/wxpython-4.0.1-release/index.html) になって微妙に依存関係が変わったようです。

2018/03/07

関数プロトタイプ宣言はヘッダファイルとソースファイルのどちらに書くべきか

C言語のコードでは、全ての関数プロトタイプ宣言がヘッダファイルに書いてあったりするものもありますが、
個人的にはヘッダファイルに書くべきものと、ソースファイルに書くべきもしくは、書く必要さえないものを明確に区別すべきだと思います。

何をもって区別するのかと言うと、「スコープ」です。
「何を当たり前のことを」と思った方は申し訳ありません。ただ、最近「スコープなんて知らん」と言わんばかりのコードを大量に読むことになってしまいまして。

2018/03/05

wxPython & XRC でパネルを動的追加する方法 with Two Stage Creation

先日書いた [wxPython でパネルを動的追加する方法 | 穀風](https://kokufu.blogspot.com/2018/03/wxpython.html) を Two Stage Creation を使って実装し直しました。

> Two Stage Creation については、以下を参考にしてください
>
> - [wxPython Project Phoenix Migration Guide — wxPython Phoenix 4.0.1 documentation](https://docs.wxpython.org/MigrationGuide.html#phase-create)
> - [XRC and two stage creation in Phoenix - Google グループ](https://groups.google.com/forum/#!topic/wxpython-users/KNCAAYJKpQU)
> - [Phoenix compatibility in pywxrc by acolomb · Pull Request #726 · wxWidgets/Phoenix](https://github.com/wxWidgets/Phoenix/pull/726/files)
> - [wxPython & XRC で Custom Frame を作る方法3種 | 穀風](https://kokufu.blogspot.com/2018/03/wxpython-xrc-custom-frame-3.html)

作成したサンプルは、前回と同様、ラベルとボタンが一つずつあるだけのシンプルなもので、ボタンをクリックすると自パネルの背景が変わるというお遊びつきです全く役に立たない!
2018/03/04

wxPython & XRC で Custom Frame を作る方法3種

@wxPython 4.0.1 (Phoenix)

UI が複雑になってくると、Custom Frame や Custom Panel を作ってコンポーネント化したくなります。
wxPython では `wx.Frame` や `wx.Panel` を継承した class を作ることでこれを実現できますが、どうもコードベースで実装している例が多いようです。

しかし、View は分離しておきたいもの。特に複雑なUIの場合はなおさらです。
そこで、[XRC](https://wiki.wxpython.org/XRCTutorial) を使って Custom Frame (Panel) を作る方法を調べてみました。

今回は、例として、Button が一つ中央にある Custom Frame を作ってみます例が全く複雑なUIじゃない!
2018/03/02

wxPython & XRC で "AttributeError: 'Control' object has no attribute" が発生する場合の対処方法

@wxPython 4.0.1

以下のように XRC から `wxDatePickerCtrl` 等のコンポーネントを生成すると、`Control` オブジェクトが返ってきてしまうことがあります。

2018/03/01

wxPython & XRC でパネルを動的追加する方法


2018/3/5 追記
より使い勝手の良い方法があったので、そちらの方法で実装しなおしたバージョンを作りました。
[wxPython &XRC でパネルを動的追加する方法 with Two Stage Creation | 穀風](https://kokufu.blogspot.com/2018/03/wxpython-with-two-stage-creation.html)
`Add Panel` ボタンをクリックすると動的に `MyPanel` を追加するサンプルを作りました。 `MyPanel` はラベルとボタンが一つずつあるだけのシンプルなもので、ボタンをクリックすると自パネルの背景が変わるというお遊びつきです全く役に立たない!
なお、`MyPanel` は [wxPython & XRC で Custom Frame を作る方法2種+α | 穀風](https://kokufu.blogspot.com/2018/03/wxpython-xrc-custom-frame-2.html) で紹介した方法で XRC から生成していますFrame も XRC から作れますが、今回は Panel が主役なのであえてコードで生成

wxPython & XRC で Custom Frame を作る方法2種+α

2018/03/04 追記
よく調べてみたところ、より使い勝手のよい方法が公式に存在したので書き直しました。
[wxPython & XRC で Custom Frame を作る方法3種 | 穀風](https://kokufu.blogspot.com/2018/03/wxpython-xrc-custom-frame-3.html)
@wxPython 4.0.1 (Phoenix) UI が複雑になってくると、Custom Frame や Custom Panel を作ってコンポーネント化したくなります。 wxPython では `wx.Frame` や `wx.Panel` を継承した class を作ることでこれを実現できますが、どうもコードベースで実装している例が多いようです。 しかし、View は分離しておきたいもの。特に複雑なUIの場合はなおさらです。 そこで、[XRC](https://wiki.wxpython.org/XRCTutorial) を使って Custom Frame (Panel) を作る方法を調べてみました。 今回は、例として、Button が一つ中央にある Custom Frame を作ってみます例が全く複雑なUIじゃない!