Chromeのコンソール画面で遊ぶ(SVG編)
Check console log in Google Chrome!
えぇっ!?IEを使っているだって?君は正気か?
three.js Chromeローカルファイル読み込みで怒られたよ
three.jsのサンプルローカルで実行してたら怒られたのでメモ
Failed to load **** Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
ローカルサーバー建てるのは面倒くさいので
起動オプション付きのショートカットを用意する
「ショートカット」タブの「リンク先」に下記オプションを追加して
--allow-file-access-from-files
「ショートカット」タブの「詳細設定」⇒「管理者として実行」にチェックを
「互換性」タブにも「管理者としてこのプログラムを実行する」が存在するが
こちらをチェックするとexe自体の起動設定が管理者権限になってしまうので注意
Chromeのプロセスを全部終了してから↑のショートカットで起動させる
これでエラー回避できるんやで
pythonのreversedはイテレータを返す
反転したリストを複数回使うときにハマった
a = reversed([1, 2, 3]) # イテレータを返す for x in a: print(x) for x in a: print(x) # ここは呼ばれない
reverseなどでリスト自体を反転させておくか
a = [1, 2, 3] a.reverse()
for文ごとにreversedを呼べばOK
a = [1, 2, 3] for x in reversed(a): print(x) for x in reversed(a): print(x)
ちなみにsortedはリストを返す模様
プログラマのためのMaya攻略法
Mayaの内部構造をgoogle先生をウロウロしながら理解するのは効率が悪いので次の方法がおすすめ
- Complete Maya Programmingを読む
- devkitのサンプルを覗く
- MELコマンドの仕様はリファレンスを読む
Complete Maya Programmingは分厚く読むのは疲れるが、ツールを自作するときにも役立つ情報満載なので一度は読んでおいたほうが良いだろう。骨デジタルさんから日本語版も発売されている。Kindle版が欲しいから英語版を買ったけど日本語版買うべきだったな。一社に一冊欲しい。
devkitには今流行のAlembicのサンプルなんかもあったりします。そういえばCOLLADAってどうなったんですかね?
PySide keyPressEventが反応しないとき
もしかして
self.setFocusPolicy(QtCore.Qt.StrongFocus)
し忘れているんじゃないでしょうか。
PySide1と2でQScrollArea::wheelEventの動作が若干違う
違うんじゃあああああああああああああああああぁぁぁぁあああばばばっばばばば
# from PySide2.QtWidgets import * from PySide.QtGui import * import sys app = QApplication(sys.argv) class MyWidget(QWidget): def wheelEvent(self, event): print('hoge') class MyScrollArea(QScrollArea): def wheelEvent(self, event): print('fuga') # PySide1のときは呼ばれてないっぽい scrollArea = MyScrollArea() w = MyWidget() w.setFixedSize(640, 480) scrollArea.setWidget(w) scrollArea.show() sys.exit(app.exec_())
QTimer.singleShotをサブスレッドで使うには
呼び出しスレッド側でexec関数をよんでイベントループを開始せよ
In multithreaded applications, you can use QTimer in any thread that has an event loop. To start an event loop from a non-GUI thread, use QThread::exec(). Qt uses the timer's thread affinity to determine which thread will emit the timeout() signal. Because of this, you must start and stop the timer in its thread; it is not possible to start a timer from another thread.
イベントループにはいるとexitを呼ぶまで帰ってこないので注意
from PySide import QtCore, QtGui import sys, time class SingleShotThread(QtCore.QThread): def run(self): QtCore.QTimer.singleShot(1000, lambda: print('hoge')) self.exec_() # イベントループ開始 app = QtGui.QApplication(sys.argv) th = SingleShotThread() th.finished.connect(lambda: print('finished')) th.start() time.sleep(3) th.exit() # exitを呼んで終了させる sys.exit(app.exec_())