Qt6 IOS QML QIOSApplicationDelegate запускает делегат, но Main.qml не отображается (экран черный)IOS

Программируем под IOS
Anonymous
Qt6 IOS QML QIOSApplicationDelegate запускает делегат, но Main.qml не отображается (экран черный)

Сообщение Anonymous »

Я потратил много часов, пытаясь заставить простое приложение QML IOS запускать делегат UIApplication, а также запускать и отображать компонент Main.qml для более крупного приложения, которое я хотел бы создать.
Я использую Qt 6.8.1 на MacOS Sonoma 14.6.1, Qt Creator 15.0.0
Я пробовал запустить его как на симуляторе IOS, так и на устройстве Iphone с тем же результат.
Проблема в том, что все работает, за исключением того, что Main.qml не отображается.
Экран просто черный. Я могу закрыть приложение и открыть его, и делегаты UIApplication
вызываются, как и ожидалось, но экран всегда черный. Я пробовал несколько других
решений, ни одно из которых мне не удалось заставить работать правильно.
Я включил выходные данные, когда запускаю его, чтобы вы могли видеть, что все выглядит так. работает
как и ожидалось, за исключением визуального отображения.
Любая помощь и/или предложения приветствуются.
Спасибо!
Main.qml:
import QtQuick
import QtQuick.Window
import QtQuick.Controls

ApplicationWindow {
width: 640
height: 480
visible: true
color: "green"

Component.onCompleted: {
console.log("Main.qml Completed")
}

onVisibleChanged: console.log("Main.qml: visible: " + visible)

Text {
text: "My Application"
color: "white"
anchors.centerIn: parent
font.pixelSize: 26
}
}

AppDelegate.h:
#import

@interface QIOSApplicationDelegate : UIResponder
@property (strong, nonatomic) UIWindow *window;
@end

AppDelegate.mm
// AppDelegate.mm
#import "AppDelegate.h"

extern void setContinueLaunchingQML();

@implementation QIOSApplicationDelegate

- (void)applicationDidFinishLaunching:(UIApplication *)application {
NSLog(@"------------ App applicationDidFinishLaunching");
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSLog(@"==== didFinishLaunchingWithOptions");

setContinueLaunchingQML();

NSLog(@"==== applicationDidFinishLaunching return YES ====");
return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"IOS_APP_DEL: applicationWillResignActive");
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"IOS_APP_DEL: applicationDidEnterBackground");
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"IOS_APP_DEL: applicationWillEnterForeground");
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"IOS_APP_DEL: applicationDidBecomeActive");
}
- (void)applicationWillTerminate:(UIApplication *)application {
}
@end

main.cpp:
// main.cpp
#include
#include
#include
#include

static bool waiting_for_ios_delegate_ = true;

int main(int argc, char *argv[])
{
qDebug() processEvents();
}

qDebug()

Подробнее здесь: https://stackoverflow.com/questions/793 ... visible-sc

Вернуться в «IOS»