gpt4 book ai didi

cocoa - Qt 中的 Mac HUD 窗口

转载 作者:行者123 更新时间:2023-12-03 18:06:34 34 4
gpt4 key购买 nike

我正在尝试创建一个 HUD,它是 Qt 中的 NSPanel。我按照 qt 文档中的建议使用 QMacCocoaViewContainer。

在HUD.h中

#import <QWidget>
#import <QMacCocoaViewContainer>


class HUD : public QMacCocoaViewContainer
{
public:
HUD(QWidget* parent);
};

在HUD.mm

#import "HUD.h"
#import <Cocoa/Cocoa.h>

HUD::HUD(QWidget* parent) : QMacCocoaViewContainer(0,parent)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

NSPanel *panel = [[NSPanel alloc] initWithContentRect: NSRectFromCGRect(CGRectMake(0,0,250,250))
styleMask:NSHUDWindowMask | NSTitledWindowMask | NSUtilityWindowMask
backing:NSBackingStoreBuffered
defer:YES
screen:[[NSApp mainWindow] screen]];

setCocoaView(panel);


[panel release];
[pool release];
}

每次运行它时,我都会收到一条错误消息,指出 [NSPanel window]: 无法识别的选择器已发送到实例 0x21231f0。有人有幸混合 Qt 和 Cocoa 吗?您使用过什么技巧来使其发挥作用吗?

最佳答案

听起来这个类应该拥有一个 View ,而不是一个窗口。 NSPanel 是一个窗口,因此将其提供给需要 View 的对象是行不通的。

创建一个 View 并将其提供给 View 容器,或者使用带有窗口的等效类。

关于cocoa - Qt 中的 Mac HUD 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1489451/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com