Qt for winrt结合Winrt API开发
Qt for winrt开发的程序即是windows应用商店程序,可以转换成vs2013能加载的项目,随即可以调用winrt api控制系统设备、资源。
Vs2013加载了Qt项目后,还需配置项目属性使用windows运行时库扩展,随后才能调用winrt api。
一、调用摄像头
要调用摄像头可用到Windows::Media::Capture::CameraCaptureUI类,该类会显示出系统自带的摄像头界面,既可以拍照也可以录像。注意它有很多命名空间,想直接用该类要引用它的命名空间。如:
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Navigation;
using namespace Windows::UI::Xaml::Media::Imaging;
using namespace Windows::Media::Capture;
using namespace Windows::Storage;
或者转到它的定义,会看到对象浏览器,可找到各种各样的类以及它的成员和功能描述。
1. 拍照
try
{
CameraCaptureUI^ dialog = ref new CameraCaptureUI();
dialog->PhotoSettings->CroppedAspectRatio = Size(16, 9);
concurrency::task<StorageFile^> (dialog->CaptureFileAsync(CameraCaptureUIMode::Photo)).then([this] (StorageFile^ file)
{
if (nullptr != file)
{
concurrency::task<Streams::IRandomAccessStream^> (file->OpenAsync(FileAccessMode::Read)).then([this] (Streams::IRandomAccessStream^ stream)
{
BitmapImage^ bitmapImage = ref new BitmapImage();
bitmapImage->SetSource(stream);
this->CapturedPhoto->Source = bitmapImage;
ResetButton->Visibility =