Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Qt Programming Language
QtWS25 Last Chance

Qt Programming Language

Scheduled Pinned Locked Moved Unsolved General and Desktop
331 Posts 17 Posters 305.3k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #24

    That's where signals and slots comes into play. For each control proposing a choice you will have a slot that will modify your UI based on the state/choice of the control that was just modified.

    Interested in AI ? www.idiap.ch
    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

    A 3 Replies Last reply
    0
    • SGaistS SGaist

      That's where signals and slots comes into play. For each control proposing a choice you will have a slot that will modify your UI based on the state/choice of the control that was just modified.

      A Offline
      A Offline
      Annabelle
      wrote on last edited by
      #25

      @SGaist said in Qt Programming Language:

      That's where signals and slots comes into play. For each control proposing a choice you will have a slot that will modify your UI based on the state/choice of the control that was just modified.

      I would appreciate if you could please be so kind as to give me an example of code as to what this will look like. Also, here's a bit of an example of Qt widget code I've put together. Please tell me if this looks right. If there's anything I need to change in my code, please let me know.

      QButtonGroup
      QRadioButton *button = new QRadioButton ("Bride", this);
      QRadioButton *button = new QRadioButton ("Groom", this);
      QLineEdit *lineEdit = new QLineEdit ("Spouse 1 Name", this);
      QButtonGroup
      QRadioButton *button = new QRadioButton ("Bride", this);
      QRadioButton *button = new QRadioButton ("Groom", this);
      QLineEdit *lineEdit = new QLineEdit ("Spouse 2 Name", this);
      QPushButton *button = new QPushButton ("Back", this);
      QPushButton *button = new QPushButton ("Next", this);
      
      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #26

        Do you want to build something like a QWizard ?

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        A 1 Reply Last reply
        0
        • SGaistS SGaist

          Do you want to build something like a QWizard ?

          A Offline
          A Offline
          Annabelle
          wrote on last edited by
          #27

          @SGaist said in Qt Programming Language:

          Do you want to build something like a QWizard ?

          I guess you could say that. Then when customers come to the last step, the "Download" button would be like the "Finish" button of an Installation Program if you like. So when customers click the "Download" button, a finished document appears on their screen. Then there could be a "Print" button, and a "Save" button.

          1 Reply Last reply
          0
          • SGaistS Offline
            SGaistS Offline
            SGaist
            Lifetime Qt Champion
            wrote on last edited by
            #28

            There's something that is not exactly clear. Do you want to write an application that people install on there computer to generate these scripts ? Or should they go to some sort of web site ?

            Interested in AI ? www.idiap.ch
            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

            A 1 Reply Last reply
            0
            • SGaistS SGaist

              There's something that is not exactly clear. Do you want to write an application that people install on there computer to generate these scripts ? Or should they go to some sort of web site ?

              A Offline
              A Offline
              Annabelle
              wrote on last edited by
              #29

              @SGaist said in Qt Programming Language:

              There's something that is not exactly clear. Do you want to write an application that people install on there computer to generate these scripts ? Or should they go to some sort of web site ?

              It's the former. I want to build an application that people install on their computer.

              1 Reply Last reply
              0
              • SGaistS Offline
                SGaistS Offline
                SGaist
                Lifetime Qt Champion
                wrote on last edited by
                #30

                Ok, then I'd recommend breaking your current design in logical pieces. For example, there's no need to double the number of widget to handle both spouse names. You can create one widget for that part and then have two instances of it in your "main widget".

                Interested in AI ? www.idiap.ch
                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                A 1 Reply Last reply
                0
                • SGaistS SGaist

                  Ok, then I'd recommend breaking your current design in logical pieces. For example, there's no need to double the number of widget to handle both spouse names. You can create one widget for that part and then have two instances of it in your "main widget".

                  A Offline
                  A Offline
                  Annabelle
                  wrote on last edited by
                  #31

                  @SGaist said in Qt Programming Language:

                  Ok, then I'd recommend breaking your current design in logical pieces. For example, there's no need to double the number of widget to handle both spouse names. You can create one widget for that part and then have two instances of it in your "main widget".

                  Two instances of the same widget? I'm confused! Could you please tell me exactly how I could do that? Here's a bit of code, I don't know if this is what you want me to try.

                  QFormLayout *form = newQFormLayout:
                  SetWindowTitle(tr("Step 2");
                  resize(480, 320);
                  }
                  QButtonGroup *buttonGroup = new buttonGroup(tr("Spouse 1 Gender")
                  QRadioButton *radio1 = new QRadioButton ("Bride", this);
                  QRadioButton *radio2 = new QRadioButton ("Groom", this);
                  radio1->setChecked(true)
                  QLineEdit *Spouse1NameEdit = new QLineEdit (this);
                  QLabel *NameLabel = new QLabel("Spouse 1 Name", this);
                  NameLabel->setBuddy(Spouse1NameEdit);
                  QButtonGroup *buttonGroup = new buttonGroup(tr("Spouse 2 Gender")
                  QRadioButton *radio3 = new QRadioButton ("Bride", this);
                  QRadioButton *radio4 = new QRadioButton ("Groom", this);
                  radio4->setChecked(true)
                  QLineEdit *Spouse2NameEdit = new QLineEdit (this);
                  QLabel *NameLabel = new QLabel("Spouse 2 Name", this);
                  NameLabel->setBuddy(Spouse2NameEdit);
                  QPushButton *button = new QPushButton ("Back", this);
                  QPushButton *button = new QPushButton ("Next", this);
                  
                  I also want to find out, how do I put the following text into the beginning of the window when the customer gets to this specific screen.
                  
                  "The Basics: 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."
                  

                  Same goes for any of the other screens up to the "Finish" screen. The text of the "Finish" screen will say:

                  "Congratulations! You just built a one-of-a-kind wedding ceremony. Click the "Download" button to read your wedding script in the wizard. Click the "Save" button to save your script in any text format on your computer. Click the "Print" button to send your script to your printer." The kind of ceremony changes, depending on what is selected in the "Welcome" screen. Either a "Wedding Ceremony", a "Baptism Ceremony", or a "Funeral Ceremony".
                  1 Reply Last reply
                  0
                  • SGaistS Offline
                    SGaistS Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on last edited by
                    #32

                    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.

                    Interested in AI ? www.idiap.ch
                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                    A 2 Replies Last reply
                    0
                    • A Offline
                      A Offline
                      Annabelle
                      wrote on last edited by
                      #33

                      I also want to find out, how do I put the following text into the beginning of the window when the customer gets to this specific screen.

                      "The Basics: 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."
                      Same goes for any of the other screens up to the "Finish" screen. The text of the "Finish" screen will say:

                      "Congratulations! You just built a one-of-a-kind wedding ceremony. Click the "Download" button to read your wedding script in the wizard. Click the "Save"
                      button to save your script in any text format on your computer. Click the "Print" button to send your script to your printer." The kind of ceremony changes,
                      depending on what is selected in the "Welcome" screen. Either a "Wedding Ceremony", a "Baptism Ceremony", or a "Funeral Ceremony".

                      1 Reply Last reply
                      0
                      • SGaistS SGaist

                        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.

                        A Offline
                        A Offline
                        Annabelle
                        wrote on last edited by
                        #34

                        @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.

                        After I compile all my widgets in Notepad++, how would I turn them into an executable program?

                        1 Reply Last reply
                        0
                        • SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #35

                          You can use a QLabel to show the text and add it at the bottom of the QFormLayout without specifying a text.

                          As for your question with Notepad++, maybe using this plugin ?

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          A 2 Replies Last reply
                          0
                          • SGaistS SGaist

                            You can use a QLabel to show the text and add it at the bottom of the QFormLayout without specifying a text.

                            As for your question with Notepad++, maybe using this plugin ?

                            A Offline
                            A Offline
                            Annabelle
                            wrote on last edited by
                            #36

                            @SGaist said in Qt Programming Language:

                            You can use a QLabel to show the text and add it at the bottom of the QFormLayout without specifying a text.

                            As for your question with Notepad++, maybe using this plugin ?

                            Could you please explain what you mean when you say, "You can use a QLabel to show the text and add it at the bottom of the QFormLayout without specifying a text."? I'm a bit confused on that one!

                            1 Reply Last reply
                            0
                            • SGaistS SGaist

                              You can use a QLabel to show the text and add it at the bottom of the QFormLayout without specifying a text.

                              As for your question with Notepad++, maybe using this plugin ?

                              A Offline
                              A Offline
                              Annabelle
                              wrote on last edited by
                              #37

                              @SGaist said in Qt Programming Language:

                              You can use a QLabel to show the text and add it at the bottom of the QFormLayout without specifying a text.

                              As for your question with Notepad++, maybe using this plugin ?

                              I tried installing that plugin, but when I launched Notepad++, a screen popped up with a message telling me that the plugin isn't compatible with the version of Notepad++ I have. Is that because I have a newer version of Notepad++? I'm confused on that one!

                              1 Reply Last reply
                              0
                              • SGaistS Offline
                                SGaistS Offline
                                SGaist
                                Lifetime Qt Champion
                                wrote on last edited by
                                #38

                                Like shown in my sample widget, you should use layouts in order to place your widgets around in your application. Therefore my suggestion, put your text into a QLabel with setText and then put that label at the appropriate place within the layout.

                                As for the plugin, it might be out of date regarding the version of Notepad++. If possible, I'd recommend using Qt Creator in order to build your application. It would likely make things easier.

                                Interested in AI ? www.idiap.ch
                                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                A 1 Reply Last reply
                                0
                                • A Offline
                                  A Offline
                                  Annabelle
                                  wrote on last edited by
                                  #39

                                  How would I be able to use QT Creator to make my project? Would I put the code I've already made in Notepad++ into a new project in Qt Creator? What would I do?

                                  1 Reply Last reply
                                  0
                                  • SGaistS SGaist

                                    Like shown in my sample widget, you should use layouts in order to place your widgets around in your application. Therefore my suggestion, put your text into a QLabel with setText and then put that label at the appropriate place within the layout.

                                    As for the plugin, it might be out of date regarding the version of Notepad++. If possible, I'd recommend using Qt Creator in order to build your application. It would likely make things easier.

                                    A Offline
                                    A Offline
                                    Annabelle
                                    wrote on last edited by
                                    #40

                                    @SGaist said in Qt Programming Language:

                                    Like shown in my sample widget, you should use layouts in order to place your widgets around in your application. Therefore my suggestion, put your text into a QLabel with setText and then put that label at the appropriate place within the layout.

                                    As for the plugin, it might be out of date regarding the version of Notepad++. If possible, I'd recommend using Qt Creator in order to build your application. It would likely make things easier.

                                    I can't access Qt Creator with my screenreader, JAWS (Job Access With Speech). That's why I'm making the code in Notepad++. I just wish I knew how to make the finished program.

                                    1 Reply Last reply
                                    0
                                    • A Offline
                                      A Offline
                                      Annabelle
                                      wrote on last edited by
                                      #41

                                      I'm still a bit stuck on this Qt Programming Language. Since I can't access Qt Creator with my JAWS screenreader, as it doesn't recognize image-based icons, how else can I create a finished program after compiling the source code in Notepad++? Anybody have any answers for me?

                                      mrjjM 1 Reply Last reply
                                      0
                                      • A Annabelle

                                        I'm still a bit stuck on this Qt Programming Language. Since I can't access Qt Creator with my JAWS screenreader, as it doesn't recognize image-based icons, how else can I create a finished program after compiling the source code in Notepad++? Anybody have any answers for me?

                                        mrjjM Offline
                                        mrjjM Offline
                                        mrjj
                                        Lifetime Qt Champion
                                        wrote on last edited by
                                        #42

                                        @Annabelle
                                        So you can compile it already?
                                        Or is it the compiling part that is hard to do ?

                                        Can the JAWS read a command prompt ?

                                        A 1 Reply Last reply
                                        0
                                        • A Offline
                                          A Offline
                                          Annabelle
                                          wrote on last edited by
                                          #43

                                          I'm still a bit confused on how to make the finished program. I can't access the Qt Creator, since my screenreader, or any screenreaders, for that matter, won't recognize image-based icons. Is there a way for someone blind like me to create a finished program such as the app I'm putting together, after compiling the source code in Notepad++?

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved