Я потратил много часов, пытаясь заставить простое приложение 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
Qt6 IOS QML QIOSApplicationDelegate запускает делегат, но Main.qml не отображается (экран черный) ⇐ IOS
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение