Qt & Photoshop @ Mac migration problem



  • Hello friends,

    I'm writing a photoshop plugin on Mac, and want to create the UI with Qt. But when I just show a simple dialog, the photoshop menu was gone, and wasn't responsible even after close the dialog.

    @void PhotoshopPlugin::ShowDialog( )
    {
    int argc = 0;
    QApplication a(argc, 0);

       HelloDialog w(NULL, 0);
       w.show();
       a.exec();
    

    }@

    I know the QmfcApp for windows, which will handle the Qt & MFC migration, and it works for me. But I can't find a Mac version of the qmfcApp.

    Any suggestions will be greatly appreciated.

    Thanks,
    Daniel

    [EDIT: title adjusted to match the actual question, Volker]



  • Hi,

    How is photoshop implemented?
    You create a QApplication object, which will have influence to the event loop. and then spin the event loop inside your plugin (a.exec()) ....



  • You must use Adobe's means to implement the user interface. You can not use Qt for this (or with only such big effort that it is not worth it).



  • You are not allowed to create photoshop plugin by Qt ...You have to use Photoshop API...



  • Of course, one can use Qt library functions (eg. the string and xml classes) to create a photoshop plugin (as well as eg. an InDesign plugin). One has to follow LGPL rules and provide the DLLs in an appropriate directory or use a commercial license and link statically. The GUI is a different beast, this is subject to Adobe's API as mentioned earlier.



  • One of the largest companies that develops Photoshop plug-ins, "AlienSkin":http://www.alienskin.com/, use Qt. I don't know if their GUI dialogs are made with Qt, but in Windows OS, their plug-in distribution contain QtGUI4.dll.

    [EDIT: fixed link name, Volker]



  • Maybe they are just loading and using classes like QPixmap,QBitmap or something like that...but it requires to use Photoshop API to work (as plug-in) with Photoshop UI...



  • thanks guys, I was using the Adobe's way to do the UI (which is ADM suites), but sadly they don't support 64bit. Anyway, I find a post ("http://bugreports.qt.nokia.com/browse/QTBUG-8087":http://bugreports.qt.nokia.com/browse/QTBUG-8087), which works for me.



  • No, you're not obliged to use ADM (Adobe Dialog Manager) to develop Photoshop GUI plug-ins. I have developed several plug-ins for Photoshop, but I've used native Win32 API. Anyway, in the future I'll try to port them to Qt framework.



  • Could anyone give more info about using QT for creating the GUI for Photoshop GUI?
    Thanks.



  • Hi,
    I assume you have some knowledge about "Adobe Photoshop SDK":http://www.adobe.com/devnet/photoshop.html So in
    @
    FilterRecord::filterSelectorStart
    @

    at least on windows platform, you can init QApplication and next raise a modal dialog box with your UI. I emphasize to use modal dialog box because this enters a local event loop. Note that I did not tested this on Mac, see @frinker first comment.



  • Hi,

    Make this the first line (before QApplication instance)

    QApplication::setAttribute(Qt::AA_MacPluginApplication);


Log in to reply