Изменение размера QTCaptureView, встроенного в приложение Qt - PullRequest
0 голосов
/ 26 апреля 2011

Итак, я хочу иметь приложение на 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 вне Интерфейсного Разработчика и внутри кода, я буду очень признателен.

1 Ответ

0 голосов
/ 26 апреля 2011
...