1

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

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

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

4

1 回答 1

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 特定小部件并显示它的文件。

于 2012-05-07T12:32:10.217 回答