Skocz do zawartości

KrzyM

Members
  • Rejestracja

  • Ostatnia wizyta

Zawartość dodana przez KrzyM

  1. KrzyM odpowiedział KrzyM → na odpowiedź w temacie → Programs Languages
    Dzięki wielkie ;) QT designer używam, ten skrypt chciałem napisać ręcznie żeby zobaczyć co i jak. Pewnie nie zawsze uda mi się coś zrobić qdesignerem ;) Po testuje wszystko co mi napisałeś i będę się odzywać. Faktycznie paste bin jakoś dziwnie to wkleił, ja używam 1tab jako indent, więc chyba 1tb = 4 space. Doszły mi już książki z Pythona więc trochę przystopuje po pracy kodowanie i poczytam ;) Jeszcze 1 ;) A jak zrobić frameLayout rozwijany jak w mayce? Może ja złych elementów używam. Chciałem użyć QFRAME, ale jak coś do niego wrzucę to jest zfreezowane. Jeszcze nie udało mi się nic znaleźć na ten temat
  2. KrzyM dodał odpowiedź w temacie → w Programs Languages
    Hej Zakładam jeden temat z pytaniami, mam nadzieje że tak będzie łatwiej. kto wie to bardzo proszę o pomoc ;) 1. Brakuje mi frameLayout z mayi, jak to rozwiązujecie z PySide? Zacząłem pisać swoją funkcję, ale na samym początku natknąłem się na problem. Stworzyłem QFRAME a w nim layout. tylko jak dodam elementy do QFrama to one są od razu zfreezowane. Nigdzie nie znalazłem jeszcze jak je odblokować. http://doc.qt.io/qt-4.8/qpushbutton-members.html http://doc.qt.io/qt-4.8/qframe-members.html Mój kod http://pastebin.com/LVetMStz 2. Jak ustawić ikonę w przycisku? Kod ^ . Próbowałem przez setIcon, style coś nie mogę tego uruchomić. 3. Zauważyłem że przez reload(). Moje UI potrafi się zawiesić. Albo nie mogę go w ogóle wyłączyć, albo zawiesza mayę. - tak wywołuję Okno http://pastebin.com/4DJ1JsCR - tym skryptem z Shelfa http://pastebin.com/NKYtQVHE Czytałem o różnych metodach, zostałem przy jednej bo wytrzymuje najdłużej. Ale nie jest to chyba rozwiązanie idealne. 4. Jak zrobić przycisk do pobierania danych ze sceny? Klikam "Pick Mesh" i dopiero wtedy klikam na scene. Z góry dziękuje za poświęcony czas ;) Pozdro, Krzysiek
  3. KrzyM odpowiedział Reanimator → na odpowiedź w temacie → Teksturowanie / Texturing
    Bardzo proste niestety: http://cpetry.github.io/NormalMap-Online/ http://www.smart-page.net/smartnormal/ Crazy bump super.
  4. Dzięki ;) Zabieram się do pracy
  5. Ogólnie robić całe UI w PySide? Nie używać Maykowego? A co z PyQT? Jeszcze nie bardzo widzę różnicę między PySide a PyQt.
  6. Dziękuje wam ;) PySide mam na liście ;) Moje rozwiązanie z góry było skazane na porażkę bo to pierwszy skrypt i tylko forma nauki. Znacie jakieś dobre źródła wiedzy? Obecnie przeglądam tylko manual i czytam "Maya Python for games and film"
  7. Dzięki za pomoc ;)
  8. Reanimator, dzięki - działa super. Muszę przestudiować funkcje wbudowane w Pythona ;) Podrzucisz mi jakieś hasło pod którym znajdę jakieś wytłumaczenie dla tych nawiasów: mod.{0}() Szczerze to nie do końca rozumiem. Praetorian - Reanimator rozwiązał problem. Nie bardzo rozumiem twój kod, ale domyślam się że chodzi o ścieżkę? Ja stworzyłem sobie zmienną w env i przez shelfa główny skrypt wywołuje tak: import os try: riggingToolRoot = os.environ["RIGGING_TOOL_ROOT"] except: print "RIGGING_TOOL_ROOT environment variable not correctly configured" else: import sys print "Running: " + riggingToolRoot path = riggingToolRoot + "/Modules" if not path in sys.path: sys.path.append(path) import System.ktoolsUI as kUI reload(kUI) UI = kUI.Ktools_UI() może to jakoś uzupełni moje poprzednio 2 wklejony kody.
  9. Mam problem żeby to zrobić. Załóżmy że mamy moduły: Toolbox, PoseSaver, AutoRig - każdy z nich znajduje się w folderze o tej samej nazwie np. Modules/Toolbox w każdym z tych folderów niezależnie jaki to będzie skrypt, przyjąłem że będzie plik główny nazwaModułu_UI.py i klasą o nazwie modułu teraz skrypt KTools.py tworzy poprostu przycisk dla każdego z tych modułów i wywołuje funkcje runPlugin udało mi się "dynamicznie" zaimportować pluginy w pętli #np dla import Toolbox/Toolbox as mod; reload(mod) mod = __import__(plugin+"."+plugin_UI, {},{},[plugin]) reload(mod) - i tutaj zaczyna się problem. żeby np. odpalić Toolbox.py muszę napisać mod.Toolbox() i analogicznie do innych pluginów. nazwę pluginu mam w zmiennej, ale szukam sposobu jak sprawić żeby zadziałało mod.Plugin_UI() Coś jak shelf - przycisk uruchamiający dany skrypt. Ale przy założeniu że mamy N skryptów. Próbowałem coś z exec, partial ale bez skutku. Sory że tak bez składnie to piszę, ale wynika to raczej z mojej niewiedzy o Pythonie - zacząłem się bawić kilka dni temu i jeszcze nie ogarniam wielu elementów.
  10. Hej, Dopiero zaczynam uczyć się pythona i utknąłem w punkcie. Mam plik toolsUI.py który przeszukuje folder Modules i dla każdego tworzy przycisk - problem jest że chciałbym żeby każdy przycisk wywoływał odpowiednie okno. Udało mi się już zaimportować każdy moduł do skryptu. np. ToolboxUI.py, jeśli w przycisku wywołam UI = mod.ToolboxUI() to bez problemu otworzy mi się Toolbox. Jednak nie mogę znaleźć sposobu jak automatycznie wywoływać wszystkie skrypty np. coś w stylu plugin = "ToolboxUI()" UI = mod.plugin Mam nadzieje że ktoś jest w stanie mi pomóc ;) Pozdro, Krzysiek Poniżej kod: kTools.py import maya.cmds as cmds import os import System.utils as utils reload(utils) import sys from functools import partial class Ktools_UI: def __init__(self): #uiElements dict self.UIElements = {} if cmds.window("Ktools_UI_Window", exists = True): cmds.deleteUI("Ktools_UI_Window") windowWidth = 200 #Main Window self.UIElements["window"] = cmds.window( "Ktools_UI_Window", menuBar=False, title="KTools", mnb=False, mxb=False ) self.UIElements["columnLayout"] = cmds.columnLayout (adjustableColumn = True, columnAlign="center") self.createPluginsButtons() cmds.showWindow(self.UIElements["window"]) cmds.window(self.UIElements["window"], edit=True, w = windowWidth, sizeable=True) def createPluginsButtons(self): windowHeight = 0 #Plugin folder path systemPath = "System" pluginPath = os.environ["RIGGING_TOOL_ROOT"] + "/modules/" plugins = os.listdir(pluginPath) plugin_list = [] #find modules for plugin in plugins: if ((plugin != "__init__.py") and (plugin != systemPath)): plugin_list.append(plugin) #create buttons for plugin_name in plugin_list: plugin_UI = plugin_name + "UI" #check for UI file for module in utils.findAllModules("Modules/"+ plugin_name): if (module == plugin_UI): #print "UI file found: " + module self.UIElements[(plugin_name + "_button")] = cmds.button( label = plugin_name, h = 64, parent = self.UIElements["columnLayout"], bgc=utils.randomBGC(), c = partial(self.runPlugin, plugin_name) ) windowHeight = windowHeight + 64 cmds.window(self.UIElements["window"], edit=True, h = windowHeight, sizeable=True) def runPlugin(self, plugin, *args): plugin_UI = plugin + "UI" mod = __import__(plugin+"."+plugin_UI, {},{},[plugin]) #btw. class_name is the same as plugin_UI #just testing class_name = mod.CLASS_NAME plugin_UI = plugin + "UI" mod = __import__(plugin+"."+plugin_UI, {},{},[plugin]) reload(mod) class_name = mod.CLASS_NAME #this works UI = mod.ToolboxUI() #e.g. pluginUI == ToolboxUI() #how to run #UI = mod.pluginUI() toolboxUI.py import maya.cmds as cmds import os import maya.mel as mel import toolbox_utils as tU reload(tU) from functools import partial import System.utils as utils reload(utils) CLASS_NAME="ToolboxUI" class ToolboxUI: def __init__(self): self.UIElements = {} windowHeight = 450 windowWidth = 212 if cmds.window("Toolbox", exists = True): cmds.deleteUI("Toolbox") self.UIElements["window"] = cmds.window("Toolbox", mnb=False, mxb=False) self.UIElements["scrollLayout"] = cmds.scrollLayout(hst=0) self.UIElements["mainLayout"] = cmds.columnLayout(adj = True, parent=self.UIElements["scrollLayout"]) cmds.showWindow(self.UIElements["window"]) cmds.window(self.UIElements["window"], edit = True, w=windowWidth, h=windowHeight, sizeable=False) windowHeight3 = self.populateIcons()

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności