Access QML in C++ label

Hello

I wonder how I can access a label I have in a QML in C++ file. Previously, I had the main.qml label and was able to get that way:

hand. QML

property alias currTimeText: currTime.text

c ++

mRoot->setProperty("currTimeText", timeString);

However, I restructured my qml so that the label is no longer inside main.qml. Now main.qml has a button that pushes a page in another qml file and contains my label. What makes the problem more complex. Note that in the c ++ code above mRoot is created from main.qml. Any help is appreciated!

Thank you

Gerry

If you want to access an object of c ++ assign an object name

Label{
    id:labelid
    objectName:"labelname"
    text: "text"
}

So from c ++

You can find and access the object directly using

    mNavPane = qml->createRootObject();    Label *label = mNavePane->findChild("objectName");label->setText(labelText);

Tags: BlackBerry Developers

Similar Questions

  • How access QML label creator no - QML C++ file

    Subject: C++ see the variable screen QML.

    Error: Don't know how to do it.

    Question: How do I access the QML file creator no - QML C++ labels?

    or,

    Not any related example or document API that I can read?

    Mini code:

    A C++ file to create QML

    ApplicationUI::ApplicationUI (bb::cascades:Application * app)
    : QObject (app)
    {
    QML = QmlDocument::create("asset:///main.qml").parent(this);

    root = qml-> createRootObject();
    App-> setScene (root);

    }

    Another C++ to show a QML screen variable.

    Sensor:ensor (bb::cascades:Application * app)
    : QObject (app)
    {

    VideoLabel = root->findChild ("videolabelname");
    VideoLabel-> setProperty ("text", "2");
    }

    Thank you for your attention,

    Thanks Pierre. I've read before, but not any idea for the issue.

    I found a useful sample code.

    https://developer.BlackBerry.com/Cascades/documentation/dev/integrating_cpp_qml/custom_control_tutor...

    I have a solution to access label creator non - C++ file QML QML made the sample.

    The key's value and setvalue().

    Mini code for the solution:

    CPP.

    int sensor: value()
    {
    Return m_iValue;
    }

    Sub Sensor::setValue (int i)
    {
    name is the same as an instruction HPP WRITE Q_PROPERTY
    m_iValue = i;
    issue of valueChanged (m_iValue);
    }

    HPP.

    Q_PROPERTY (int value READ WRITE setValue NOTIFY valueChanged)
    public:

    Sensor();
    Virtual ~ Sensor() {}
    QObject * videolabel;
    Q_INVOKABLE
    int value();
    void setValue (int i);

    signals:
    void valueChanged (int);

    private:
    int m_iValue;

    QML:

    Button {}
    ID: aButton
    text: _app.value
    onClicked: {}
    _APP.ValueChanged.connect (aButton.onValueChanged);
    _APP.value = _app.value + 1;
    }
    onValueChanged (val) {} function
    aButton.text = "new value:"+ val;»
    }
    }

  • How to access QML object to display the error message.

    Hi all

    I have a request. I got a login screen ("asset:///qml/screenLogin.qml"). "Connect" OB button I click sendt asks the server sending the XML data as a response.

    After that, I am parsing the XML data by using Connection Manager. Code is below:

    /*
     * LoginHandler.cpp
     *
     *  Created on: Jan 15, 2013
     *      Author: Ekansh
     */
    
    /*Parsing the Login Response Structure.
    
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    
     */
    
    //#include 
    #include "loginhandler.hpp"
    
    #include 
    #include 
    #include 
    #include 
    #include `
    #include 
    #include 
    
    namespace bb {
    namespace cascades {
    
    LoginHandler::LoginHandler() {
        // TODO Auto-generated constructor stub
    
    }
    
    LoginHandler::~LoginHandler() {
        // TODO Auto-generated destructor stub
    }
    
    bool LoginHandler::startDocument() {
        qDebug() << "Start of the document.";
        return true;
    }
    
    bool LoginHandler::endDocument() {
        qDebug() << "End of the document.";
        return true;
    }
    
    bool LoginHandler::startElement(const QString &namespaceURI,
            const QString &localName, const QString &qName,
            const QXmlAttributes &atts) {
        qDebug() << "Start of element" << qName;
        for (int i = 0; i < atts.length(); ++i)
            qDebug() << "  " << atts.qName(i) << "=" << atts.value(i);
    
        return true;
    }
    
    bool LoginHandler::endElement(const QString &namespaceURI,
            const QString &localName, const QString &qName) {
        qDebug() << "End of element" << qName;
    
        if (qName == "sessionid") {
            sessionid = tagValue;
            qDebug() << "sessionid:: " << sessionid;
        } else if (qName == "error") {
            error = tagValue;
            qDebug() << "error:: " << error;
    
            /*QmlDocument *qml = QmlDocument::create("asset:///qml/screenLogin.qml");
            //Container *root = qml->createRootObject();
            AbstractPane *root = qml->createRootObject();
            QObject *newLabel = root->findChild("errorObject");
    
            if (newLabel)
                newLabel->setProperty("text", "error");*/
    
        }
        return true;
    }
    
    bool LoginHandler::fatalError(const QXmlParseException & exception) {
        qWarning()
                << QString("Fatal error on line %1, column %2: %3").arg(
                        exception.lineNumber()).arg(exception.columnNumber()).arg(
                        exception.message());
    
        return false;
    }
    
    bool LoginHandler::characters(const QString &str) {
        qDebug() << "Characters" << str;
        tagValue = str;
        return true;
    }
    } /* namespace cascades */
    } /* namespace bb */
    

    When I put the wrong credentials, I want an error message to display on login QML.

    See the code in the EndElement this handler method.

    But I am not able set the error message when the connection QML.

    Help, please.

    You can set the label with the message as below. Condition that you specified label with the same "errorLbl" objectname qml

    QObject *lblError = bb::cascades::Application::instance()->findChild("errorLbl");
        if (lblError)
            lblError->setProperty("text", "error");
    

    -Dishooom

    I hope this helps...

  • Components of access QML in c ++ with navigationpane

    I used the code works like a charm, but I want to access the user interface below the elements that are present in the item Page how do I am getting the below but the application breaks down

    I have a NavigationPane in file c ++ and the page must be pushed after the button is clicked.

    QmlDocument *qml = QmlDocument::create("asset:///SearchResults.qml").parent(this);
        qml->setContextProperty("peoplefinder", this);
    
        Page *mypage = qml->createRootObject();
        qml->setParent(mypage);
    
        ActivityIndicator *myindicator = qml->findChild("myIndicator");
        qDebug()  << myindicator->isVisible();
    
        mNavigator->push(mypage);
    

    Please help me how do I tried access also the child ActivityIndicator through my object page but am unable to do so.

    its page-> findChild<>() and not-> findChild qml

  • Access QML QList

    I recover a QList from 2 of the objects in the database and you want to access in QML.

    To do this, I registered the type:

    qmlRegisterType("com.class2", 1, 0, "Class2");
    

    In addition, my class of database is published in qml:

    qml->setContextProperty("persistanceService", persistenceService);
    

    It's the method definition:

    Q_INVOKABLE
    QList getClass2List();
    

    In my qml I use import to put at the disposal of the registered type:

    import com.class2 1.0
    

    This is the code to access the QList:

    onCreationCompleted: {
      var class2list = persistanceService.getClass2List();
      console.log("retrieved "+class2list .length+" elements");
    }
    

    And I get:

    TypeError: Result of expression 'class2list' [undefined] is not an object.
    

    QList and other more dynamic classes are not really used in QML. There is something called QDeclarativeListProperty, but that allows to display the list. Then access you the similar elements in a table as myobj [1]. It also has the County and a few other helper methods.

    http://Qt-project.org/wiki/How_to_expose_lists_to_QML

  • Pages have access to models of labels avery somewhere?

    Pages meets all my needs except the possibility of using labels templates Avery for Pages. The site of Avery was a total waste of time. The app store all look risky. Y at - it somewhere that I can just pull up a label template Avery numbered pages? THX!

    Pages has no knowledge on labels Avery. You can visit the Avery site and download the individual templates in Word (for Mac) for the label type and open in the Pages. Then save you as a template in your custom templates. But by filling out the sheet Avery is a manual process, as versions v5 Pages do not for you.

    I just installed the free Mac Avery Design & Print software in / applications on OS X 10.11.5 and utilization for the label of all work them.

  • How to access the property dropdown labels?

    Hello world!

    I thought it would be simple enough, but can't seem to find an answer to my search so I thought I would ask here.  I need to get the label of a drop-down list for the parameter of the effect.

    I use the following to get the index of the selection in the drop-down list that is returned:

    myLayer.effect ("Name of Match the effect")("Dropdown_Param_Name").value

    However, I want the label located in the actual drop, not the index value.  Is it possible to recover that or I just need to create a sort of table enum and do a search?

    Thank you
    Arie

    I just need to create a sort of table enum and do a search?

    Well Yes, the index being the only data you can get.

  • How to display the text label to the CPP QML

    Friends good day

    I want to display text in the label of a property in MyApp.cpp QString

    I know that I can get the file as follows:

    in QML
    {label
    objectName: processorID
    text: 'myText '.
    }

    in C ++

    QObject * processorID = root-> findChild ("processorID");
    QString procid = processorID;

    But to do this:

    QString msg = QString (procid);

    I get an error where I can't convert object to string.

    A way to fix it?

    Thank you

    To access the label outside of the scope of the root, you can access them as

    Label *label = bb::cascades::Application::instance()->findChild

    -Dishooom

  • Reference ID of qml files

    I have 2 files qml. One containing a pane with tabs (tabbedMenu.qml) and the other (ContentContainer.qml) with a container with a label.

    I use ContentContainer.qml as a template for the pages of tabbedPane as follows:

    (ContentContainer.qml)
    Contains a label with the id headerLabel

    (tabbedMenu.qml)

    TabbedPane {}
    {Page}
    ID: connectTab
    paneProperties: {TabbedPaneProperties}
    Title: 'Tab '.
    }

    content: {ContentContainer}
    ID: connectContent
    {Label
    ID: testLabelID
    text: "text".
    }
    }
    }
    ...

    Is it possible to update the value of headerLabel to tabbedMenu.qml when a tab is changed?

    I thought about it. I just used a C++ class, it entered as property and class variables to the variables on the side QML.

    See https://bdsc.webapps.blackberry.com/cascades/documentation/ui/integrating_cpp_qml/index.html for an example

  • SpaceQuota change of QML

    How would you change the spaceQuota in QML?

    Label {
      layoutProperties: StackLayoutProperties {
        spaceQuota: 2
      }
    }
    

    In view of the above, I could wait for the following?

    id.layoutProperties.StackLayoutProperties.spaceQuota = 1
    

    I can see why it does not work but I can not understand how would you in doing so.

    In this case, I suggest that you create a new StackLayoutProperties and assign it to layoutProperties directly.

    attachedObjects: [
       StackLayoutProperties {
          id: newProps
          spaceQuota: 1
       }
    ]
    Label {
       id: myLabel
       layoutProperties: StackLayoutProperties {
          spaceQuota: 2
       }
    }
    function changeQuota() {
       myLabel.layoutProperties = newProps;
    }
    

    I don't know if you can dynamically change the quota of newProps. I would like to test it for you, but I'm tired and I'm going to bed. Looking forward to your report.

    Philipk wrote:
    No it does not recognize it without the StackLayout either.

  • Can't push to the navigation of a component outside the main.qml pane

    Here's some of my main.qml

     Container {
                id: main_content
    
                attachedObjects: [
    
                    ComponentDefinition {
                        id: listtodo
                        source: "mainList.qml"
                    }
                ]
    
                property variant listtodoObj
    
                onCreationCompleted: {
                    listtodoObj = listtodo.createObject();
                    if (!listtodoObj)
                        listtodoObj = listtodo.createObject();
    
                    listtodoObj.dataModel = Model.get();
                    main_content.add(listtodoObj);
                }   
    
            }
    

    I have not included of NavigationPane, but in the hand, I have a pane of navigation with the id "navigationPane.

    Here's the part of my mainList.qml:

    gestureHandlers: [
    
                        TapHandler {
    
                            attachedObjects: ComponentDefinition {
                                id: infoPage;
                                source: "asset:///taskInfo.qml"
                            }
    
                            onTapped: {
    
                                var page = infoPage.createObject();
    
                                navigationPage.push(page);                     
    
                            }
                        }
                    ]
    

    But I can't access navigationPane. In the console it says: "cannot find variable: navigationPage.

    What can I do?

    This should help:
    http://supportforums.BlackBerry.com/T5/native-development-knowledge/how-to-access-QML-properties-fro...

  • call the function onCreationCompleted c ++ in qml

    I currently have a problem with the c function call ++ QML.

    Œuvres of normal calls. But when I call a function in onCreationCompleted, he cannot access qml object on the page.

    For example:

    {Page}

    onCreationComplete:

    {myFunction() ;}

    Button {}

    ojbectName: "button1".

    }

    }

    MyFunc access using findChild button1.

    But this return 0 x 0, means the button does not exist.

    So how do I access button1 in c ++ to what page is loaded?

    I have posted from a phone, so sorry if there is no error.

    Look, we can't access the qml object when the page is created (we call it in onCreationCompleted). I bypassed by calling the function after navigationpane.push.

  • The field label text...

    Hello..

    I have a LabelField that i shave of the text, but in the filed I should show ' - '.

    LabelField label = new LabelField ("some text here that should be displayed in the form of (-) '");

    But when I access the labelField which label.getText () I need to get the text that is associated with but not «-»

    is it possible to do...

    Thank you cordially yakoub Pasha...

    I got it..

    I used cookies... it is the right way to store additional information...

  • Can we open document from the hyperlink QML?

    Can we open document from the hyperlink qml?

    Label

    {

    "text:"Click here!

    "

    }

    I know that this problem has been resolved, but won't this is the solution.

    People, please stop using onTouch event on controls to manage the events of tap.

    To manage the tap, you must use gestureHandlers instead of onTouch

    gestureHandlers: [
                    TapHandler {
                        onTapped: {
                            // THIS CONTROL IS TAPPED AND NOT SIMPLY "TOUCHED". DO SOMETHING HERE
                        }
                    }
                ]
    

    If you treat your event on signal Notecard, you will eventually provide a poor user experience!

  • Accessibility of text box

    Hello, I use Cp6 and wanted clarification on something.  When I insert a text caption (insert > Standard object > text caption) and add text in Cp6, screen readers actually read him the text of the text caption or do I have to add this text to the Accessibility button in the properties panel for the text of the legend, give him an accessible name and Description of the accessibility and the auto label uncheck?  I was't 100% clear on this when I read the Help Guide Adobe Cp6.

    Also, if I import a PPT slide into Cp6 which has just the text, a screen reader would read this text or not?

    Thank you!

    I do not think it will, no.  PPT slides are converted into images or animations.  Probably won't be friendly accessibility.

Maybe you are looking for