希望我的问题有意义。刚开始使用 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