【发布时间】:2014-08-07 15:35:47
【问题描述】:
这里是资深 C++ 和 C#/WinForms 程序员,熟悉 Qt/QML。
有很多关于如何从 QML 调用 C++ 的信息,而且我已经让它工作得很好,但我宁愿被动地对待 QML 并尽可能从 C++ 操作它。
例如:
frmLogin::frmLogin()
{
// Load QML file
// Wire up controls to their own pointers
cmdOK = QtQuick_GetControlFromQML("cmdOK");
cmdQuit = QtQuick_GetControlFromQML("cmdQuit");
}
void frmLogin::Show()
{
MyQMLPointerToWindow->Show();
}
void frmLogin::DoSomethingFromCPP()
{
cmdOK->SetProperty("text", "I just changed the button text");
rectBox->SetProperty("visible", true); // rectBox Rectangle from QML now appears on the screen
frmMainMenu = new frmMainMenu(); // Create new main menu window
frmMainMenu->ShowDialog(); // modal display
}
有没有办法做到这一点?是不是很气馁?我正在尝试制作一个多形式的模态应用程序。很难在所有这些问题上找到直接的答案,因为 QtQuick 似乎已经经历了几次设计迭代。任何建议表示赞赏!
【问题讨论】:
-
如果你想用 C++ 做所有事情,你为什么还要使用 QML?
-
因为我想用Qt Quick GUI系统,而不是传统的Qt。