4

希望我的问题有意义。刚开始使用 Qt,所以请多多包涵。

我在 Objective-C 中有一个应用程序(适用于 iOS),我正在尝试在 Qt 中添加一段代码。

大多数 UI 都在 Objective-C 中(意思是我有 UIViews、UIViewControllers ......),只有一部分应该在 Qt 中处理。

要在 Qt 中创建 UI 元素,我想我需要创建一些继承自 QWidget 的东西。

但是我如何将这个 QWidget 的父级设置为我的 UIView 元素之一?

我知道在 Qt 中做所有事情会更容易,但这只是很多工作,所以这就是为什么我希望我可以将 UI 的一部分保留在 Objective-C 中,而将另一部分保留在 Qt 中。

谢谢你的帮助

--

编辑

好吧,我从这里开始遵循示例。即使它适用于 Mac OS。

QWidget * qWidget = new QWidget();
qWidget->move(0, 0);
qWidget->setPalette(QPalette(Qt::red));
qWidget->setAutoFillBackground(true);
QVBoxLayout *layout = new QVBoxLayout();
QPushButton *pushButton = new QPushButton("An Embedded Qt Button!", qWidget);
pushButton->setAttribute(Qt::WA_LayoutUsesWidgetRect);
layout->addWidget(pushButton);
qWidget->setLayout(layout);

// Adjust Cocoa layouts
UIView *uiWidgetView = (__bridge UIView *)((void*)qWidget->winId()); // Fancy cast for ARC

// Add the widget
[self.view addSubview:uiWidgetView];
qWidget->show();
pushButton->show();

但它似乎不适用于 iOS ......我有两条消息:

- 这个插件不支持propagateSizeHints() 不知道如何修复那个

-QIOSBackingStore 需要和它的窗口大小一样这里 引用了这个。似乎还没有修复。

注意:在我当前的视图中添加一个简单的 uiview(如 uilabel)可以正常工作。只是这个由于某种原因似乎没有呈现......:s

4

0 回答 0