3DCG屋さんの活動記録

PROFILE ★★こんな人です

3DCGを活用した映像や没入体験コンテンツの制作をしています。テクノロジーの社会実装に興味があり。テクニカルディレクター。面白いこと新しいことにワクワクする気持ちに『素直』でいつづける。

ラベル Qt の投稿を表示しています。 すべての投稿を表示
ラベル Qt の投稿を表示しています。 すべての投稿を表示

2020年6月14日日曜日

ドラッグアンドドロップしたファイルをリストにして、任意のBatchファイルを作成するPythonツール その1


以前の記事の更新版です。

より、直感的に操作できるように改良。

最終的なゴールは、
こちらのサイトでやってる「シーンファイルをフォルダに入れて」の部分を
「GUIにドラッグしてリスト」にしたら便利じゃないかな、
と思って開発始めました!


<改良点1>
以下の①②の両立ができるようになった!!!
①GUIにファイルをドラッグアンドドロップしてリストに追加
②リスト内をドラッグアンドドロップで並び替え

<改良点2>
BatchテキストのPrefixのAssetを追加。



特に、<改良点1>に関しては
Pyside2とQtdesignerでつくったGUIをつかった環境での資料が少なく・・・
結局トライアンドエラーを繰り返して何とかなった。


備忘録
一番のポイントは
<改良点1>はデフォルトでは両立しないということ。
で、このサイトを参考にして改良。(Thanks!!!)
....
が、しかしうまくいかない。
理由は、「外部ファイルも内部リストも、どちらもドラッグしたときにUrlをもっている」ということ!
つまり、DropEventのときに「Urlをもっていないとき」という条件が満たされず
内部リストの並び替えが処理されないということ。
...
で、トライアンドエラーを繰り返して
最終的に、DropEventの冒頭に
super(......
を記述することで、なんとか解決した。(大丈夫なんか?)


ということで完成!!
もっと汎用的になって、需要があればシェアしようと思います。
以上!


2020年6月13日土曜日

ゼロからはじめる QtDesignerでGUI作成と、Pythonでつくるツール!


ゼロからはじめる
QtDesignerでGUI作成と、Pythonでつくるツール!
(過去のメモです。。。)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


Qtインストール不要
PyQtインストール不要
.uiを.pyに変換も不要

必要なのは

PySide2 + Python

ファイルは
test.py ←今回書いた
test.ui  ←QtDesignerで作成

さらに、pythonw.exeと関連付ければ
test.pyをダブルクリックするだけで起動する。
こりゃ便利。


ーーーーーーーーーーーー
その他 pythonインストール関係

python3.7をインストール。
python2.7も残す。
C:python/に上入れた。


環境変数に
python37
python37/Scripts
を追加。
python37をpython27の上に配置する


PySide2のインストールはコマンドプロンプトから

よく使うコマンドは
pip install PySide2

python関連
import sys
sys.versioin
sys.exec_prefix

モジュールのバージョン確認は
import PySide2
PySide2.__version__


開発はatom。
QtCharm?いいのかな



■windowsでのPCセットアップ

python入っていたらアンインストール
(スタートメニューから確認、プログラムの削除から確認)

python2.7、python3.7の順でインストール
(C/python/Python27        C/python/Python37)

コマンドプロンプトから
pip install PySIde2
 
環境変数の確認
Python37
Python37/Scripts
Phthon27
Python27/Scripts
 
以上























Python pyside2 Qt アイコン作成 勉強用メモ


アイコン作成

アイコン設定
'iconfile' : 'icon.icns',

macでapp化できなかった。
ので、
python3  setup.py py2app -A
でエイリアス作成ならうまくいった。

pip3.7 install -U py2app==0.15
Pysideのエラーは消えた
pip3.7 install -U ordereddict

python pyside2 Qt  勉強メモ


ボタン押したらコマンドじっっこう

pyside2
ファイルオープン
フォルダオープン
ダイアログまとめサイト!

ーーーーーーーーーーーーーーーーーーー
PYthon勉強

Qt for PYthonやる中で 「class」 「 __init__」 が多用。
def(関数)でだましだましやってきましたが
さすがにこの2つ理解せんと。
ということで以下のサイトを3つ読んだ。 完全理解。

コンストラクタ
クラスと関数の違い(超初心者)
⬇️
インスタンスとコンストラクタ完全理解!





2019年12月21日土曜日

Windows で Qt designer を使ったGUIを作成するための PyQt5インストール(Python3.7のインストールから)


■Python3.7インストール
https://www.python.org/downloads/release/python-376/


■環境変数にPython3を追加
python37フォルダ
python37/scriptsフォルダ
※python2が環境変数のPathにあるときは、python3が2の上にくるように

■PyQt5使うためインストール
コマンドプロンプトで実行

pip install SIP
pip install PyQt5

ここでPyQt5のインストールが、pipのバージョン低いという理由でストッぷ!

■pipの更新

py -m pip install --upgrade pip

※pythonにするとpython2が実行されるのでpyで実行

更新されたら、PyQt5もインストールしましょう。

ちなみに。
python -m pip install PyQt5 とするとpython2にインストールされるみたい。


以上でQtが使えるようになる!
------------------------------------------

Qt desinger使いたい人は以下の作業も。
■Qt desingerのインストール

と思ったら、、ん?

・Qt designer
・Qt Creater
・Qt design studio

3つある!?
https://stackoverflow.com/questions/25559332/qt-designer-vs-qt-quick-designer-vs-qt-creator

まぁよくわからないけど
Qt design studio community版 無償版を試してみることに。
https://www.qt.io/blog/qt-design-studio-1.3-released
↓
。。。検証したところ、私のやりたいGUIメインの開発はQt designerで十分。
あとはpythonで書くから。
ということで

Qtのインストール
https://qiita.com/yasumodev/items/399ec89b7205e3c0bab1



---------------------------

僕がやろうとしてることのチュートリアル

PythonのUIをQtで
https://resources.qt.io/development-topic-getting-started-with-qt/creating-user-interfaces-with-qt-for-python-on-demand-webinar


あれ?
いまいち立ち位置がわからないので、もう少し調べよう。
Python用Qt ん?w
https://www.qt.io/qt-for-python




2019年3月15日金曜日

pyqt で 自作スクリプト 備忘録2


備忘録続き

■GUI起動時・閉じたときに実行される処理!
GUIの設定を保存して、次回開くときに設定を保持するには
読み込みpyに以下のdefを追加すると便利!!!

以下、参考サイトのほぼほぼ引用ですが!

class mainUI(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(mainUI, self).__init__(parent)
        self.ui = test_Ui.Ui_MainWindow()
        self.ui.setupUi(self)
        self.load_setting()
    def load_setting(self):
print "LoadSetting!"
    def closeEvent(self, event):
     print "GoodBye!"
def main():
    app = QtGui.QApplication(sys.argv)
    win = mainUI()
    win.show()
    sys.exit(app.exec_())
main()



load_setting
closeEvent

なるほどーこれは便利!!!



■なんじゃこりゃエラー
「UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)」

こちら方の解説通りやったら解決したので、メモメモ

①まずエラーが出る環境で以下を実行

import sys
print(sys.getdefaultencoding())

→結果が ascii ならアウト!(きっとまちがいなくこれ)

②site-packageにあるpyを新規保存
そのためにフォルダ探す

import site
print (site.getsitepackages())
ちなみに私は C:\Program Files\Autodesk\Maya2018\Python\Lib\site-packages でした




③ そして site-package フォルダに以下を保存!

import sys
sys.setdefaultencoding('utf-8')
sitecustomize.py の名前で

④ はい、確認で環境で以下を実行


import sys
print(sys.getdefaultencoding())

→結果が utf-8 なら成功!!



参考にしたサイト ~感謝を込めて~
http://flame-blaze.net/archives/5696
https://qiita.com/jack-low/items/91bf9b5342965352cbeb
http://shu223.hatenablog.com/entry/20111201/1328334689
https://qiita.com/chatrate/items/eb4b05cd1a6652529fd9

2019年3月14日木曜日

QtデザイナーでMaya用スクリプト作成 備忘録


なれないQt

調べながら作ってますが、その備忘録


■チェックボックスの値を変更

self.preview = self.ui.findChild(QtWidgets.QCheckBox,"checkBox_1") 
self.preview.setChecked(0)  #チェックボックスをオフにする

■チェックボックスの値参照・取得
preview =  self.preview.isChecked()


■プルダウンの表示項目変更
self.pullList = self.ui.findChild(QtWidgets.QComboBox,"comboBox") 
self.pullList.setCurrentIndex(1)

■プルダウンの表示項目取得
activeList = self.pullList.currentIndex()
# 0~3など数字で取得できる

■テキストファイルの読み込みと書き込み

1行だけ読み込む  readline()
1行ずつ分けてリストにする readlines()


■メニューバーを押したら実行
self.menuOpenhdr = self.ui.findChild(QtWidgets.QAction,"Help") 
self.menuOpenhdr.triggered.connect(self.openHelpPopup)




参考サイト
https://dftalk.jp/?p=20768
https://www.sejuku.net/blog/62683

2019年3月5日火曜日

MayaにQtをインストール(コマンドプロンプトから)


備忘録

windowsのコマンドプロンプトから行う

手順

①コマンドプロンプトを「管理者で実行」
 →Cドライブに書き込み可能なcmd使えるようになった
②mayapy.exeのフォルダまで移動(cd /d "C:\Program Files\Autodesk\(Mayaのバージョン)\bin")
 → cmdでmayapyが使えるようになった
③ここで、pipインストーラをDL(https://bootstrap.pypa.io/get-pip.py)
④cmd mayapy で↑を実行
 → mayapyでpipが使えるようになった
⑤cmd mayapy pip でQtをインストール
 →Maya本体でQtが使えるようになった

以上。
Mayaで import Qt してみて。








参考
大部分
https://unpyside.wixsite.com/unpyside/single-post/2017/03/30/PySide-PyQt4%E3%81%A8PySide2-PyQt5%E9%96%8B%E7%99%BA%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97
mayapy部分
https://qiita.com/it_ks/items/5045c99461cb6edef761