Итак, я хочу иметь приложение на Mac, которое будет показывать предварительный просмотр видео в реальном времени через iSight, позволяя пользователям делать снимки.По сути, это похоже на демонстрацию Still Motion, но теперь мне нужно заставить ее работать в приложении Qt.То есть у меня есть mm-файлы, которые в основном придерживаются структуры c ++, со случайными сообщениями Obj-c.В настоящее время у меня проблемы с размещением QTCaptureView с остальной частью модуля Qt.
Прямо сейчас мне удалось поместить его в графический интерфейс Qt через QMacCocoaViewContainer, и я хотел изменить его размер до соответствующего размера;поскольку мы больше не можем использовать Interface Builder, я должен как-то его кодировать.Я попытался установить его рамку и границы сразу после того, как я его создал, но это не имеет никакого значения.
CCaptureViewWidget::CCaptureViewWidget(QWidget *parent) :
QMacCocoaViewContainer(0, parent)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSRect kVideoFrame = NSMakeRect( 100.0f, 100.0f, 400.0f, 300.0f );
QTCaptureView *camView = [[QTCaptureView alloc] initWithFrame:kVideoFrame];
[camView setFrame:kVideoFrame];
[camView setBounds:kVideoFrame];
NSRect ourPreviewBounds = [ camView previewBounds ];
NSColor *pFillColor = [ [NSColor colorWithDeviceRed:0.0f green:1.0f blue:0.0f alpha:1.0f] copy];
[camView setFillColor:pFillColor];
[camView setPreservesAspectRatio:YES];
[camView setNeedsDisplay:YES];
setCocoaView( camView );
[camView release];
[pool release];
}
Наше ourPreviewBounds, насколько я могу судить по отладчику в XCode, имеет размер0x0, даже после вызова setFrame и setBounds.И просто чтобы доказать, что camView действителен, мне удалось изменить цвет заливки QTCaptureView.
Я прочитал из источников, что переопределение QTCaptureView previewBounds может быть вариантом, но я не смог найти ни одногорабочие примеры этого.
Если кто-нибудь подскажет, как изменить размер QTCaptureView вне Интерфейсного Разработчика и внутри кода, я буду очень признателен.