以前以下のような記事を書いた。 masahero.hatenablog.jp 時間もたってこのままでは動作しなくなっているようなので修正版を作った。 Python 3.6.9では動作するが、Python 3.7.3では元のウィンドウプロシージャを呼び出す箇所で"Access violation"が発生する。原因調査中。分かる人がいたら教えて。 import ctypes from ctypes.wintypes import HWND, UINT, WPARAM, LPARAM import sys import collections WM_DROPFILES = 0x0233 GWL_WNDPROC = -4 WINPROC = ctypes.c_void_p() drop_files = collections.deque() @ctypes.WINFUNCTYPE(ctypes.c
fork this is fork of tkinterdnd2 which is a python wrapper for tkdnd . this repo forked and edited to be published to pypi so one could simply install this package with pip install tkinterdnd2. install python -m pip install tkinterdnd2 usage see any of the demos for usage examples. Tkinter native drag and drop support for windows, unix and Mac OSX. What is TkInterDnD2 TkinterDnD2 is a python wrapp
Pythonのtkinterでファイルをドロップしてそれを開くようなGUIをもったスクリプトを作るのは どうするのか調べてみた。 一つは、ctypes モジュールを用いて、WindowsのAPIを呼び出す方法がある。 もう一つは、TkDNDというTkの拡張ライブラリとそのPythonラッパーであるTkinterDnD2を用いる方法である。 ここでは、後者の方法を試してみた。 環境はWindows10、Python3.8.3、64bit環境である。 まずはこちらにいく。 TkinterDnD2のダウンロードができる。また、TkDND へのダウンロードリンクもある。 行うことは、Tkの拡張ライブラリであるTkDND2.8と、そのPythonラッパーであるTkinterDnD2をインストールすることである。 TkDNDのページへ行く。 64bit環境なら、 Windows Binaries/Tk
はじめに... タイトル長くてスミマセン!!!!! 書きたいことの要約って難しいですよね... 誰か、要約案を私にお恵みください... (ちなみに、この後も長いです。目次をご活用ください。また、本編(?)は"ここからスタート!"から始まります。どうぞご自由にスキップしてください。) あと、執筆途中であることに十分ご留意ください。 (あと、当然っちゃ当然ですが、GUIが使える環境じゃないと動きません。) Python/Tkinterとは? 簡単に言うと、Tclというスクリプト言語があってですね、 その中にGUIをいじくれるTkっつうのがありまして、 で、その言語は、Python内部に組み込まれておりまして(ソースからビルドとかしない限り)、 そいつを利用して、GUIを司れるってわけです。 (まあ、ついでに言うと、そのTclってのを直接使うこともできます。) Tkinterリファレンス ここか
できそうな気がするんです。 蛇口です。普段はエンジニアでも何でもありません。 特に必要というわけではないんですが巷にあるウィンドウって たいていファイルをドロップすると、それに対して何かしてくれている気がするんです。 Tkinterも見た目からして「私、できますよ」という顔をしていたんですが まあ普通にファイルをドロップしても何も起きないわけですね。 今回、Qiitaには載ってなかったので(見つけらなかっただけかもしれませんが) 今後同じ手間を踏む必要がないようにこちらに投稿しておくことにしました。 環境 Windows10 64bit python3.7 どうやら、Tkinterに加えてTkinterDnD2というものを使うことで ドロップされたファイルを受け取ることができるようになるそうです。 じゃあ、いつものように「pip install」すればいいんじゃない?と私は考えました。 p
本記事ではPythonのtkinterで、ファイルのドラッグアンドドロップを利用する方法について解説していきます。 具体的には、tkinterで起動したGUIアプリケーション上にファイルをドラッグアンドドロップして、ファイルのパスを取得や画像を表示する方法を解説します。 tkinterでドラッグアンドドロップ機能を実装するために、TkinterDnD2というパッケージを利用します。 本記事では以下の環境でプログラムを実行しています。 Python:3.8.8 tkinterdnd2:0.3.0 Anaconda:4.10.1 tkinterの基本的な使い方については以下記事からご参照ください。
連載目次 近年のWebアプリケーションでは、画像ファイルやテキスト・ファイル、Officeファイルのアップロードやダウンロードのやり取りが行われることが多くなってきている(例えば、Twitter上での画像ファイル共有やGoogleドキュメントでのOfficeファイルのアップロードなどがそれだ)。 HTML5では、ファイル操作に関するAPIとして「File API」が定義されたことで、ローカルのファイルをブラウザ上で直接、取り扱うことが可能となった。これによって、Webとローカルの違いをアプリケーションで意識しなければならない局面も少なくなる。 現在、File APIは以下の3種類の仕様が策定されている。
Stay organized with collections Save and categorize content based on your preferences. Explore our growing collection of courses on key web design and development subjects. An industry expert has written each course, helped by members of the Chrome team. Follow the modules sequentially, or dip into the topics you most want to learn about.
これらのイベントを使用してドラッグ&ドロップを実装していきます。まずは最低限の機能を備えたサンプルを見てみます。 実装の最小構成 赤いボックスを下のエリアにドラッグ&ドロップしてみてください。ドラッグしている要素がエリアに入ると、テキストがonDragOverとなり、ドロップされるとonDropになるのが確認できます。 ソースコード*は次のようになっています。 *注:JavaScriptのソースコード ソースコードの見通しをよくするためにjQueryを使用しています。 ... <div class="box" draggable="true"></div> <div id="dropzone" class="dropzone"></div> ... ... $('#box').on('dragstart', onDragStart); $('#dropzone').on('dragover
概説 「HTML5のcanvas内に複数の画像を任意の順序で表示する」で描画したcanvas内の画像をドラッグ&ドロップしたい欲が湧いたので、コードを書いてみました。 ドラッグ&ドロップは通常のDOMであれば、HTML5のDrag & Drop APIを利用することで簡単に対応可能です。 しかし、canvasに一度描いてしまったオブジェクトは、DOMとして操作することができないため、座標を考慮した地味な実装が必要になります。 以下のようなサイトを参考にしながら、画像の重なり順と当たり判定を考えてやってみたところ、自分が「いかに座標に弱いか」ということがよく分かりました。。。 A Gentle Introduction to Making HTML5 Canvas Interactive dragging and resizing an image on html5 canvas 「Kine
Introduction Drag and drop support within wxPython is a conversation between a "drop source" and a "drop target". The conversation is accomplished by sharing a "data object" which includes certain pieces of metadata (primarily the data types available from the drop source) as well as the actual shared data. What Objects are Involved Source window -- Interprets an event as the beginning of a new dr
HTML5 の File API を使った、OS からウェブ画面へのファイルドラッグ&ドロップを実現する方法を紹介します。 まず、何も準備しないでウェブ画面へファイルをドラッグ&ドロップすると、デフォルト挙動によって、そのファイルがブラウザで開かれます。例えば画像ファイルをウェブ画面にドラッグ&ドロップすると、その画像ファイルがブラウザ内で開かれて表示されます。 ドラッグ&ドロップを実現するには、まずブラウザのこのデフォルト挙動を上書きして、別の挙動にするよう指定する必要があります。そのためにファイルドロップのエリア(<div>)への drop イベントに対して、preventDefault(); を指定しておく必要があります。これでファイルをドロップしてもブラウザでは開かなくなります。 また、ドロップイベントのパラメータである event の event.dataTransfer.fil
Instagram の画像フィルターみたいことを HTML5 (Canvas + File API + Drag&Drop API) で実装してみました。 Instagram みたいなの - jsdo.it - Share JavaScript, HTML5 and CSS 動作するブラウザは FireFox 3.6、Chrome 8 開発版です。(Chrome 7 は File API はサポートしていますが、どうやら iframe 内では動作しないため、上記 jsdo.it 上では動作しません。) できること これを こんな風に加工できます。 大学時代に画像処理の研究をやっていた身としては、ブラウザだけでもここまで出来るようになったのか、と少し感慨深いです。 やっていること Drag&Drop API で画像ファイルを取得 File API で画像ファイルを DATA URI 形式に変
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く