On thing I can think of is that my UI here is from pyuic.exe and QtDesigner, would it be an issue if it's from an older version (4.8 or 4.9, can't remember which exactly at this point, but I think 4.8.3)?
On Mon, Feb 24, 2014 at 11:46 AM, Joe Weidenbach <[email protected]> wrote: > Justin, this code works: > > from PyQt4 import QtGui, QtCore > > class TestWin(QtGui.QWidget): > def __init__(self, parent=None): > super(TestWin, self).__init__(parent) > layout = QtGui.QVBoxLayout() > > btn = QtGui.QPushButton("Test") > btn.clicked.connect(self.testBtn) > layout.addWidget(btn) > self.setLayout(layout) > > def testBtn(self): > print "I was pressed" > > > win = TestWin() > win.show() > > So it looks like signals and slots are working for this, but something > else might be up in my code that's causing this. I find it odd that it > works up until 2014 though--is it that big of a leap between Python 2.6.4 > and 2.7.3 (or same with PyQt 4.9 to PyQT 4.10.3)? > > Also, when you say wrapper display method, David, are there any specifics > you're referring to? I'm just looking for vectors to track down the > problem--I've got a demo of my project with a big studio this week for a > portfolio review, and I reverted my tablet back to 2013 so it works, but > that adds other issues with some of my rigs. > > > On Mon, Feb 24, 2014 at 5:42 AM, David Moulder > <[email protected]>wrote: > >> I've had this in 2014 a few times. Just one UI didn't respond to >> signals. Then every now and again it would start working. I eventually >> took out my wrapper display method that I use for all my UI's and then it >> worked! >> >> Still concerned that it might come back. >> >> >> On Mon, Feb 24, 2014 at 12:30 AM, Justin Israel >> <[email protected]>wrote: >> >>> Does a really simple test where you show a generic button that prints >>> something when clicked not work either? >>> Just wondering if its only related to your existing code, or PyQt not >>> working in general. >>> On Feb 24, 2014 10:24 AM, "Joe Weidenbach" <[email protected]> wrote: >>> >>>> Ok, very weird issue now. I'm using my compiled PyQt in Maya 2014, >>>> and my interface comes up great. The problem is this--Signals and Slots >>>> seem to have died. NONE of my buttons actually seem to work. The same >>>> script works perfectly in 2012/2013. I've even taken my code and just put >>>> a print line into the slot and it never gets printed, which tells me that >>>> the signals aren't working. I'm using new-style signals and slots, which I >>>> don't think should be an issue. >>>> >>>> Has anyone seen this, where the code works in one version of Maya and >>>> not another? I can post more code, but I don't know that it's particularly >>>> relevant (and is spread across a lot of files--I know, not very Pythonic, >>>> but I'm a C# guy, and this is supposed to be modular). >>>> >>>> The gist is this: >>>> >>>> from PyQt4 import QtCore, QtGui >>>> >>>> import resources >>>> >>>> import globalsettingsdlg >>>> reload(globalsettingsdlg) >>>> from globalsettingsdlg import GlobalSettingsDlg >>>> >>>> from ..utils import gui as GuiUtils >>>> >>>> from creator import centralwidget as cw, bonestudiowidget as bs >>>> reload(cw) >>>> >>>> from jdCRT.bonestudio import nodes >>>> reload(nodes) >>>> >>>> class jdCRT_CentralWidget(QtGui.QWidget, cw.Ui_jdCRT_CentralWidget): >>>> def __init__(self, parent=None): >>>> super(jdCRT_CentralWidget, self).__init__(parent) >>>> self.setupUi(self) >>>> self.initBoneStudioBTN.clicked.connect(self.initSkeleton) >>>> >>>> def initSkeleton(self, *args): >>>> skel = nodes.Skeleton() >>>> >>>> >>>> class MainWindow(QtGui.QMainWindow): >>>> def __init__(self, parent=None): >>>> if parent == None: >>>> parent = GuiUtils.getMainWindow() >>>> super(MainWindow, self).__init__(parent) >>>> self.setWindowTitle("Character Rigging Tools") >>>> >>>> self.mainWidget = jdCRT_CentralWidget() >>>> self.mainWidget.tabWidget.setCurrentIndex(0) >>>> self.setCentralWidget(self.mainWidget) >>>> >>>> # Menu Bar >>>> toolsMenu = self.menuBar().addMenu("&Tools") >>>> settingsAction = >>>> QtGui.QAction(QtGui.QIcon(":icons/MainSettingsIcon.png"), "&Settings", >>>> self) >>>> helpText = "jdCRT Settings" >>>> settingsAction.setToolTip(helpText) >>>> settingsAction.setStatusTip(helpText) >>>> settingsAction.triggered.connect(self.SettingsWin) >>>> toolsMenu.addActions((settingsAction,)) >>>> >>>> # Status Bar >>>> self.statusLabel = QtGui.QLabel() >>>> >>>> self.statusLabel.setFrameStyle(QtGui.QFrame.StyledPanel|QtGui.QFrame.Sunken) >>>> status = self.statusBar() >>>> status.setSizeGripEnabled(False) >>>> status.addPermanentWidget(self.statusLabel) >>>> status.showMessage("Ready", 5000) >>>> >>>> self.show() >>>> self.raise_() >>>> >>>> def SettingsWin(self): >>>> print "Calling Settings Window" >>>> self.settingsWin = GlobalSettingsDlg(self) >>>> #self.settingsWin.show() >>>> settingsWin.exec_() >>>> >>>> Both InitSkeleton (From a QPushButton) and SettingsWin (From a Menu >>>> Action) are not actually being called. >>>> >>>> On 2/18/2014 8:24 PM, Joe Weidenbach wrote: >>>> >>>> Just a quick update, the build of PyQt for 2014 went swimmingly >>>> straight from Autodesk's instructions. >>>> >>>> On 2/16/2014 2:17 PM, Joe Weidenbach wrote: >>>> >>>> And now I answered my own question LOL--apparently you don't need to >>>> build qt anymore to build PyQT :) I'll see how things go. >>>> >>>> On 2/16/2014 2:14 PM, Joe Weidenbach wrote: >>>> >>>> I updated the topic since it's off the original at this point. >>>> >>>> That's on a "one of these days" list for me. My tool is for my >>>> Master's Thesis, and part of the original specification was that it would >>>> run on any version of Maya that supports Python. I got an adjustment to >>>> allow for PyQt, but if I moved to PySide I'd at the very least have to set >>>> up dual compatibility for older versions of Maya. Although, I'd really >>>> like to get this functional for 2014, has anyone had any luck getting PyQt >>>> to compile for it? I've never been able to get Qt to finish compiling >>>> without erroring out when following the Autodesk instructions, so I've >>>> never been able to build PyQt natively (and had to rely on pre-built >>>> versions). >>>> >>>> On 2/16/2014 2:06 PM, Justin Israel wrote: >>>> >>>> Also if you use PySide (which is now distributed with Maya 2014), their >>>> API is more like SIP v2, where they don't have the QVariants at all, as >>>> well as no QStrings. >>>> >>>> >>>> On Mon, Feb 17, 2014 at 10:58 AM, Joe Weidenbach <[email protected]>wrote: >>>> >>>>> The biggest thing for me has been to embrace the widget model. I >>>>> had a lot of struggles trying to convert existing Maya interfaces over, >>>>> which led to a lot of "how do I get x interface element in PyQt" questions >>>>> (The framelayout was a particular headache for me, but I learned a lot >>>>> about the internals of the layout system trying to rebuild it). The thing >>>>> is, PyQt gives you the base widgets to build just about anything you want, >>>>> where maya gives you a lot of prebuilt interfaces so you can build very >>>>> rapidly (while losing some flexibility in the process). >>>>> >>>>> So for me, the key was to redesign my interfaces from the ground >>>>> up--not thinking about "how can I recreate this existing interface?", and >>>>> instead thinking about "How do I want the user to experience this tool?" >>>>> It was a bit painful with all of the existing work I'd put in before I hit >>>>> the limits of Maya's interface functionality, but once I started >>>>> redesigning I realized that a lot of the choices I'd made before were to >>>>> work within the limitations of the old system, and I was wasting a lot of >>>>> time trying to recreate something that wasn't really necessary. From >>>>> there, >>>>> it was just "which element will accomplish what I'm looking for," and >>>>> then >>>>> diving into the documentation and forums to figure out how to do it. >>>>> >>>>> Working with the Qt Model/View/Delegate system has also been >>>>> challenging, but no more so than it was with WPF for me. The biggest >>>>> challenge there is in working with the QVariants that Qt uses internally. >>>>> I also just discovered that you can put a definition in your imports to >>>>> remove QVariants entirely for sip, but at this point my codebase has >>>>> gotten >>>>> rather large again so I just deal with them. >>>>> >>>>> >>>>> On 2/16/2014 1:48 AM, Mark Serena wrote: >>>>> >>>>> Cheers Joe. Any other things helped you get a grasp of it? Always good >>>>> to find some golden egg hidden on the inter-web/warren >>>>> >>>>> >>>>> On Sun, Feb 16, 2014 at 5:06 PM, Joe Weidenbach <[email protected]>wrote: >>>>> >>>>>> Hey Mark, >>>>>> >>>>>> Just wanted to throw this out to you, I switched to PyQt about 8 >>>>>> months ago, and am finally getting the hang of it (of course I'm working >>>>>> on >>>>>> it part time between school, my day job (Where I use C# with WPF), my >>>>>> second job, and running an indie game development team, so that could >>>>>> contribute to how long it's taken me to pick it up :P). It does take >>>>>> time >>>>>> to get used to the PyQt thought process, but it will come. Of all the >>>>>> resources I've used, I keep coming back to Justin's, so you're on the >>>>>> right >>>>>> track with that one. >>>>>> >>>>>> Best of luck, >>>>>> >>>>>> Joe >>>>>> >>>>>> >>>>>> On 2/15/2014 5:39 PM, Mark Serena wrote: >>>>>> >>>>>> Cool, well there's a lot of new territory for me to cover, I'm >>>>>> currently watching your cmiVFX vid on PyQt and also got the one off >>>>>> CGSociety, so hopefully I'll feel less lost soon. >>>>>> Thanks again Justin. >>>>>> >>>>>> >>>>>> On Sun, Feb 16, 2014 at 12:35 PM, Justin Israel < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hah, ya no worries. This wasn't the type of question I had posted >>>>>>> about. It was based on my existing previous example, and more >>>>>>> theoretical >>>>>>> about how much could be done with the render view panel. I was >>>>>>> interested >>>>>>> in testing it. >>>>>>> >>>>>>> Technically mostly everything in the Maya UI can be hijacked to some >>>>>>> extent. The render view button calls a runtime command that you could >>>>>>> probably swap out to launch yours. If you made your app a scripted >>>>>>> plugin, >>>>>>> then you could have it hijack that functionality on plugin load, and >>>>>>> restore it on unload maybe. >>>>>>> On Feb 16, 2014 2:26 PM, "Mark Serena" <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>>> Ooooo that's perfect!!! Thank you very much for looking into that >>>>>>>> Justin, I remember your post about people asking questions and >>>>>>>> expecting >>>>>>>> the answer laid out for them, I wasn't trying to coax you into writing >>>>>>>> anything, but thank you for the example! >>>>>>>> It's possible to make the default render button launch my new UI >>>>>>>> right? I'm sure the Charcoal Script Editor that Chris Zubrigg does >>>>>>>> this. I >>>>>>>> might look into that and that should stop the focus being stolen? >>>>>>>> >>>>>>>> Thanks again! >>>>>>>> >>>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Python Programming for Autodesk Maya" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/python_inside_maya/CACfkVJc1bK3gtw-qi43-uG-fnhfT8Y5xhbe4eLLvyTv59wuU8A%40mail.gmail.com. >>>>>> >>>>>> >>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>> >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to a topic in >>>>>> the Google Groups "Python Programming for Autodesk Maya" group. >>>>>> To unsubscribe from this topic, visit >>>>>> https://groups.google.com/d/topic/python_inside_maya/pTUd6aYeQCg/unsubscribe >>>>>> . >>>>>> To unsubscribe from this group and all its topics, send an email to >>>>>> [email protected]. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/python_inside_maya/53005571.3090308%40gmail.com. >>>>>> >>>>>> >>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>> >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Python Programming for Autodesk Maya" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/python_inside_maya/CACfkVJeifenCBy-sY6DUU8_e571SBUFBgu78N3tPnHXvraZgVw%40mail.gmail.com >>>>> . >>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>> >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Python Programming for Autodesk Maya" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/python_inside_maya/53013486.2000502%40gmail.com. >>>>> >>>>> >>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Python Programming for Autodesk Maya" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/python_inside_maya/CAPGFgA3HTLNhMaiiHgsm5scE1r%2B%3DH8QJb6jVbenm2XwwgoBSmA%40mail.gmail.com >>>> . >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Python Programming for Autodesk Maya" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/python_inside_maya/530A671D.6010607%40gmail.com >>>> . >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Python Programming for Autodesk Maya" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/python_inside_maya/CAPGFgA08dDqJzfqNriUiQ0MatX0CC%3Di8mzL%2BFgr3SuuUHpzhtw%40mail.gmail.com >>> . >>> >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >> >> >> >> -- >> *David Moulder* >> Technical Animator / Artist >> [email protected] >> *Professional Profile >> <http://uk.linkedin.com/pub/david-moulder/1/b12/b5a>* >> >> Mobile: +44 (0)7814033242 >> See who we know in >> common<http://www.linkedin.com/e/wwk/5748982/?hs=false&tok=3tztwkse1silw1> >> Want >> a signature like >> this?<http://www.linkedin.com/e/sig/5748982/?hs=false&tok=3pwLU9-mBsilw1> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Python Programming for Autodesk Maya" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/python_inside_maya/CABD4PkRYUN6BsZiFVr%2B_1W4nuMXvMMXbyEBf%3D8yo6Z3HaXqONw%40mail.gmail.com >> . >> >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/CAM33%3Da6y0rbXC2jCssA6pgi3weu6SyHq0W513bX0ROEx73tS%3DQ%40mail.gmail.com. For more options, visit https://groups.google.com/groups/opt_out.
