有没有办法在Qt中添加NSColorWell颜色选择器?

时间:2012-05-07 08:54:26

标签: macos qt qt4

Mac OS X有一个标准颜色选择按钮(Cocoa类:NSColorWell)。

有没有办法在Qt中使用这些产品的Mac版本?

我在Mac OS X 10.6上使用Qt 4.8.1。

1 个答案:

答案 0 :(得分:2)

QMacCocoaViewContainer可以处理这样的情况。基本用法是:

class MacControl : public QMacCocoaViewContainer {
  Q_OBJECT

 public:
  explicit MacControl(QWidget *parent = NULL)
    : QMacCocoaViewContainer(NULL, parent) {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    NSColorWell *colors = [[NSColorWell alloc] init];
    // set properties on color well
    setCocoaView(color);
    [colors release];
    [pool release];
  }

实际上,如果您正在为多个平台进行编译,则可能无法将其全部放在一个文件中。你会有一个头文件声明一个可以从任何平台调用的方法,一个cpp文件通过调用非Mac的普通Qt颜色对话框来实现该方法,还有一个mm文件创建特定于Mac的小部件并显示它。