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?
-
@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?
-
@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
isSingularFemale
, then the final sentence is "This item belongs to her." Ifcontext
is neitherSingularMale
norSingularFemale
, 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).
-
@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
isSingularFemale
, then the final sentence is "This item belongs to her." Ifcontext
is neitherSingularMale
norSingularFemale
, 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.
-
@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?
-
@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 isredacted
. 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.
-
@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).
-
@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!
-
@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?