Qt Programming Language


  • Moderators

    @Annabelle You're looing for addItem and addItems.



  • @SGaist said in Qt Programming Language:

    You can use a QLabel when you want to show some text.

    What I meant is something like:

    class SpouseWidget : public QWidget {
        Q_OBJECT
    public:
        enum Gender {
            Bride,
            Groom
        }
    public:
        SpouseWidget(QWidget *parent = 0);
        QString name() const;
        Gender gender() const;
    
    private:
         QLineEdit *nameLineEdit;
        QButtonGroup *genderButtonGroup;
    };
    
    SpouseWidget::SpouseWidget(QWidget *parent):
        QWidget(parent),
        nameLineEdit(new QLineEdit),
        genderButtonGroup(new QButtonGroup(this)
    
        QRadioButton *brideButton = new QRadioButton (tr("Bride"));
        brideButton->setProperty("gender", SpouseWidget::Bride);
        bride->setChecked(true);
        QRadioButton *groomButton = new QRadioButton (tr("Groom"));
        groomButton->setProperty("gender", SpouseWidget::Groom);
    
        genderButtonGroup->add(brideButton);
        genderButtonGroup->add(groomButton);
        QHBoxLayout *genderLayout = new QHBoxLayout;
        genderLayout->addWidget(brideButton);
        genderLayout->addWidget(groomButton);
    
        QFormLayout *layout = new QFormLayout(this);
        layout->addRow(tr("Name"), nameLineEdit);
        layout->addRow(tr("Gender"), genderLayout);
    }
    
    QString SpouseWidget::name() const 
    {
        return nameLineEdit->text();
    }
    
    SpouseWidget::Gender SpouseWidget::gender() const
    {
        QAbstractButton *button = genderButtonGroup->checkedButton();
        QVariant genderVariant = button->property("gender");
        return genderVariant.value<SpouseWidget::Gender>()
    }
    

    Then in your page you can use a QGroupBox for each spouse with an instance of SpouseWidget inside.

    One thing I'm stumped on is the use of "public" and "private". Are those parameters meant to share some of the widgets with the general population, but hide any widgets with what would otherwise be regarded as personal information?



  • I wonder if I can use QAccessible widgets instead. What would those look like? For example, would I write something like:
    QAccessibleMenu *languageMenu;
    I wonder if they have QAccessible versions of QRadioButton, QComboBox, and QListBox?


  • Qt Champions 2018



  • @mrjj
    You're right that Qt Creator doesn't work with screenreaders. I sure wish I could find something that does work, aside from just creating the file in a plain text editor like Notepad. And you're also right that screenshots would be useless for me, as I can't see anything at all, not even lights and colors.



  • So as an example, if I want the gender-appropriate wordings to be printed in the finished script, triggered by the "Groom", "Bride", "Male" or "Female" radio buttons being checked, how would I do this? For example, the default text that appears in the Wedding Ceremony script if neither gender radio button has been checked, and if no names have been given, would be something like:

    (Name), will you have this person to be your lawfully wedded spouse, to have and to hold from this day forward? Will you love him/her, comfort him/her, honor and keep him/her in sickness and in health? And, forsaking all others, be faithful only to him/her, so long as you both shall live?

    (Name) would of course be replaced by the names of the individuals being married, which the customer will type in the edit boxes named "Spouse 1 Name" and "Spouse 2 Name". If the Bride radio button is checked, "person" would be replaced with "woman", and "spouse" would be replaced with "wife" and "him/her" (or would it be easier to put "them" for unspecified gender) would be replaced with "her". When the Groom radio button is checked, "Person" would be replaced with "Man" and "Spouse" would be replaced with "Husband", and "him/her" would be replaced with "him". Or, I could put an option where "husband" and "wife" could be customized to say "life partner", "lover", or whatever the couple chooses to call each other in an edit box. Maybe that edit box can be triggered by a radio button that says "custom Title". Also, I have a checkbox named "SameLastName". If checked, an edit box appears that is called "Last Name For Couple". However, I want to make it so that if the checkbox is unchecked, the "Last Name For Couple" edit box is hidden, and instead, two edit boxes appear that are called "Last Name for Spouse 1" and "Last Name for Spouse 2". How would I code these parameters?



  • @ambershark said in Qt Programming Language:

    @Annabelle I can't help you with the chm part, but if you need help compiling I can help you figure out both qmake and cmake. Cmake being my preferred method of building Qt projects.

    I build everything command line and rarely use IDEs. That sounds exactly what you're looking for if you are using notepad++ and just need a command line build.

    Is Cmake built in to the Command Prompt in Windows 7? Or would I have to install it from a download at an external source? I also ask this about Qmake. The reason why I ask is because I tried typing the Qmake code that someone posted earlier on the forum, and it said something along the lines of, "Qmake is not an operable program or a valid internal command". What's up with that, I wonder?


  • Moderators

    @Annabelle said in Qt Programming Language:

    Is Cmake built in to the Command Prompt in Windows 7? Or would I have to install it from a download at an external source? I also ask this about Qmake. The reason why I ask is because I tried typing the Qmake code that someone posted earlier on the forum, and it said something along the lines of, "Qmake is not an operable program or a valid internal command". What's up with that, I wonder?

    No, cmake is not installed on Windows by default. You can get it from here: https://cmake.org/files/v3.12/cmake-3.12.1-win64-x64.msi I see some warning about this installer on cmake website (https://cmake.org/download/), but I'm not a regular Windows user so I don't know whether this warning can be ignored or not.

    About qmake: when you install Qt, it will not update the system PATH variable - so qmake won't be available in standard command prompt. There are 2 ways around it:

    • open Qt command prompt (it will be installed to Qt directory in start menu)
    • or type full path to qmake in normal Windows command prompt (it will be something like c:\Qt\5.11.1\mingw53_32\bin\qmake.exe)


  • @sierdzio said in Qt Programming Language:

    @Annabelle said in Qt Programming Language:

    Is Cmake built in to the Command Prompt in Windows 7? Or would I have to install it from a download at an external source? I also ask this about Qmake. The reason why I ask is because I tried typing the Qmake code that someone posted earlier on the forum, and it said something along the lines of, "Qmake is not an operable program or a valid internal command". What's up with that, I wonder?

    No, cmake is not installed on Windows by default. You can get it from here: https://cmake.org/files/v3.12/cmake-3.12.1-win64-x64.msi I see some warning about this installer on cmake website (https://cmake.org/download/), but I'm not a regular Windows user so I don't know whether this warning can be ignored or not.

    About qmake: when you install Qt, it will not update the system PATH variable - so qmake won't be available in standard command prompt. There are 2 ways around it:

    • open Qt command prompt (it will be installed to Qt directory in start menu)
    • or type full path to qmake in normal Windows command prompt (it will be something like c:\Qt\5.11.1\mingw53_32\bin\qmake.exe)

    Does that warning refer to the program possibly not having passed Window logo testing? I've had that warning on several programs, and even hardware drivers. Do I just press enter on "Continue Anyway"?


  • Moderators

    @Annabelle said in Qt Programming Language:

    Does that warning refer to the program possibly not having passed Window logo testing? I've had that warning on several programs, and even hardware drivers. Do I just press enter on "Continue Anyway"?

    Perhaps, I don't know to be honest. It is a package from official cmake website, though, so I would assume it's safe to click "continue anyway".



  • @sierdzio said in Qt Programming Language:

    @Annabelle said in Qt Programming Language:

    Does that warning refer to the program possibly not having passed Window logo testing? I've had that warning on several programs, and even hardware drivers. Do I just press enter on "Continue Anyway"?

    Perhaps, I don't know to be honest. It is a package from official cmake website, though, so I would assume it's safe to click "continue anyway".

    I know my machine with Windows 7 64 Bit comes with Visual C 2012. Will that be the program that works with Cmake in the command line? I'm confused on this one.


  • Moderators

    @Annabelle said in Qt Programming Language:

    I know my machine with Windows 7 64 Bit comes with Visual C 2012. Will that be the program that works with Cmake in the command line? I'm confused on this one.

    cmake is a build system. It uses compilers (like Visual c++ compiler) to compile your code. So in that regard it works very similar to qmake - it parses a project file, produces a Makefile, and then you can run make to compile the project.



  • Which widget would I use to display the text of a ceremony script? I'm confused as to whether I want a QTextEdit, or some other widget. What I specifically want to do is display the text across the entire screen in Step 20. Is there such a widget as a QPanel? Here's an example of what I mean when I say, completed text in Step 20. This is in HTML. This is displayed after one presses the "Finish" button when creating a ceremony.

    <head>
    <title>Wedding Ceremony Script</title>
    </head>
    <div class="panel panel-orange-side wedding-ceremony-section" id="processional-section" style="">
    <div class="panel-heading">Processional</div>
    <div class="panel-body">
    ~ Introductory Music ~
    <div class="panel-body"> ~ Here Comes The Bride ~
    </div>
    </div>

    	<div class="panel panel-orange-side wedding-ceremony-section" id="welcome-statement-section" style="">
    		<div class="panel-heading">Welcome Statement</div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> We have come together by invitation to witness and join with <strong>Kurt</strong> and <strong>Mary Jane</strong> as they make a sacred commitment with each other – the sacred affirmation of their love, through marriage.  So let us honor this sacred time in their lives by putting all the cares of the world and our lives aside to become fully present with them on this, their wedding day.  And, let us open our hearts to the experience of oneness with them as they take their vows.</p><p><strong>Kurt</strong> and <strong>Mary Jane</strong>, this is a special day for you.  There has never been a day quite like this one, so cherish every moment, knowing that you are surrounded by family and friends who support you in the step you are taking.  Treasure the love you feel right now.  You were drawn together by a force both powerful and beautiful.  That force we know as love.</p><p>I invite each of you here to close your eyes and quietly, in your own way, become aware of that love…the presence of the divine, which is called by many names, and known here today as God.</p></div>
    
    	<div class="panel panel-orange-side wedding-ceremony-section" id="welcome-statement-section" style="">
    		<div class="panel-heading">Opening Prayer</div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> Let us pray. Creator of us all, we acknowledge the gift that drew <strong>Kurt</strong> and <strong>Mary Jane</strong> into each others lives.  We are grateful for your loving presence in each of us and give thanks for the opportunity to be present at the marriage of these , your people.  May they know joy, peace, hope, prosperity and happiness.  Bestow your blessings upon them in this moment and forever.  Amen.</p></div>
    
    	<div class="panel panel-orange-side wedding-ceremony-section" id="family-blessing-section" style="visibility: visible;">
    		<div class="panel-heading">Family Blessing</div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> Will you, parents of <strong>Kurt</strong> and <strong>Mary Jane</strong>, give your blessings to their marriage?<br><br><span class="text-blue"><strong>Parents:</strong></span> We will.</div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> Will you, family and friends of <strong>Kurt</strong> and <strong>Mary Jane</strong>, do all in your power to support them and uphold their marriage?<br><br><span class="text-blue"><strong>Company:</strong></span> We will.</div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> Who presents <strong>Mary Jane</strong> to be married to <strong>Kurt</strong>?<br><br><span class="text-blue"><strong>Wilbur D'Arcy</strong> Rankin:</strong></span> Her Mother and I do.</div>
    
    	<div class="panel panel-orange-side wedding-ceremony-section" id="wedding-sermon-section" style="visibility: visible;">
    		<div class="panel-heading">Wedding Sermon</div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> <strong>Kurt</strong> and <strong>Mary Jane</strong>, true marriage is more than the legal uniting of two people. It is a spiritual covenant uniting two souls already in harmony with each other.  We are here to bear witness to your choosing to spend your lives together. You are taking into your care and keeping the happiness of the one in all the world whom you love best; and by the same token, something of the happiness of all whom you love and who love you.  Marriage is a blessed privilege and a sacred responsibility. Both of you are trusting that your partner will love you and stand by you, but for a marriage to succeed there must be a lasting commitment through both good times and difficult ones.  Remember to renew that commitment daily by letting each other know you love them.  Nothing is easier than saying the words on this day, and nothing can be more difficult than living those words day by day, so do whatever it takes to keep your commitment alive!
    
    	<div class="panel panel-orange-side wedding-ceremony-section" id="consecration-section" style="visibility: visible;">
    		<div class="panel-heading">Consecration</div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> Under the eyes of God, and by the power of the Unity Of The Valley Church of <strong>Eugene,</strong> <strong>Oregon</strong>, I solemnly consecrate these matrimonial proceedings and the sacred covenant you shall both enter into on this day.</p><p>Marriage is an ancient rite. As you enter into this union, you are choosing to take part in a historical human establishment and are pledging your commitment before the witnesses present here today to enter into that tradition with honor.</p><p>As Jesus said:  <em>"Have you not read that He who made them at the beginning ‘made them male and female,"</em> he also taught that, <em>"For this reason a man shall leave his father and mother and be joined to his wife, and the two shall become one flesh'? So then, they are no longer two but one flesh. Therefore what God has joined together, let not man separate."</em></p></div>
    	</div>
    
    	<div class="panel panel-orange-side wedding-ceremony-section" id="declaration-of-intent-section" style="visibility: visible;">
    		<div class="panel-heading">Declaration of Intent</div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> Will you, <strong>Kurt Harlan</strong> Schrum</strong>, take <strong>Mary Jane</strong> to be your wife, promising to cherish, nurture and protect her, whether in good fortune or adversity, and to seek together with her a life of happiness, love and virtue?</p><p><span class="text-blue"><strong>Kurt:</strong></span> I will.</p></div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> Will you, <strong>Mary Jane</strong> Morison</strong>, take <strong>Kurt</strong>, to be your husband, promising to cherish, nurture and protect him, whether in good fortune or adversity, and to seek together with him a life of happiness, love and virtue?</p><p><span class="text-blue"><strong>Mary Jane:</strong></span> I will.</p></div>
    
    	<div class="panel panel-orange-side wedding-ceremony-section" id="exchange-of-vows-section" style="visibility: visible;">
    		<div class="panel-heading">Exchange of Vows</div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> Before the very sacred exchange of vows, I would like to share with you a thought for your wedding day.  Imagine yourselves saying this to each other.</p><p>I love you not only for what you are, but for what I am when I am with you.  I love you, not only for what you have made of yourself, but for what you are making of me. I love you for the part of me that you bring out. I love you for putting your hand into my heaped-up heart and passing over all the frivolous and weak things that no one else has looked quite far enough to find. I love you for ignoring the possibilities of the fool in me and for laying hold of the possibilities of good in me. I love you for adding to the music in me by worshipful listening. You have done it without a touch, without a word, without a sign.  You have done it by being yourself.</p></div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> <strong>Kurt</strong>, will you look into <strong>Mary Jane</strong>’s eyes and into her heart and repeat after me?</p><p><span class="text-blue"<strong>Kurt:</strong></span> I <strong>Kurt</strong> take you <strong>Mary Jane</strong> as my wife, I pledge to share my life openly with you - to speak the truth to you in love.  I promise to honor - and tenderly care for you - to cherish and encourage your fulfillment - as an individual - through all the changes of our lives.  I love you.</p></div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> <strong>Mary Jane</strong>, will you look into <strong>Kurt</strong>’s eyes and into his heart and repeat after me?</p><p><span class="text-blue"<strong>Mary Jane:</strong></span> I, <strong>Mary Jane</strong> take you, <strong>Kurt</strong> as my husband, I pledge to share my life openly with you - to speak the truth to you in love.  I promise to honor - and tenderly care for you - to cherish and encourage your fulfillment - as an individual - through all the changes of our lives.  I love you.</p></div>
    
    	<div class="panel panel-orange-side wedding-ceremony-section" id="exchange-of-rings-section" style="visibility: visible;">
    		<div class="panel-heading">Exchange of Rings</div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> May I have the rings please?  Each ring symbolizes the unending, everlasting love made known in the world, as well as the complete and unending love that exists between you, in purity of mind and heart.</p><p><strong>Kurt</strong>, take <strong>Mary Jane</strong>'s ring and place it on the third finger of her left hand.  Gently hold it there, look into her eyes, and repeat after me.</p></div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Kurt:</strong> With this ring I thee wed, and with it bestow upon you all the treasures of my mind, my heart and my hands.  I love you.</p></div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> <strong>Mary Jane</strong>, take <strong>Kurt</strong>'s ring and place it on the third finger of his left hand.  Gently hold it there, look into his eyes, and repeat after me.</p></div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Mary Jane:</strong> With this ring I thee wed, and with it I bestow upon you all the treasures of my mind, my heart and my hands.  I love you.</p></div>
    
    	<div class="panel panel-orange-side wedding-ceremony-section" id="candle-lighting-section" style="visibility: visible">
    		<div class="panel-heading">Candle Lighting</div>
    		<div class="panel-body"><p><strong>Kurt</strong> and <strong>Mary Jane</strong>, while the words you have spoken have sealed your union, it is the  lighting of the unity candle that truly symbolizes the melding of your  two souls.</p><p>At this time <strong>Kurt</strong> and <strong>Mary Jane</strong> should each receive a pre-lit taper candle.</p><p>You hold in your hands a single flame. Allow this flame to represent your life: every thought that's ever crossed your mind, and every word that's ever crossed your lips; all of your victories, and all of your failures; all of your joys, and all of your sorrows.</p><p>And now, tilt these candles forward to light the center candle.</p><p><strong>Kurt</strong> and <strong>Mary Jane</strong> should tilt their candles forward, lighting a larger candle centered between them.</p><p>Watch as the two flames instantly form one. So too, today, have your two spirits come together to form one singular entity. Just as your combined flame illuminates the space around it, let your magnificent union radiate with love and light your path as you move forward through life.</p></div>
    
    	<div class="panel panel-orange-side wedding-ceremony-section" id="pronouncement-section" style="visibility: visible">
    		<div class="panel-heading">Pronouncement</div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> Now that <strong>Kurt</strong> & <strong>Mary Jane</strong> have given themselves to each other by solemn vows, with the joining of hands and the giving and receiving of the rings, by the power vested in me by the Unity Of The Valley Church, the city of <strong>Eugene</strong>, the state of <strong>Oregon</strong>, and the country of <strong>United States Of America</strong>, I now pronounce that they are husband and wife in the Name of the Father, and of the Son, and of the Holy Spirit.  Those whom God has joined together let no one put asunder.</p>
    
    	<div class="panel panel-orange-side wedding-ceremony-section" id="kiss-section" style="visibility: visible">
    		<div class="panel-heading">Kiss</div>
    		<div class="panel-body"><p><span class="text-blue"><strong>Minister:</strong></span> You may express your love with a kiss.</p></div>
    
    	<div class="panel panel-orange-side wedding-ceremony-section" id="presentation-section" style="visibility: visible;">
    		<div class="panel-heading">Presentation</div>
    		<div class="panel-body"><p><strong>Minister:</strong></span> Friends and family, it is with the greatest of pleasure that I present to you <strong>Mr. and Mrs.</strong> <strong>Mary Jane</strong> and <strong>Kurt</strong> Schrum</strong>!
    
    	<div class="panel panel-orange-side wedding-ceremony-section" id="recessional-section" style="visibility: visible;">
    		<div class="panel-heading">Recessional</div>
    		<div class="panel-body">
    			~ Exit Music ~
    		<div class="panel-body"> 				~ Wedding March ~
    	</div>
    </div>
    

    </div>


  • Moderators

    @Annabelle said in Qt Programming Language:

    Which widget would I use to display the text of a ceremony script? I'm confused as to whether I want a QTextEdit, or some other widget. What I specifically want to do is display the text across the entire screen in Step 20. Is there such a widget as a QPanel? Here's an example of what I mean when I say, completed text in Step 20. This is in HTML. This is displayed after one presses the "Finish" button when creating a ceremony.

    I notice that your HTML document contains lots of "div" classes. This suggests to me that it relies on an external CSS stylesheet to visually format the script contents.

    QTextEdit and QTextBrowser can display simple HTML and CSS, but they don't support all modern HTML and CSS.

    A full-fledged HTML and CSS renderer is QWebEngineView, in the Qt WebEngine Widgets module. Give it a try. Note: You might need to re-run your installer and select the installer; I can't remember if it's installed by default. Also, on Windows, Qt WebEngine requires a recent Visual Studio compiler because it uses Chromium internally. Chromium doesn't support the MinGW compiler.



  • @JKSH said in Qt Programming Language:

    @Annabelle said in Qt Programming Language:

    Which widget would I use to display the text of a ceremony script? I'm confused as to whether I want a QTextEdit, or some other widget. What I specifically want to do is display the text across the entire screen in Step 20. Is there such a widget as a QPanel? Here's an example of what I mean when I say, completed text in Step 20. This is in HTML. This is displayed after one presses the "Finish" button when creating a ceremony.

    I notice that your HTML document contains lots of "div" classes. This suggests to me that it relies on an external CSS stylesheet to visually format the script contents.

    QTextEdit and QTextBrowser can display simple HTML and CSS, but they don't support all modern HTML and CSS.

    A full-fledged HTML and CSS renderer is QWebEngineView, in the Qt WebEngine Widgets module. Give it a try. Note: You might need to re-run your installer and select the installer; I can't remember if it's installed by default. Also, on Windows, Qt WebEngine requires a recent Visual Studio compiler because it uses Chromium internally. Chromium doesn't support the MinGW compiler.

    The HTML was an example. I wonder if there is an equivalent to Div classes in Qt. Like something for plain text?


  • Moderators

    @Annabelle said in Qt Programming Language:

    The HTML was an example. I wonder if there is an equivalent to Div classes in Qt. Like something for plain text?

    Can you give more details on your requirements? Who will use the display to view ceremony script?

    "Plain text" refers to the words only, without any visual formatting such as size, position, font, colour, etc.

    Nowadays, CSS files contain the visual formatting rules while HTML files contain the actual text content. Div classes in HTML files link a block of text content to the CSS rules.

    For example, your sample has many blocks of text tagged with the "panel-heading" div class, and many more blocks of text tagged with the "panel-body" div class. I'm guessing that the corresponding CSS file contains rules that format all "panel-heading" text in large, bold font; similarly, the CSS rules will probably format all "panel-body" text in much smaller font.

    QTextEdit does not support external CSS files, but it does support some "inline" CSS (which means the CSS rules are embedded in the HTML document itself). You can find out what's supported at http://doc.qt.io/qt-5/richtext-html-subset.html.

    If you only want to display plain, unformatted text, then you can use QTextEdit or QPlainTextEdit.



  • @JKSH said in Qt Programming Language:

    @Annabelle said in Qt Programming Language:

    The HTML was an example. I wonder if there is an equivalent to Div classes in Qt. Like something for plain text?

    Can you give more details on your requirements? Who will use the display to view ceremony script?

    "Plain text" refers to the words only, without any visual formatting such as size, position, font, colour, etc.

    Nowadays, CSS files contain the visual formatting rules while HTML files contain the actual text content. Div classes in HTML files link a block of text content to the CSS rules.

    For example, your sample has many blocks of text tagged with the "panel-heading" div class, and many more blocks of text tagged with the "panel-body" div class. I'm guessing that the corresponding CSS file contains rules that format all "panel-heading" text in large, bold font; similarly, the CSS rules will probably format all "panel-body" text in much smaller font.

    QTextEdit does not support external CSS files, but it does support some "inline" CSS (which means the CSS rules are embedded in the HTML document itself). You can find out what's supported at http://doc.qt.io/qt-5/richtext-html-subset.html.

    If you only want to display plain, unformatted text, then you can use QTextEdit or QPlainTextEdit.

    It's the latter, and the customer can customize what style they want to view it in. For example, if sighted customers want to customize the format of the text, they can adjust the font, size and color to their likings. As for blind customers, I'm not sure what they can adjust in this program, as most blind customers can't really see colors, and I'm not sure if size can be seen by screenreaders either. I wonder, where can I find the parameter that makes certain widgets appear when triggered by radio buttons. For example, in "Step 19: Choice of Music".

    				<div data-tab-body="step-19" style="visibility: visible;">
    					<div class="alert alert-info">
    								<strong>Choice Of Music:<strong>"Oftentimes, wedding ceremonies are accompanied by music. When it comes to favorite music, the choice is up to you. Simply fill in the name(s) of the song(s), and the artist/composer of the selection. Next, enter the part of the ceremony where you would like the music to play. Then, select whether you want those gathered to "listen to" the music, or "Sing Together". If you select "Listen To", a combo box appears, where you can select whether the source of the music is a "Recording", or a "live musician or Band". If you select "Recording", enter the name of the album from which the song is sourced, along with the "Selection Number" (Track Number) to cue up on the sound machine. If you select "Live Musician Or Band", enter the name of the musician or band who will be performing the song. If the musician is a soloist, choose which instrument they will be playing. If you select "Sing Together", an edit box appears where you can enter the name of the accompanist. The combo box next to it allows you to select the instrument which the accompanist is playing to accompany those gathered.">
    <hr>
    							<label>Song Name</label>
    							<input class="form-control" name="musicType[song_name]" id="music-type-song-name" type="text">
    							<label>Artist Name</label>
    							<input class="form-control" name="musicType[artist_name]" id="music-type-artist-name" type="text">
    							<label class="radio"><input checked="checked" name="musicType" value="listen" type="radio"> Listen To</label>
    							&nbsp;&nbsp;
    							<label class="radio"><input name="musicType" value="sing" type="radio"> Sing Together</label></br>
    							&nbsp;&nbsp;
    </html>
    


  • Here's some example code. This is for Step 2 of the Wedding Ceremony Builder. Tell me if this looks right to you. If there's anything I should change, please let me know.

    #include <qaccessible.h>
    #include <Qmainwindow.h>
    #include <qapplication.h>
    #include <qformlayout.h>
    #include <Qvbboxlayout.h>
    #include <qradiobutton.h>
    #include <qbuttongroup.h>
    #include <qgroupbox.h>
    #include <qpushbutton.h>
    #include <qlineedit.h>
    #include <qlabel.h>
    int main( int argc, char **argv ) {
    QApplication a( argc, argv );
    
    QFormLayout *form = newQFormLayout.show ()
    SetWindowTitle(tr("Step 2: The Basics");.show
    QLabel *theBasics = new QLabel(tr("To begin, enter the first names of the couple, the last name(s) they'll be using after their marriage, and the city/town, then select the state/province, and country in which the wedding will take place." this).show ();
    
    resize(480, 320);
    }
    QButtonGroup *buttonGroup = new buttonGroup(tr("Spouse 1 Gender").show
    QRadioButton *radio1 = new QRadioButton ("Bride", this);.show
    QString s = QString::fromUtf8("\u1F470");.show
    radio1->setChecked(true)
    QRadioButton *radio2 = new QRadioButton ("Groom", this);.show
    QString s = QString::fromUtf8("\u1F935");.show
    radio2->setChecked(false)
    QLineEdit *NameEdit = new QLineEdit ("Spouse 1 Name", this);.show
    QButtonGroup *buttonGroup = new buttonGroup(tr("Spouse 2 Gender").show
    QRadioButton *radio3 = new QRadioButton ("Bride", this);.show
    QString s = QString::fromUtf8("\u1F470");.show
    radio3->setChecked(false)
    QRadioButton *radio4 = new QRadioButton ("Groom", this);.show
    QString s = QString::fromUtf8("\u1F935");.show
    radio4->setChecked(true)
    QLineEdit *nameEdit = new QLineEdit ("Spouse 2 Name", this);.show
    QGroupBox *GroupBox = new QGroupBox(tr("Same Last Name").show
    QLineEdit *sameLastNameEdit = new QLineEdit "Last Name For Couple", this);.show
    QGroupBox *GroupBox = new QGroupBox(tr("Different Last Name").hide
    QLineEdit *differentLastNameEdit = new QLineEdit "Last Name For Spouse 1", this);.hide
    QLineEdit *differentLastNameEdit = new QLineEdit "Last Name For Spouse 2", this);.hide
    QCheckBox *sameLastName = new QCheckBox ("The Couple Plans To Use The Same Last Name After Marriage", this);.show
    QCheckBox->setChecked(true)
    connect(SameLastNameCheckBox, QCheckBox::stateChanged, [](int state) {
    LastNameForCoupleLineEdit->setVisible(state == QCheckBox::Checked);{
    LastNameForSpouse1LineEdit->setVisible(state == QCheckBox::Unchecked);{
    LastNameForSpouse2LineEdit->setVisible(state == QCheckBox::Unchecked);
    QPushButton *backButton = new QPushButton ("Back", this);.show
    QPushButton *nextButton = new QPushButton ("Next", this);.show
    QPushButton *acceptButton = new QPushButton ("Finish", this);.show
    QPushButton *rejectButton = new QPushButton ("Cancel", this);.show

  • Moderators

    Hi @Annabelle, did you try to compile your code? Your previous post contains typos and/or syntax errors. When you compile it, your compiler will tell you where the errors are and give you hints on how to fix them.

    When you want to include Qt classes, I recommend you write the full class name with correct casing. You don't need the ".h" suffix. For example, write #include <QMainWindow>, not #include <Qmainwindow.h>

    You added ".show" and ".hide" at the end of many lines. What are these for?



  • @JKSH said in Qt Programming Language:

    Hi @Annabelle, did you try to compile your code? Your previous post contains typos and/or syntax errors. When you compile it, your compiler will tell you where the errors are and give you hints on how to fix them.

    When you want to include Qt classes, I recommend you write the full class name with correct casing. You don't need the ".h" suffix. For example, write #include <QMainWindow>, not #include <Qmainwindow.h>

    You added ".show" and ".hide" at the end of many lines. What are these for?

    Specifically, there are three LineEdits, "Last Name For Couple", "Last Name For Spouse 1", and "Last Name For Spouse 2", and by default, if the "Same Last Name" checkbox is checked, I want the "Last Name For Spouse 1" and "Last Name for Spouse 2", contained in the "Different Last Name" group box, to be hidden, while the "Last Name For Couple", contained in the group box called "Same Last Name" is shown. Then when the checkbox is unchecked, the opposite occurs.


  • Moderators

    @Annabelle said in Qt Programming Language:

    Specifically, there are three LineEdits, "Last Name For Couple", "Last Name For Spouse 1", and "Last Name For Spouse 2", and by default, if the "Same Last Name" checkbox is checked, I want the "Last Name For Spouse 1" and "Last Name for Spouse 2", contained in the "Different Last Name" group box, to be hidden, while the "Last Name For Couple", contained in the group box called "Same Last Name" is shown. Then when the checkbox is unchecked, the opposite occurs.

    To make your program respond to checkboxes, use Qt's signals-and-slots mechanism. There is an introduction at http://doc.qt.io/qt-5/signalsandslots.html

    However, before you plunge into implementing your Ceremony Script Generator, it would be very helpful to first make sure you can successfully build a simple C++ program. Have you done this yet?



  • @JKSH said in Qt Programming Language:

    @Annabelle said in Qt Programming Language:

    Specifically, there are three LineEdits, "Last Name For Couple", "Last Name For Spouse 1", and "Last Name For Spouse 2", and by default, if the "Same Last Name" checkbox is checked, I want the "Last Name For Spouse 1" and "Last Name for Spouse 2", contained in the "Different Last Name" group box, to be hidden, while the "Last Name For Couple", contained in the group box called "Same Last Name" is shown. Then when the checkbox is unchecked, the opposite occurs.

    To make your program respond to checkboxes, use Qt's signals-and-slots mechanism. There is an introduction at http://doc.qt.io/qt-5/signalsandslots.html

    However, before you plunge into implementing your Ceremony Script Generator, it would be very helpful to first make sure you can successfully build a simple C++ program. Have you done this yet?

    No, I haven't done that yet. What did you have in mind? Also, here's an edited version of the code I made. I edited it in Notepad. Basically what I did, from what you'll se, I corrected the case-sensitive parameters manually, as well as deleted all instances of .show and .hide.

    #include <QAccessible>
    #include <QMainWindow>
    #include <QApplication>
    #include <QFormLayout>
    #include <QVBoxLayout>
    #include <QRadioButton>
    #include <QString>
    #include <QButtonGroup>
    #include <QGroupBox>
    #include <QCheckBox>
    #include <QComboBox>
    #include <QPushButton>
    #include <QLineEdit>
    #include <QLabel>
    int main( int argc, char **argv ) {
    QApplication a( argc, argv );
    
    QFormLayout *form = newQFormLayout ()
    SetWindowTitle(tr("Step 2: The Basics");
    QLabel *theBasics = new QLabel(tr("To begin, enter the first names of the couple, the last name(s) they'll be using after their marriage, and the city/town, then select the state/province, and country in which the wedding will take place." this) ();
    
    resize(1024, 768);
    }
    QButtonGroup *buttonGroup = new buttonGroup(tr("Spouse 1 Gender")
    QRadioButton *radio1 = new QRadioButton ("Bride", this);
    QString s = QString::fromUtf8("\u1F470");
    radio1->setChecked(false)
    QRadioButton *radio2 = new QRadioButton ("Groom", this);
    QString s = QString::fromUtf8("\u1F935");
    radio2->setChecked(false)
    QLineEdit *NameEdit = new QLineEdit ("Spouse 1 Name", this);
    QButtonGroup *buttonGroup = new buttonGroup(tr("Spouse 2 Gender")
    QRadioButton *radio3 = new QRadioButton ("Bride", this);
    QString s = QString::fromUtf8("\u1F470");
    radio3->setChecked(false)
    QRadioButton *radio4 = new QRadioButton ("Groom", this);
    QString s = QString::fromUtf8("\u1F935");
    radio4->setChecked(true)
    QLineEdit *nameEdit = new QLineEdit ("Spouse 2 Name", this);
    QGroupBox *GroupBox = new QGroupBox(tr("Same Last Name")
    QLineEdit *sameLastNameEdit = new QLineEdit "Last Name For Couple", this);
    QGroupBox *GroupBox = new QGroupBox(tr("Different Last Name")
    QLineEdit *differentLastNameEdit = new QLineEdit "Last Name For Spouse 1", this);
    QLineEdit *differentLastNameEdit = new QLineEdit "Last Name For Spouse 2", this);
    QCheckBox *sameLastName = new QCheckBox ("The Couple Plans To Use The Same Last Name After Marriage", this);
    QCheckBox->setChecked(true)
    connect(SameLastNameCheckBox, QCheckBox::stateChanged, [](int state) {
    LastNameForCoupleLineEdit->setVisible(state == QCheckBox::Checked);{
    LastNameForSpouse1LineEdit->setVisible(state == QCheckBox::Unchecked);{
    LastNameForSpouse2LineEdit->setVisible(state == QCheckBox::Unchecked);
    QGroupBox *GroupBox = new QGroupBox(tr("Wedding Location")
    QLineEdit *weddingLocationEdit = new QLineEdit "City/Town", this);
    QComboBox *combobox = new QComboBox((tr("State/Province"), this);
    QPushButton *backButton = new QPushButton ("Back", this);
    QPushButton *nextButton = new QPushButton ("Next", this);
    QPushButton *acceptButton = new QPushButton ("Finish", this);
    QPushButton *rejectButton = new QPushButton ("Cancel", this);
    


  • @JKSH In the most recent message in the chat I made, when you said we should continue the conversation right here in the forum, you said that there is a way to have gender-neutral text replaced with gender-specific text via C++ code. Could you please be so kind as to tell me how I would make this happen so I could put it as a parameter in my app?


  • Moderators

    @Annabelle said in Qt Programming Language:

    @JKSH In the most recent message in the chat I made, when you said we should continue the conversation right here in the forum, you said that there is a way to have gender-neutral text replaced with gender-specific text via C++ code. Could you please be so kind as to tell me how I would make this happen so I could put it as a parameter in my app?

    In programming, the concept of replacing text on-the-fly is called "string building". All modern programming languages provide this ability.

    In the C++ language, you can use a Qt class called QString. In the example below, context is a C++ Enumeration:

    QString opening = "This item belongs to";
    
    QString ending;
    if (context == SingularMale)
        ending = "him";
    else if (context == SingularFemale)
        ending = "her";
    else
        ending = "them";
    
    QString sentence = opening + ' ' + ending + '.';
    

    So if context is SingularFemale, then the final sentence is "This item belongs to her." If context is neither SingularMale nor SingularFemale, then the final sentence is "This item belongs to them."

    This example was simple, but it contains multiple concepts which I haven't explained in detail:

    • String building
    • Variables and literals
    • Enumerations
    • The assignment operator, =, and the comparison operator. ==
    • Conditional Branching, using the if keyword

    I highly recommend you take some time to learn the foundations of C++ to familiarize yourself with these concepts (among others). This will help you tremendously in your efforts to create your Ceremony Script Generator app.

    @Annabelle said in Qt Programming Language:

    @JKSH said in Qt Programming Language:

    However, before you plunge into implementing your Ceremony Script Generator, it would be very helpful to first make sure you can successfully build a simple C++ program. Have you done this yet?

    No, I haven't done that yet. What did you have in mind?

    Well, you need numerous tools to create an app. Early in your programming journey, you need to learn how to use these tools. The most important of these is the Compiler -- it converts your code into a functioning app.

    The best thing you can do right now is to learn the basics of C++. Do this before you make any more changes to your code.

    I have little experience in programming without sight, but here are a few programmers who have shared their experiences: https://stackoverflow.com/questions/118984/how-can-you-program-if-youre-blind

    Also, here's an edited version of the code I made. I edited it in Notepad. Basically what I did, from what you'll se, I corrected the case-sensitive parameters manually, as well as deleted all instances of .show and .hide.

    I will not go through your code for now, because it is not trivial to do so at this stage.

    First, you must learn the basics of C++. Learn to write, compile, and run a very simple app (usually called a "Hello World" app). After that, re-visit your code again, and you should be able to spot many things that need to be changed.



  • I think I'll take the time to suggest learncpp.com if you don't have a place to learn C++ already. It is a webpage, which means your screenreader should be able to read it, it is free, and the author doesn't make assumptions about what you might already know. The author also primarily uses Visual Studio, which does support some screenreaders, although I don't know which screenreader you're using.



  • @idkwtph said in Qt Programming Language:

    I think I'll take the time to suggest learncpp.com if you don't have a place to learn C++ already. It is a webpage, which means your screenreader should be able to read it, it is free, and the author doesn't make assumptions about what you might already know. The author also primarily uses Visual Studio, which does support some screenreaders, although I don't know which screenreader you're using.

    I use JAWS (Job Access With Speech).


  • Moderators

    This post is deleted!


  • @JKSH said in Qt Programming Language:

    @Annabelle said in Qt Programming Language:

    @JKSH In the most recent message in the chat I made, when you said we should continue the conversation right here in the forum, you said that there is a way to have gender-neutral text replaced with gender-specific text via C++ code. Could you please be so kind as to tell me how I would make this happen so I could put it as a parameter in my app?

    In programming, the concept of replacing text on-the-fly is called "string building". All modern programming languages provide this ability.

    In the C++ language, you can use a Qt class called QString. In the example below, context is a C++ Enumeration:

    QString opening = "This item belongs to";
    
    QString ending;
    if (context == SingularMale)
        ending = "him";
    else if (context == SingularFemale)
        ending = "her";
    else
        ending = "them";
    
    QString sentence = opening + ' ' + ending + '.';
    

    So if context is SingularFemale, then the final sentence is "This item belongs to her." If context is neither SingularMale nor SingularFemale, then the final sentence is "This item belongs to them."

    This example was simple, but it contains multiple concepts which I haven't explained in detail:

    • String building
    • Variables and literals
    • Enumerations
    • The assignment operator, =, and the comparison operator. ==
    • Conditional Branching, using the if keyword

    I highly recommend you take some time to learn the foundations of C++ to familiarize yourself with these concepts (among others). This will help you tremendously in your efforts to create your Ceremony Script Generator app.

    @Annabelle said in Qt Programming Language:

    @JKSH said in Qt Programming Language:

    However, before you plunge into implementing your Ceremony Script Generator, it would be very helpful to first make sure you can successfully build a simple C++ program. Have you done this yet?

    No, I haven't done that yet. What did you have in mind?

    Well, you need numerous tools to create an app. Early in your programming journey, you need to learn how to use these tools. The most important of these is the Compiler -- it converts your code into a functioning app.

    The best thing you can do right now is to learn the basics of C++. Do this before you make any more changes to your code.

    I have little experience in programming without sight, but here are a few programmers who have shared their experiences: https://stackoverflow.com/questions/118984/how-can-you-program-if-youre-blind

    Also, here's an edited version of the code I made. I edited it in Notepad. Basically what I did, from what you'll se, I corrected the case-sensitive parameters manually, as well as deleted all instances of .show and .hide.

    I will not go through your code for now, because it is not trivial to do so at this stage.

    First, you must learn the basics of C++. Learn to write, compile, and run a very simple app (usually called a "Hello World" app). After that, re-visit your code again, and you should be able to spot many things that need to be changed.

    Is there a web site I can go to in order to learn more about these concepts you explain? I've tried http://www.learncpp.com, but what's there doesn't seem to focus on some of the code you explained. However, it does say some fascinating details about basic program structures, variables, and a bit of complicated mathematics jargon, possibly probability, which I'm not even sure how it works. However, the website does work well with JAWS screenreader software.


  • Moderators

    @Annabelle said in Qt Programming Language:

    I use JAWS (Job Access With Speech).

    JAWS does work with Visual Studio: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/d9b295e6-fa48-4c44-8129-37ccf55689f9/is-visual-studio-compatable-with-any-screen-readers-for-example-jaws-nvda-or-zoomtext-i-am

    @Annabelle said in Qt Programming Language:

    Is there a web site I can go to in order to learn more about these concepts you explain? I've tried http://www.learncpp.com, but what's there doesn't seem to focus on some of the code you explained.

    All the concepts I mentioned are discussed in http://www.learncpp.com.

    • Strings are in chapters 4, 6, and 17.
    • Variables are in chapters 1, 2, and 4.
    • Literals are in chapter 2.
    • Enumerations are in chapter 4.
    • Assignment and comparison operators are in chapter 1 (specifically, section 1.5).
    • if statements are in chapters 2 and 5.

    At the very least, work through all of chapter 0, all of chapter 1, section 2.1, and section 2.6. After that, search for the concepts I mentioned before.

    This will take time (a few weeks at least), but it will be worth it.

    All the best with learning C++!



  • @JKSH said in Qt Programming Language:

    @Annabelle said in Qt Programming Language:

    I use JAWS (Job Access With Speech).

    JAWS does work with Visual Studio: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/d9b295e6-fa48-4c44-8129-37ccf55689f9/is-visual-studio-compatable-with-any-screen-readers-for-example-jaws-nvda-or-zoomtext-i-am

    @Annabelle said in Qt Programming Language:

    Is there a web site I can go to in order to learn more about these concepts you explain? I've tried http://www.learncpp.com, but what's there doesn't seem to focus on some of the code you explained.

    All the concepts I mentioned are discussed in http://www.learncpp.com.

    • Strings are in chapters 4, 6, and 17.
    • Variables are in chapters 1, 2, and 4.
    • Literals are in chapter 2.
    • Enumerations are in chapter 4.
    • Assignment and comparison operators are in chapter 1 (specifically, section 1.5).
    • if statements are in chapters 2 and 5.

    At the very least, work through all of chapter 0, all of chapter 1, section 2.1, and section 2.6. After that, search for the concepts I mentioned before.

    This will take time (a few weeks at least), but it will be worth it.

    All the best with learning C++!

    Will this document also explain in detail the complex widgets like combo boxes, list views, and tree views, as well as the simple widgets like line edits, multiline edits, buttons and checkboxes?


  • Moderators

    @Annabelle said in Qt Programming Language:

    Will this document also explain in detail the complex widgets like combo boxes, list views, and tree views, as well as the simple widgets like line edits, multiline edits, buttons and checkboxes?

    It doesn't, because it is a C++ document, not a Qt document.

    Note that Qt is a C++ library. When you have a good understanding of C++, then the documentation for Qt widgets will become much clearer to you.



  • @JKSH I'm reading the tutorials right now, especially the ones you asked me to, and it seems I'm stuck on something. When I read these tutorials carefully, they provide some examples which are graphics, which my screenreader can't read. I wrote a request to Alex, the head administrator of http://www.learncpp.com, and he hasn't answered yet. Here's what I said in my request:

    Hi, Alex, my name is Annabelle.
    I am a blind woman who is studying your tutorials to learn how to make programs using the C++ programming language, and so far, I like it a lot. However, a lot of the examples you give are shown as graphics, which I can't seem to follow, as I can't see what's there. Even JAWS (Job Access With Speech), my screenreader software, doesn't recognize images. I, along with my screenreader, can only recognize text-based documents, so I wonder if you could please be so kind as to update your tutorials by including, in addition to the graphics for those who are sighted, examples made out of text-based code, for those who are blind like me? I would kindly appreciate it. This is my first time studying your tutorials, as I'm just a beginner at programming. I was referred to your tutorials by a guy who goes by the username JKSH on the Qt forum at http://forum.qt.io, as part of a post I've created called Qt Programming Language, which can be found here: https://forum.qt.io/topic/82956/qt-programming-language/. If
    you have any further information, questions, or suggestions for me, please feel free to Email me at any time, as I check my Emails several times each day. If you'd like, whenever it's convenient for you, you can give me a call as well. My phone number is redacted. Any time after 6:00 AM Pacific Time, and any time before 10:00 PM Pacific Time is when I'm usually awake. Also, when you call, you might get an answering machine, as I'm sometimes not home when the phone rings. If you do get an answering machine, don't be fooled by the greeting, as it is simply me with an Australian accent, which by the way is my natural accent, and not some fake one I put on. Usually when I talk to people on the phone, my English is what some people call an American accent, which really irks me to the point of getting mad. To be technically accurate, I'd rather say that it's unaccented English. Anyway, if you can't fully understand it, here's what I say in the greeting when the answering machine comes on.
    "G'day, mate! You've reached the house of Annabelle. The lovely House Of Australia! I can't come to the phone right now. But if you leave your name, your
    number, and a message after the tone, I'll get back with you as soon as I can. Thank you, and have a nice day! Cheerio!".

    Kind Regards,

    Annabelle

    [Edit: Removed email and phone number SGaist]



  • @Annabelle As I'm the one who initially suggested it, I'm someone who has gone through most of the lessons. Luckily, there are not a lot of image-based examples. Chapter 0 has the greatest amount of images, most lessons only have code-based examples that should be readable with JAWS.

    Images in Chapter 0.2 explain the use of Compilers and Interpreters, and the method in which they work. These images are not required to progress, their only purpose is to explain what was just explained in the paragraph(s) above in a simpler format.

    The graphic in Chapter 0.4 lists the titles of Steps 1-7 of a simple way to design a program, and the direction of flow for these steps. The titles and step numbers are titles in 0.4 and 0.5 that you should be able to read. The only important thing to take away from this image is that once you reach step 6 (Test the program), if you find it necessary to move on to step 7 (debugging), you will have to move back to step 4 (Compiling the program) and continue from there until you no longer need to fix bugs.

    The first image in Chapter 0.5 is the same as the previous image from Chapter 0.4. The other images in the chapter are not strictly necessary if you can understand the text above them.

    In Chapter 0.6 and Chapter 0.7, the graphics are screenshots aimed at assisting users in installing their IDE and helping with their first time compiling. If you have issues, you may want to ask for help from the creators of the IDE, who will better able to understand their accessibility features and help you to understand them as well.

    In Chapter 0.9 there are two images showing the location of the Solution Configurations dropdown menu. This should be accessible through the IDE's accessibility features.

    In Chapter 0.10 and 0.11, the images only convey locations of various menu options. These are mentioned in text, so there shouldn't be much issue knowing which to choose.

    Hopefully that's enough for you to be able to progress slightly while Alex finds a way to address the issue. There are some images in later lessons, but they are few and far between, and Alex should have time to address them before you reach that far.



  • @idkwtph said in Qt Programming Language:

    @Annabelle As I'm the one who initially suggested it, I'm someone who has gone through most of the lessons. Luckily, there are not a lot of image-based examples. Chapter 0 has the greatest amount of images, most lessons only have code-based examples that should be readable with JAWS.

    Images in Chapter 0.2 explain the use of Compilers and Interpreters, and the method in which they work. These images are not required to progress, their only purpose is to explain what was just explained in the paragraph(s) above in a simpler format.

    The graphic in Chapter 0.4 lists the titles of Steps 1-7 of a simple way to design a program, and the direction of flow for these steps. The titles and step numbers are titles in 0.4 and 0.5 that you should be able to read. The only important thing to take away from this image is that once you reach step 6 (Test the program), if you find it necessary to move on to step 7 (debugging), you will have to move back to step 4 (Compiling the program) and continue from there until you no longer need to fix bugs.

    The first image in Chapter 0.5 is the same as the previous image from Chapter 0.4. The other images in the chapter are not strictly necessary if you can understand the text above them.

    In Chapter 0.6 and Chapter 0.7, the graphics are screenshots aimed at assisting users in installing their IDE and helping with their first time compiling. If you have issues, you may want to ask for help from the creators of the IDE, who will better able to understand their accessibility features and help you to understand them as well.

    In Chapter 0.9 there are two images showing the location of the Solution Configurations dropdown menu. This should be accessible through the IDE's accessibility features.

    In Chapter 0.10 and 0.11, the images only convey locations of various menu options. These are mentioned in text, so there shouldn't be much issue knowing which to choose.

    Hopefully that's enough for you to be able to progress slightly while Alex finds a way to address the issue. There are some images in later lessons, but they are few and far between, and Alex should have time to address them before you reach that far.

    I know that on my Windows 7 Machine, I have Microsoft Visual Studio 2015, which is listed as a "redistributable". However, I'm not sure how to access it, as I don't know where on my computer it's located. I did, however, install Qmake.exe, which is part of the Qt series, of which I think I have three versions on my machine, the latest of which is Qt 5.11.


  • Moderators

    @Annabelle said in Qt Programming Language:

    I have Microsoft Visual Studio 2015, which is listed as a "redistributable". However, I'm not sure how to access it, as I don't know where on my computer it's located.

    You have not yet installed Visual Studio.

    Visual Studio is an Integrated Development Environment (IDE). It comes with tools to edit code and compile applications.

    The term REDISTRIBUTABLE refers to a small set of libraries that are needed to run applications that have been built using Visual Studio's compiler. Its name implies that these libraries are meant to be distributed to the end-users, together with the application.

    https://www.learncpp.com/cpp-tutorial/installing-an-integrated-development-environment-ide/ talks about installing an IDE, and it provides a link for Installing Visual Studio 2017 Community Edition. Follow that link and install Visual Studio. You can safely ignore the other sections below that, which talk about other IDEs.

    I did, however, install Qmake.exe, which is part of the Qt series, of which I think I have three versions on my machine, the latest of which is Qt 5.11.

    For now, you don't need your Qt installation. I believe it is easier to learn plain C++ without adding Qt to the mix.



  • @JKSH said in Qt Programming Language:

    @Annabelle said in Qt Programming Language:

    I have Microsoft Visual Studio 2015, which is listed as a "redistributable". However, I'm not sure how to access it, as I don't know where on my computer it's located.

    You have not yet installed Visual Studio.

    Visual Studio is an Integrated Development Environment (IDE). It comes with tools to edit code and compile applications.

    The term REDISTRIBUTABLE refers to a small set of libraries that are needed to run applications that have been built using Visual Studio's compiler. Its name implies that these libraries are meant to be distributed to the end-users, together with the application.

    https://www.learncpp.com/cpp-tutorial/installing-an-integrated-development-environment-ide/ talks about installing an IDE, and it provides a link for Installing Visual Studio 2017 Community Edition. Follow that link and install Visual Studio. You can safely ignore the other sections below that, which talk about other IDEs.

    I did, however, install Qmake.exe, which is part of the Qt series, of which I think I have three versions on my machine, the latest of which is Qt 5.11.

    For now, you don't need your Qt installation. I believe it is easier to learn plain C++ without adding Qt to the mix.

    I once tried installing Visual Studio onto my machine, and it gave me a virus. That's why I'm cautious about installing software I don't understand, especially from companies I'm not sure I trust, onto my machine, unless it comes from a reputable source. And, I especially don't want to have to restore my machine to working order, since I've already had to do that at least three times within a span of three years, each time with the result of accidentally formatting the wrong hard drive (There are three in my machine).


  • Moderators

    @Annabelle said in Qt Programming Language:

    I once tried installing Visual Studio onto my machine, and it gave me a virus. That's why I'm cautious about installing software I don't understand, especially from companies I'm not sure I trust, onto my machine, unless it comes from a reputable source. And, I especially don't want to have to restore my machine to working order, since I've already had to do that at least three times within a span of three years, each time with the result of accidentally formatting the wrong hard drive (There are three in my machine).

    I'm sorry to hear that you've suffered these incidents.

    One way to ensure that a software's source is reputable is to check that you're downloading from the official website. We know that Visual Studio is released by Microsoft, so make sure you download Visual Studio from Microsoft's website only, and not from any other place. You are using Windows 7 so I presume you trust Microsoft enough? The official place for downloading Visual Studio is https://visualstudio.microsoft.com/downloads/ (take the Community Edition)

    I'd like to highlight: To take full advantage of the tutorial, it's important to follow along and actually do the steps described in the tutorial. It is not enough to just read them.



  • @JKSH said in Qt Programming Language:

    @Annabelle said in Qt Programming Language:

    I once tried installing Visual Studio onto my machine, and it gave me a virus. That's why I'm cautious about installing software I don't understand, especially from companies I'm not sure I trust, onto my machine, unless it comes from a reputable source. And, I especially don't want to have to restore my machine to working order, since I've already had to do that at least three times within a span of three years, each time with the result of accidentally formatting the wrong hard drive (There are three in my machine).

    I'm sorry to hear that you've suffered these incidents.

    One way to ensure that a software's source is reputable is to check that you're downloading from the official website. We know that Visual Studio is released by Microsoft, so make sure you download Visual Studio from Microsoft's website only, and not from any other place. You are using Windows 7 so I presume you trust Microsoft enough? The official place for downloading Visual Studio is https://visualstudio.microsoft.com/downloads/ (take the Community Edition)

    I'd like to highlight: To take full advantage of the tutorial, it's important to follow along and actually do the steps described in the tutorial. It is not enough to just read them.

    And, I really hope this software isn't too spendy for me, since when I buy software, especially virtual instruments and audio plugins, I end up spending sometimes upwards of $100.00 or more!


  • Moderators

    @Annabelle said in Qt Programming Language:

    And, I really hope this software isn't too spendy for me, since when I buy software, especially virtual instruments and audio plugins, I end up spending sometimes upwards of $100.00 or more!

    Visual Studio Community Edition is completely free for personal use.



  • @JKSH said in Qt Programming Language:

    @Annabelle said in Qt Programming Language:

    And, I really hope this software isn't too spendy for me, since when I buy software, especially virtual instruments and audio plugins, I end up spending sometimes upwards of $100.00 or more!

    Visual Studio Community Edition is completely free for personal use.

    Is there a way for me to make sure that Visual Studio Community is completely free of adware, malware, spyware, and viruses before installation onto my machine? Should I scan it with Microsoft Security Essentials and Windows Defender?


Log in to reply