ikkVisualKit 0.0.2__tar.gz → 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/LICENSE +21 -21
  2. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/PKG-INFO +52 -61
  3. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/README.md +135 -144
  4. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/CTkUiBase.py +315 -51
  5. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/Dialog/CdialogOk.py +0 -34
  6. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/Window/WindowBaseModan.py +89 -84
  7. ikkvisualkit-0.1.1/ikkVisualKit/image/alwaysTop.dio.png +0 -0
  8. ikkvisualkit-0.1.1/ikkVisualKit/image/error.dio.png +0 -0
  9. ikkvisualkit-0.1.1/ikkVisualKit/image/focus.dio.png +0 -0
  10. ikkvisualkit-0.1.1/ikkVisualKit/image/handyReader.dio.png +0 -0
  11. ikkvisualkit-0.1.1/ikkVisualKit/image/info.dio.png +0 -0
  12. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/link.dio.png +0 -0
  13. ikkvisualkit-0.1.1/ikkVisualKit/image/warning.dio.png +0 -0
  14. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit.egg-info/PKG-INFO +52 -61
  15. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit.egg-info/SOURCES.txt +6 -3
  16. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/pyproject.toml +48 -48
  17. ikkvisualkit-0.0.2/ikkVisualKit/image/error.png +0 -0
  18. ikkvisualkit-0.0.2/ikkVisualKit/image/info.png +0 -0
  19. ikkvisualkit-0.0.2/ikkVisualKit/image/warning.png +0 -0
  20. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/Dialog/CdialogBase.py +0 -0
  21. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/Dialog/CdialogYesNo.py +0 -0
  22. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/Dialog/DialogBase.py +0 -0
  23. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/Dialog/DialogGridSelecter.py +0 -0
  24. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/Dialog/DialogOk.py +0 -0
  25. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/Dialog/DialogSelectReaderPort.py +0 -0
  26. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/Dialog/DialogYesNo.py +0 -0
  27. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/Dialog/__init__.py +0 -0
  28. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/TkUiBase.py +0 -0
  29. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/Tray/ResidentApp.py +0 -0
  30. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/Tray/TrayMenu.py +0 -0
  31. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/Tray/__init__.py +0 -0
  32. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/Window/WindowBase.py +0 -0
  33. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/Window/__init__.py +0 -0
  34. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/__init__.py +0 -0
  35. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/alert.dio.png +0 -0
  36. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/clear.dio.png +0 -0
  37. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/disconnect.dio.png +0 -0
  38. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/folder.dio.png +0 -0
  39. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/goto.dio.png +0 -0
  40. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/help.dio.png +0 -0
  41. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/lock.dio.png +0 -0
  42. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/log.dio.png +0 -0
  43. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/open.dio.png +0 -0
  44. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/recipe.dio.png +0 -0
  45. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/save.dio.png +0 -0
  46. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/search.dio.png +0 -0
  47. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/setting.dio.png +0 -0
  48. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/start.dio.png +0 -0
  49. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/swap.dio.png +0 -0
  50. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit/image/unlock.dio.png +0 -0
  51. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit.egg-info/dependency_links.txt +0 -0
  52. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit.egg-info/requires.txt +0 -0
  53. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/ikkVisualKit.egg-info/top_level.txt +0 -0
  54. {ikkvisualkit-0.0.2 → ikkvisualkit-0.1.1}/setup.cfg +0 -0
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Insight.k.k
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Insight.k.k
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ikkVisualKit
3
- Version: 0.0.2
3
+ Version: 0.1.1
4
4
  Summary: Insight.k.k. VisualKit for easy application development
5
5
  Author-email: "Insight.k.k. Team" <maintainer@insightkk.net>
6
6
  License-Expression: MIT
@@ -32,6 +32,7 @@ Dynamic: license-file
32
32
 
33
33
  # ikkVisualKit
34
34
 
35
+ ## Overview
35
36
  Pythonアプリケーション開発用の軽量GUIツールキット。tkinterとcustomtkinterをベースに、ウィンドウ、ダイアログ、システムトレイアプリケーション用の汎用コンポーネントを提供します。
36
37
 
37
38
  ## 主な機能
@@ -47,32 +48,6 @@ Pythonアプリケーション開発用の軽量GUIツールキット。tkinter
47
48
  pip install ikkVisualKit
