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