Qt & Photoshop @ Mac migration problem
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.
[EDIT: title adjusted to match the actual question, Volker]
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?
I assume you have some knowledge about "Adobe Photoshop SDK":http://www.adobe.com/devnet/photoshop.html So in
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.
Make this the first line (before QApplication instance)