48
49
  ```
49
50
 
50
- ## 使用例
51
-
52
- ```python
53
- from ikkVisualKit import WindowBaseModan
54
-
55
- class MainWindow(WindowBaseModan):
56
- def __init__(self):
57
- super().__init__(
58
- title="My Application",
59
- version="1.0.0",
60
- size=(1000, 600)
61
- )
62
-
63
- def _build(self, root):
64
- super()._build(root)
65
- # UIパーツの配置
66
-
67
- if __name__ == "__main__":
68
- app = MainWindow()
69
- app.show_window()
70
- app.run()
71
- ```
72
-
73
- ## Overview
74
- [ikkVisualKit](https://github.com/Insight-kk/ikkVisualKit/tree/8c55eac18e43b5ea5136d7e2d33febff9a346d79)はGUIアプリ作成用典型的なパーツのToolKitです。
75
-
76
51
  # Feature
77
52
  * CustomTkinterベース
78
53
  * DPIスケーリング対応
@@ -80,12 +55,7 @@ if __name__ == "__main__":
80
55
  * フォームアプリ向けに
81
56
  * 常駐(タスクトレイ)アプリの作成を用意するテンプレートの提供
82
57
  * サイズの大きいカスタムメッセージダイアログの提供
83
-
84
- # インストール方法
85
- ```
86
- pip install ikkVisualKit
87
- ````
88
-
58
+ * 常に手前に表示のON/OFF
89
59
 
90
60
 
91
61
  # 利用方法
@@ -105,23 +75,33 @@ from ikkVisualKit import DialogResult #ダイアログを利用する場
105
75
  ```python
106
76
  from ikkVisualKit import WindowBaseModan
107
77
 
108
- class MainWindow(WindowBaseModan):
78
+ class TestWindow(WindowBaseModan):
109
79
  def __init__(self):
110
80
  super().__init__(
111
- title="MyApplecation", #アプリ名
112
- version="0.0.0", #バージョン
113
- size=(1000, 600), #ウィンドウサイズ
81
+ title="MyWindowSample",#アプリ名
82
+ version="0.0.0", #バージョン
83
+ size=(600, 400), #ウィンドウサイズ
114
84
  icon_path="resources/icon.dio.ico", #アイコンパス(.ico推奨)
115
- tray_app=False #常駐アプリにしたいならTrue
85
+ tray_app=False #常駐アプリにしたいならTrue
116
86
  )
117
- #----------------------------------------------
87
+
118
88
  def _build(self, root):
119
89
  super()._build(root)
120
- #パーツの配置
121
- if __name__ == "__main__":
122
- app = MainWindow()
123
- app.show_window()
124
- app.run()
90
+ # UIパーツの配置
91
+ self.btn1 = self.make_ActionButton(16 ,16, image_key="setting.dio") #設定
92
+ #ツールチップの付加
93
+ self.btn1.tooltip_text = "設定を開く"
94
+ #ハンドラの設定
95
+ self.btn1.OnClicked += self.on_btn1_click
96
+ def on_btn1_click(self):
97
+ self.show_ok_dialog(title="ボタンがクリックされました", message="これはテスト用のダイアログです。")
98
+ self .WarningBlink() # 警告点滅を開始
99
+ @override
100
+ def _loadAppState(self):
101
+ pass #フォームロード後の処理(継承必須)ウインドウ状態の復元に利用してください
102
+ @override
103
+ def _backupAppState(self):
104
+ pass #フォームクローズ前の処理(継承必須)ウインドウ状態保存に利用してください
125
105
  ```
126
106
 
127
107
 
