Attualmente ho una GUI iOS nativa e una Qt-GUI. Sto provando a passare da uno all'altro.Passaggio da GUI iOS nativo a Qt gui
Per essere chiari: quando faccio clic su un pulsante sulla GUI nativa, voglio che la Qt-GUI venga visualizzata e viceversa.
Ho già scoperto quali librerie devo aggiungere per poter usare Qt-Stuff. Ho creato un QApplication
nel file AppDelegate.mm
:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions {
// receive int argc, and char** argv for the QApplication.
_qApp = new QApplication(_argc, _argv);
}
Inoltre il mio aspetto di applicazioni Qt (al momento) in questo modo:
void createQtGUI() {
QPushButton* btn = new QPushButton("Some Button");
QLabel* lbl = new QLabel("QTGui");
QVBoxLayout* layout = new QVBoxLayout();
layout->addWidget(lbl);
layout->addWidget(btn);
QWidget* window = new QWidget();
window->setLayout(layout);
window->show();
}
sto chiamando il metodo createQtGUI
nel mio ViewController.mm
quando si preme un pulsante nella GUI iOS nativa. Il codice viene eseguito senza generare alcun errore, ma:
La Qt-GUI non viene visualizzata. L'applicazione mostra ancora la GUI nativa senza passare alla Qt-GUI.
Qualcuno ha idea di come risolvere il problema?
Dubito molto che funzionerà in quanto entrambi i framework forniscono un ambiente completo progettato per avere il controllo completo del ciclo di esecuzione, gestione degli eventi, ecc. Ecc. – trojanfoe
Direi che hai dimenticato di chiamare un 'QApplicazione :: metodo exec() 'per avviare il ciclo di eventi Qt. – Tomas
@Tomas Anche questo è stato il mio primo pensiero, ma sembra che QApplication si blocchi nel ciclo di eventi nativi. Inoltre ho trovato una guida da qualcuno che è riuscito a farlo e ha menzionato esplicitamente che non è necessario chiamare il metodo exec(). – ParkerHalo