Всем доброго времени суток!
После долгих мучений с интерфейсом на Qt перевожу его на QML. Всё прекрасно, НО! - определил свой тип, зарегил его и передал в него данные, но он не отображается в главном окне, как отображался до регистрации его с помощью qmlRegisterType
main.cpp
qmlRegisterType<ToolBar>("ToolBar", 1, 0, "ToolBar");
mainwindow.cpp
QDeclarativeView toolbar;
... запрос
QString cartTextInfo = ..результат запроса;
toolbar.setSource(QUrl::fromLocalFile("ToolBar.qml"));
toolbar.rootContext()->setContextProperty("cartText",cartTextInfo);
toolbar.cpp
QString ToolBar::cartText() const
{
qDebug() << "Cart text:"<<m_cartText; //- не показывается :-/
return m_cartText;
}
void ToolBar::setCartText(QString &cartText)
{
qDebug() << "Cart text set:"<<cartText; //- не показывается :-/
m_cartText = cartText;
}
tollbar.h
class ToolBar : public QDeclarativeItem
{
Q_OBJECT
Q_PROPERTY(QString cartText READ cartText WRITE setCartText)
public:
//explicit
ToolBar(QDeclarativeItem *parent = 0);
QString cartText() const;
void setCartText(QString &cartText);
private:
QString m_cartText;
ToolBar.qml
import Qt 4.7
import ToolBar 1.0
ToolBar {
//Rectangle
id: toolbar_panel
objectName: "toolBar"
visible: true
enabled: true
property string cartText
Text {
id: textelement
text: "What is what?"
color: "green"
x: 300
y: parent.y
}
app.qml
MainWindow {
id: aMainWindow
width: screenWidth()
height: screenHeight()
Rectangle {
x: 0
y: 0
width: parent.width
height: parent.height
gradient: Gradient {
GradientStop { position: 0.0; color: Qt.rgba(119, 119, 119, 255)}
GradientStop { position: 1.0; color: Qt.rgba(255, 255, 255, 255)}
}
border.width: 0
...
Item {
id: buyView
x: 0
y: 0
width: parent.width
height: parent.height
visible: false
anchors {top: parent.top; horizontalCenter: parent.horizontalCenter }
ToolBar {
id: htb_toolbar
width: parent.width
height: 90
x: 0
y: 500 //aMainWindow.screenHeight()-200
//anchors.bottom: parent.bottom
}
Без регистрации ToolBar,когда он был описан в ToolBar.qml как Rectangle всё работало, а сейчас ToolBar не выводится в MainWindow :'-(
Смысл этого всего в том, чтобы отображать в текстовом поле в ToolBar информацию из базы данных с обновлением.
Пример с запросом из javascript пробовал -базу не находит очевидно
Очень срочно нужна помощь! Заранее спасибо!
P.S. Qt 4.7.0