@@ -155,22 +135,33 @@ self.btnClear = self.make_ActionButton(784, 16 , image_key="clear.dio",size_r
155
135
 
156
136
  ### アイコンの一覧
157
137
 
138
+ Name |Image
139
+ ---------------|-------------------------
140
+ alert.dio | ![alert.dio](ikkVisualKit/image/alert.dio.png)
141
+ alwaysTop.dio | ![alwaysTop.dio](ikkVisualKit/image/alwaysTop.dio.png)
142
+ clear.dio | ![clear.dio](ikkVisualKit/image/clear.dio.png)
143
+ disconnect.dio | ![disconnect.dio](ikkVisualKit/image/disconnect.dio.png)
144
+ error.dio | ![error.dio](ikkVisualKit/image/error.dio.png)
145
+ focus.dio | ![focus.dio](ikkVisualKit/image/focus.dio.png)
146
+ folder.dio | ![folder.dio](ikkVisualKit/image/folder.dio.png)
147
+ goto.dio | ![goto.dio](ikkVisualKit/image/goto.dio.png)
148
+ handyReader.dio| ![handyReader.dio](ikkVisualKit/image/handyReader.dio.png)
149
+ help.dio | ![help.dio](ikkVisualKit/image/help.dio.png)
150
+ info.dio | ![info.dio](ikkVisualKit/image/info.dio.png)
151
+ link.dio | ![link.dio](ikkVisualKit/image/link.dio.png)
152
+ lock.dio | ![lock.dio](ikkVisualKit/image/lock.dio.png)
153
+ log.dio | ![log.dio](ikkVisualKit/image/log.dio.png)
154
+ open.dio | ![open.dio](ikkVisualKit/image/open.dio.png)
155
+ recipe.dio | ![recipe.dio](ikkVisualKit/image/recipe.dio.png)
156
+ save.dio | ![save.dio](ikkVisualKit/image/save.dio.png)
157
+ search.dio | ![search.dio](ikkVisualKit/image/search.dio.png)
158
+ setting.dio | ![setting.dio](ikkVisualKit/image/setting.dio.png)
159
+ start.dio | ![start.dio](ikkVisualKit/image/start.dio.png)
160
+ swap.dio | ![swap.dio](ikkVisualKit/image/swap.dio.png)
161
+ unlock.dio | ![unlock.dio](ikkVisualKit/image/unlock.dio.png)
162
+ warning.dio | ![warning.dio](ikkVisualKit/image/warning.dio.png)
163
+
164
+ ## 常に手前に表示
158
165
  ```python
166
+ ui.isAlwaysOnTop = True
159
167
  ```
160
-
161
- Name |Image
162
- ----------|-------------------------
163
- clear.dio | ![clear.dio](ikkVisualKit/image/clear.dio.png)
164
- goto.dio | ![clear.dio](ikkVisualKit/image/goto.dio.png)
165
- help.dio | ![clear.dio](ikkVisualKit/image/help.dio.png)
166
- link.dio | ![clear.dio](ikkVisualKit/image/link.dio.png)
167
- lock.dio | ![clear.dio](ikkVisualKit/image/lock.dio.png)
168
- log.dio | ![clear.dio](ikkVisualKit/image/log.dio.png)
169
- open.dio | ![clear.dio](ikkVisualKit/image/open.dio.png)
170
- recipe.dio | ![clear.dio](ikkVisualKit/image/recipe.dio.png)
171
- save.dio | ![clear.dio](ikkVisualKit/image/save.dio.png)
172
- search.dio | ![clear.dio](ikkVisualKit/image/search.dio.png)
173
- setting.dio | ![clear.dio](ikkVisualKit/image/setting.dio.png)
174
- start.dio | ![clear.dio](ikkVisualKit/image/start.dio.png)
175
- unlock.dio | ![clear.dio](ikkVisualKit/image/unlock.dio.png)
176
-
@@ -1,144 +1,135 @@
1
- # ikkVisualKit
2
-
3
- Pythonアプリケーション開発用の軽量GUIツールキット。tkinterとcustomtkinterをベースに、ウィンドウ、ダイアログ、システムトレイアプリケーション用の汎用コンポーネントを提供します。
4
-
5
- ## 主な機能
6
-
7
- - **ウィンドウベースクラス** - CTkやtkinterベースのウィンドウを簡単に構築
8
- - **ダイアログコンポーネント** - OK、YesNo、カスタムダイアログなど汎用ダイアログ
9
- - **システムトレイ対応** - トレイメニュー、常駐アプリケーション機能
10
- - **画像管理** - パッケージ内の画像リソースを統一的に管理
11
-
12
- ## インストール
13
-
14
- ```bash
15
- pip install ikkVisualKit
16
- ```
17
-
18
- ## 使用例
19
-
20
- ```python
21
- from ikkVisualKit import WindowBaseModan
22
-
23
- class MainWindow(WindowBaseModan):
24
- def __init__(self):
25
- super().__init__(
26
- title="My Application",
27
- version="1.0.0",
28
- size=(1000, 600)
29
- )
30
-
31
- def _build(self, root):
32
- super()._build(root)
33
- # UIパーツの配置
34
-
35
- if __name__ == "__main__":
36
- app = MainWindow()
37
- app.show_window()
38
- app.run()
39
- ```
40
-
41
- ## Overview
42
- [ikkVisualKit](https://github.com/Insight-kk/ikkVisualKit/tree/8c55eac18e43b5ea5136d7e2d33febff9a346d79)はGUIアプリ作成用典型的なパーツのToolKitです。
43
-
44
- # Feature
45
- * CustomTkinterベース
46
- * DPIスケーリング対応
47
- * フォームアプリの作成が容易になるBaseクラスの提供
48
- * フォームアプリ向けに
49
- * 常駐(タスクトレイ)アプリの作成を用意するテンプレートの提供
50
- * サイズの大きいカスタムメッセージダイアログの提供
51
-
52
- # インストール方法
53
- ```
54
- pip install ikkVisualKit
55
- ````
56
-
57
-
58
-
59
- # 利用方法
60
- ```python
61
- from ikkVisualKit import WindowBaseModan #ファームアプリを作成する場合
62
- from ikkVisualKit import DialogResult #ダイアログを利用する場合
63
- ```
64
-
65
-
66
- # フォームアプリケーションの作成方法
67
-
68
- ## フォームの作成
69
- 1. `WindowBaseModan`を継承した任意のウインドウクラスを作成します。
70
- 1. `def _build(self, root):`をオーバライドして,`super()._build(root)`を実行します。
71
- 1. `show_window()`と`run()`を実行するとWindowアプリケーションが起動します。
72
-
73
- ```python
74
- from ikkVisualKit import WindowBaseModan
75
-
76
- class MainWindow(WindowBaseModan):
77
- def __init__(self):
78
- super().__init__(
79
- title="MyApplecation", #アプリ名
80
- version="0.0.0", #バージョン
81
- size=(1000, 600), #ウィンドウサイズ
82
- icon_path="resources/icon.dio.ico", #アイコンパス(.ico推奨)
83
- tray_app=False #常駐アプリにしたいならTrue
84
- )
85
- #----------------------------------------------
86
- def _build(self, root):
87
- super()._build(root)
88
- #パーツの配置
89
- if __name__ == "__main__":
90
- app = MainWindow()
91
- app.show_window()
92
- app.run()
93
- ```
94
-
95
-
96
- ## カスタムボタン
97
- * 大中小3タイプのボタンサイズを用意
98
- * ツールチップテキストをプロパティとして用意
99
- * マウスホバー時の色変更
100
- * ボタンに付与するアイコン画像を予め用意
101
-
102
-
103
-
104
- ### 小さいアイコン付きボタン
105
- 以下のコードは小さいサイズのアイコン付きボタンを作成する例です。
106
- コンストラクタのx,yに配置する座標を指定し、image_keyで[アイコン](#小さいアイコン付きボタン)を指定してください。
107
- ツールチップテキストと、イベントハンドラを後から登録することが可能です。
108
- ```python
109
- self.btnSetting = self.make_ActionButton(x=16 , y=176, image_key="setting.dio")
110
- self.btnSetting.tooltip_text = "設定を開く" #ツールチップテキスト設定
111
- self.btnSetting.command = self.on_setting #ボタン押下で実行する関数の登録
112
- ```
113
- ![alt text](./doc/image.png)
114
-
115
- ### 大きいサイズのボタン
116
- 大きいサイズのボタンを利用する場合ば`size_rank=1`もしくは`size_rank=2`を指定してください。また、`text=`で指定した文字がアイコンと共に表示されます。
117
- ```python
118
- self.btnStart = self.make_ActionButton(624, 16 , image_key="start.dio",size_rank=2,text="検査スタート")
119
- self.btnClear = self.make_ActionButton(784, 16 , image_key="clear.dio",size_rank=1,text="クリア")
120
- ```
121
-
122
-
123
-
124
- ### アイコンの一覧
125
-
126
- ```python
127
- ```
128
-
129
- Name |Image
130
- ----------|-------------------------
131
- clear.dio | ![clear.dio](ikkVisualKit/image/clear.dio.png)
132
- goto.dio | ![clear.dio](ikkVisualKit/image/goto.dio.png)
133
- help.dio | ![clear.dio](ikkVisualKit/image/help.dio.png)
134
- link.dio | ![clear.dio](ikkVisualKit/image/link.dio.png)
135
- lock.dio | ![clear.dio](ikkVisualKit/image/lock.dio.png)
136
- log.dio | ![clear.dio](ikkVisualKit/image/log.dio.png)
137
- open.dio | ![clear.dio](ikkVisualKit/image/open.dio.png)
138
- recipe.dio | ![clear.dio](ikkVisualKit/image/recipe.dio.png)
139
- save.dio | ![clear.dio](ikkVisualKit/image/save.dio.png)
140
- search.dio | ![clear.dio](ikkVisualKit/image/search.dio.png)
141
- setting.dio | ![clear.dio](ikkVisualKit/image/setting.dio.png)
142
- start.dio | ![clear.dio](ikkVisualKit/image/start.dio.png)
143
- unlock.dio | ![clear.dio](ikkVisualKit/image/unlock.dio.png)
144
-
1
+ # ikkVisualKit
2
+
3
+ ## Overview
4
+ Pythonアプリケーション開発用の軽量GUIツールキット。tkinterとcustomtkinterをベースに、ウィンドウ、ダイアログ、システムトレイアプリケーション用の汎用コンポーネントを提供します。
5
+
6
+ ## 主な機能
7
+
8
+ - **ウィンドウベースクラス** - CTkやtkinterベースのウィンドウを簡単に構築
9
+ - **ダイアログコンポーネント** - OK、YesNo、カスタムダイアログなど汎用ダイアログ
10
+ - **システムトレイ対応** - トレイメニュー、常駐アプリケーション機能
11
+ - **画像管理** - パッケージ内の画像リソースを統一的に管理
12
+
13
+ ## インストール
14
+
15
+ ```bash
16
+ pip install ikkVisualKit
17
+ ```
18
+
19
+ # Feature
20
+ * CustomTkinterベース
21
+ * DPIスケーリング対応
22
+ * フォームアプリの作成が容易になるBaseクラスの提供
23
+ * フォームアプリ向けに
24
+ * 常駐(タスクトレイ)アプリの作成を用意するテンプレートの提供
25
+ * サイズの大きいカスタムメッセージダイアログの提供
26
+ * 常に手前に表示のON/OFF
27
+
28
+
29
+ # 利用方法
30
+ ```python
31
+ from ikkVisualKit import WindowBaseModan #ファームアプリを作成する場合
32
+ from ikkVisualKit import DialogResult #ダイアログを利用する場合
33
+ ```
34
+
35
+
36
+ # フォームアプリケーションの作成方法
37
+
38
+ ## フォームの作成
39
+ 1. `WindowBaseModan`を継承した任意のウインドウクラスを作成します。
40
+ 1. `def _build(self, root):`をオーバライドして,`super()._build(root)`を実行します。
41
+ 1. `show_window()`と`run()`を実行するとWindowアプリケーションが起動します。
42
+
43
+ ```python
44
+ from ikkVisualKit import WindowBaseModan
45
+
46
+ class TestWindow(WindowBaseModan):
47
+ def __init__(self):
48
+ super().__init__(
49
+ title="MyWindowSample",#アプリ名
50
+ version="0.0.0", #バージョン
51
+ size=(600, 400), #ウィンドウサイズ
52
+ icon_path="resources/icon.dio.ico", #アイコンパス(.ico推奨)
53
+ tray_app=False #常駐アプリにしたいならTrue
54
+ )
55
+
56
+ def _build(self, root):
57
+ super()._build(root)
58
+ # UIパーツの配置
59
+ self.btn1 = self.make_ActionButton(16 ,16, image_key="setting.dio") #設定
60
+ #ツールチップの付加
61
+ self.btn1.tooltip_text = "設定を開く"
62
+ #ハンドラの設定
63
+ self.btn1.OnClicked += self.on_btn1_click
64
+ def on_btn1_click(self):
65
+ self.show_ok_dialog(title="ボタンがクリックされました", message="これはテスト用のダイアログです。")
66
+ self .WarningBlink() # 警告点滅を開始
67
+ @override
68
+ def _loadAppState(self):
69
+ pass #フォームロード後の処理(継承必須)ウインドウ状態の復元に利用してください
70
+ @override
71
+ def _backupAppState(self):
72
+ pass #フォームクローズ前の処理(継承必須)ウインドウ状態保存に利用してください
73
+ ```
74
+
75
+
76
+ ## カスタムボタン
77
+ * 大中小3タイプのボタンサイズを用意
78
+ * ツールチップテキストをプロパティとして用意
79
+ * マウスホバー時の色変更
80
+ * ボタンに付与するアイコン画像を予め用意
81
+
82
+
83
+
84
+ ### 小さいアイコン付きボタン
85
+ 以下のコードは小さいサイズのアイコン付きボタンを作成する例です。
86
+ コンストラクタのx,yに配置する座標を指定し、image_keyで[アイコン](#小さいアイコン付きボタン)を指定してください。
87
+ ツールチップテキストと、イベントハンドラを後から登録することが可能です。
88
+ ```python
89
+ self.btnSetting = self.make_ActionButton(x=16 , y=176, image_key="setting.dio")
90
+ self.btnSetting.tooltip_text = "設定を開く" #ツールチップテキスト設定
91
+ self.btnSetting.command = self.on_setting #ボタン押下で実行する関数の登録
92
+ ```
93
+ ![alt text](./doc/image.png)
94
+
95
+ ### 大きいサイズのボタン
96
+ 大きいサイズのボタンを利用する場合ば`size_rank=1`もしくは`size_rank=2`を指定してください。また、`text=`で指定した文字がアイコンと共に表示されます。
97
+ ```python
98
+ self.btnStart = self.make_ActionButton(624, 16 , image_key="start.dio",size_rank=2,text="検査スタート")
99
+ self.btnClear = self.make_ActionButton(784, 16 , image_key="clear.dio",size_rank=1,text="クリア")
100
+ ```
101
+
102
+
103
+
104
+ ### アイコンの一覧
105
+
106
+ Name |Image
107
+ ---------------|-------------------------
108
+ alert.dio | ![alert.dio](ikkVisualKit/image/alert.dio.png)
109
+ alwaysTop.dio | ![alwaysTop.dio](ikkVisualKit/image/alwaysTop.dio.png)
110
+ clear.dio | ![clear.dio](ikkVisualKit/image/clear.dio.png)
111
+ disconnect.dio | ![disconnect.dio](ikkVisualKit/image/disconnect.dio.png)
112
+ error.dio | ![error.dio](ikkVisualKit/image/error.dio.png)
113
+ focus.dio | ![focus.dio](ikkVisualKit/image/focus.dio.png)
114
+ folder.dio | ![folder.dio](ikkVisualKit/image/folder.dio.png)
115
+ goto.dio | ![goto.dio](ikkVisualKit/image/goto.dio.png)
116
+ handyReader.dio| ![handyReader.dio](ikkVisualKit/image/handyReader.dio.png)
117
+ help.dio | ![help.dio](ikkVisualKit/image/help.dio.png)
118
+ info.dio | ![info.dio](ikkVisualKit/image/info.dio.png)
119
+ link.dio | ![link.dio](ikkVisualKit/image/link.dio.png)
120
+ lock.dio | ![lock.dio](ikkVisualKit/image/lock.dio.png)
121
+ log.dio | ![log.dio](ikkVisualKit/image/log.dio.png)
122
+ open.dio | ![open.dio](ikkVisualKit/image/open.dio.png)
123
+ recipe.dio | ![recipe.dio](ikkVisualKit/image/recipe.dio.png)
124
+ save.dio | ![save.dio](ikkVisualKit/image/save.dio.png)
125
+ search.dio | ![search.dio](ikkVisualKit/image/search.dio.png)
126
+ setting.dio | ![setting.dio](ikkVisualKit/image/setting.dio.png)
127
+ start.dio | ![start.dio](ikkVisualKit/image/start.dio.png)
128
+ swap.dio | ![swap.dio](ikkVisualKit/image/swap.dio.png)
129
+ unlock.dio | ![unlock.dio](ikkVisualKit/image/unlock.dio.png)
130
+ warning.dio | ![warning.dio](ikkVisualKit/image/warning.dio.png)
131
+
132
+ ## 常に手前に表示
133
+ ```python
134
+ ui.isAlwaysOnTop = True
135
+ ```