Mac OS X 有一个标准的颜色选择按钮(Cocoa 类:NSColorWell)。
有没有办法在 Qt 中将这些用于我的产品的 Mac 版本?
我在 Mac OS X 10.6 上使用 Qt 4.8.1。
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 特定小部件并显示它的文件。