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
Forum Updated to NodeBB v4.3 + New Features

Qt Programming Language

Scheduled Pinned Locked Moved Unsolved General and Desktop
331 Posts 17 Posters 315.1k Views 9 Watching
  • 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.
  • A Annabelle
    10 Oct 2017, 13:30

    @ambershark said in Qt Programming Language:

    @Annabelle No you will have to install Qt. You don't need to install the Creator part of Qt, but if you do it won't hurt. You can disable the install of Qt Creator as an advanced part of the install.

    I tried that, but even the installer can't be fully accessed with JAWS or NVDA. Not even the built-in Microsoft Narrator that comes with Windows 7 can access that checkbox you're talking about. I've put in an Email message to the Qt Creator team, and unfortunately they haven't sent me an answer yet.

    A Offline
    A Offline
    ambershark
    wrote on 11 Oct 2017, 04:19 last edited by
    #118

    @Annabelle It won't hurt to just do the default install with Qt Creator. You'll still get Qt and the command line tools like Qmake using the default install. So I wouldn't worry about not being able to access that checkbox.

    Would be a nice thing to have fixed for the future though.

    My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

    1 Reply Last reply
    0
    • S Offline
      S Offline
      Sunfluxgames
      wrote on 11 Oct 2017, 13:00 last edited by
      #119

      @ambershark Is it possible we could write Morse code aka keyboard and just tab through the boxes on the installer and select what she needs by pressing keys?

      A 1 Reply Last reply 11 Oct 2017, 21:04
      0
      • S Sunfluxgames
        11 Oct 2017, 13:00

        @ambershark Is it possible we could write Morse code aka keyboard and just tab through the boxes on the installer and select what she needs by pressing keys?

        A Offline
        A Offline
        ambershark
        wrote on 11 Oct 2017, 21:04 last edited by
        #120

        @Sunfluxgames You wouldn't really have to write anything.. someone could just run the installer and figure out the exact keypresses she needs to get to the box she wants to uncheck and then list them here. If she's careful she can do it without a screen reader.

        Also having a friend help install it would work too.

        But again, it's not necessary at all to uncheck qt creator. I usually let it install Qt Creator and I pretty much never use it. I can spare the 200mb or whatever it is on my hard drive though. :)

        My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

        1 Reply Last reply
        0
        • S SGaist
          10 Oct 2017, 19:37

          He's the community manager but currently pretty busy with the Qt Contributor Summit as well as Qt World Summit.

          A Offline
          A Offline
          Annabelle
          wrote on 12 Oct 2017, 03:15 last edited by
          #121

          @SGaist said in Qt Programming Language:

          He's the community manager but currently pretty busy with the Qt Contributor Summit as well as Qt World Summit.

          I've got Qt Creator on my machine, and unfortunately I'm not able to create widgets without a mouse. I wonder, are there any keyboard equivalents to mouse clicks for creating widgets and wizard pages?

          A 1 Reply Last reply 12 Oct 2017, 07:59
          0
          • A Annabelle
            12 Oct 2017, 03:15

            @SGaist said in Qt Programming Language:

            He's the community manager but currently pretty busy with the Qt Contributor Summit as well as Qt World Summit.

            I've got Qt Creator on my machine, and unfortunately I'm not able to create widgets without a mouse. I wonder, are there any keyboard equivalents to mouse clicks for creating widgets and wizard pages?

            A Offline
            A Offline
            ambershark
            wrote on 12 Oct 2017, 07:59 last edited by
            #122

            @Annabelle Absolutely.. I do all my widgets in code. I almost never use the designer to create my forms/widgets.

            I.e. if you want a label and text entry field you could do:

            QWidget *w = new QWidget();
            w->resize(600,400);
            QHBoxLayout *box = new QHBoxLayout();
            box->addWidget(new QLabel("Name"));
            box->addWidget(new QTextEdit());
            w->setLayout(box);
            w->show();
            

            My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

            A 1 Reply Last reply 12 Oct 2017, 12:22
            0
            • A ambershark
              12 Oct 2017, 07:59

              @Annabelle Absolutely.. I do all my widgets in code. I almost never use the designer to create my forms/widgets.

              I.e. if you want a label and text entry field you could do:

              QWidget *w = new QWidget();
              w->resize(600,400);
              QHBoxLayout *box = new QHBoxLayout();
              box->addWidget(new QLabel("Name"));
              box->addWidget(new QTextEdit());
              w->setLayout(box);
              w->show();
              
              A Offline
              A Offline
              Annabelle
              wrote on 12 Oct 2017, 12:22 last edited by
              #123

              @ambershark said in Qt Programming Language:

              @Annabelle Absolutely.. I do all my widgets in code. I almost never use the designer to create my forms/widgets.

              I.e. if you want a label and text entry field you could do:

              QWidget *w = new QWidget();
              w->resize(600,400);
              QHBoxLayout *box = new QHBoxLayout();
              box->addWidget(new QLabel("Name"));
              box->addWidget(new QTextEdit());
              w->setLayout(box);
              w->show();
              

              Do you have any remote access software where you could log on to my computer and show me what you mean? For example, ITeleport? By keyboard shortcuts, I mean something like:
              "Create New Widget" (Alt+W)
              "Set Layout" (Control+Shift+L)
              "Add Widget" (Alt+A)
              "Show/Hide" (Control+Shift+H)
              "Resize" (Control+R)

              1 Reply Last reply
              0
              • S Offline
                S Offline
                Sunfluxgames
                wrote on 12 Oct 2017, 12:58 last edited by Sunfluxgames 10 Dec 2017, 12:59
                #124

                @Annabelle You wouldn't need shortcuts to create anything.

                In notepad++ you would create a class that can create dynamic widgets with you passing arguments for size and name in the function. All the designer lets us do is make it easier to drag and drop widgets into place while building code for us.

                In your case you going to build your application through C++ and .h files.

                A 1 Reply Last reply 12 Oct 2017, 17:26
                0
                • S Sunfluxgames
                  12 Oct 2017, 12:58

                  @Annabelle You wouldn't need shortcuts to create anything.

                  In notepad++ you would create a class that can create dynamic widgets with you passing arguments for size and name in the function. All the designer lets us do is make it easier to drag and drop widgets into place while building code for us.

                  In your case you going to build your application through C++ and .h files.

                  A Offline
                  A Offline
                  Annabelle
                  wrote on 12 Oct 2017, 17:26 last edited by
                  #125

                  @Sunfluxgames said in Qt Programming Language:

                  @Annabelle You wouldn't need shortcuts to create anything.

                  In notepad++ you would create a class that can create dynamic widgets with you passing arguments for size and name in the function. All the designer lets us do is make it easier to drag and drop widgets into place while building code for us.

                  In your case you going to build your application through C++ and .h files.

                  I'm still a bit confused, because I want to try the Qt Designer, but I seem to be left in the dust as to how I would have access to the command to create, add, delete, and show/hide widgets without keyboard shortcuts. Since I have 0% vision, this is why I use a screenreader and keyboard shortcuts. I wonder if any of the Qt Creator administrators could help with making the program more screenreader friendly. Image-based icons are a screenreader's weak point. text-based icons and menus with detailed descriptions are what is accessible to both sighted and blind individuals alike.

                  A 1 Reply Last reply 12 Oct 2017, 21:27
                  0
                  • S Offline
                    S Offline
                    Sunfluxgames
                    wrote on 12 Oct 2017, 18:12 last edited by
                    #126

                    @Annabelle You should really take ambershark's advice. Code all your widgets in notepad++ and use the command line to complie your project into a .exe

                    Then have someone with vision look over your project to make sure it looks the way you think. Even with the basics understanding of C++ your project is very simple to do.

                    A 1 Reply Last reply 12 Oct 2017, 18:55
                    0
                    • S Sunfluxgames
                      12 Oct 2017, 18:12

                      @Annabelle You should really take ambershark's advice. Code all your widgets in notepad++ and use the command line to complie your project into a .exe

                      Then have someone with vision look over your project to make sure it looks the way you think. Even with the basics understanding of C++ your project is very simple to do.

                      A Offline
                      A Offline
                      Annabelle
                      wrote on 12 Oct 2017, 18:55 last edited by
                      #127

                      @Sunfluxgames said in Qt Programming Language:

                      @Annabelle You should really take ambershark's advice. Code all your widgets in notepad++ and use the command line to complie your project into a .exe

                      Then have someone with vision look over your project to make sure it looks the way you think. Even with the basics understanding of C++ your project is very simple to do.

                      I tried the code:

                      qmake ceremonyscriptgenerator.pro
                      make
                      

                      but it gives me the error message that "qmake is not a valid internal or external command or operable program". This is even after Qt Creator and all of its components are completely installed on my machine. Perhaps there's something I'm doing wrong? Maybe I could ask my friend, Markus Johnson (yes, that's "Markus" with a K, not a C), if he could try to set up some mouse movement scripts for Qt Designer with Axife Mouse Recorder (http://www.axife.com).

                      1 Reply Last reply
                      0
                      • mrjjM Offline
                        mrjjM Offline
                        mrjj
                        Lifetime Qt Champion
                        wrote on 12 Oct 2017, 19:01 last edited by mrjj 10 Dec 2017, 19:02
                        #128

                        Hi
                        It cannot find qmake. you must use full path to it
                        like
                        C:\Qt\5.9.1\msvc2015_64\bin\qmake.exe
                        but yours will something with mingw and not msvc2015_64

                        1 Reply Last reply
                        0
                        • sierdzioS sierdzio
                          8 Oct 2017, 19:46

                          You don't need Qt Creator. Qt itself is enough, because qmake is part of it. If cmd complaints it can't find qmake it's probably because it is not in the PATH environment variable. I have not used Qt on Windows for a long time, but if nothing's hanged, you can probably run a Qt-provided command line which has the tools properly set up.

                          Alternatively, with your current command line, you can point it directly to where qmake is located, like this:

                          c:\path\to\where\qt\is\bin\qmake.exe file.pro
                          

                          Oh, right. Possibly you need to type in "qmake.exe" instead of just "qmake" on Windows.

                          AllanisA Offline
                          AllanisA Offline
                          Allanis
                          wrote on 12 Oct 2017, 19:01 last edited by
                          #129

                          Ok, so you have installed Qt again in full I assume. And you are back to the very same error you had before when you used:

                          qmake ceremonyscriptgenerator.pro
                          make
                          

                          But remember, you already got an answer to solve this by @sierdzio :

                          @sierdzio said in Qt Programming Language:

                          Alternatively, with your current command line, you can point it directly to where qmake is located, like this:

                          c:\path\to\where\qt\is\bin\qmake.exe file.pro
                          

                          Oh, right. Possibly you need to type in "qmake.exe" instead of just "qmake" on Windows.

                          AllanisA 1 Reply Last reply 12 Oct 2017, 19:02
                          1
                          • AllanisA Allanis
                            12 Oct 2017, 19:01

                            Ok, so you have installed Qt again in full I assume. And you are back to the very same error you had before when you used:

                            qmake ceremonyscriptgenerator.pro
                            make
                            

                            But remember, you already got an answer to solve this by @sierdzio :

                            @sierdzio said in Qt Programming Language:

                            Alternatively, with your current command line, you can point it directly to where qmake is located, like this:

                            c:\path\to\where\qt\is\bin\qmake.exe file.pro
                            

                            Oh, right. Possibly you need to type in "qmake.exe" instead of just "qmake" on Windows.

                            AllanisA Offline
                            AllanisA Offline
                            Allanis
                            wrote on 12 Oct 2017, 19:02 last edited by
                            #130

                            Oh @mrjj got there first. :P

                            1 Reply Last reply
                            0
                            • A Annabelle
                              12 Oct 2017, 17:26

                              @Sunfluxgames said in Qt Programming Language:

                              @Annabelle You wouldn't need shortcuts to create anything.

                              In notepad++ you would create a class that can create dynamic widgets with you passing arguments for size and name in the function. All the designer lets us do is make it easier to drag and drop widgets into place while building code for us.

                              In your case you going to build your application through C++ and .h files.

                              I'm still a bit confused, because I want to try the Qt Designer, but I seem to be left in the dust as to how I would have access to the command to create, add, delete, and show/hide widgets without keyboard shortcuts. Since I have 0% vision, this is why I use a screenreader and keyboard shortcuts. I wonder if any of the Qt Creator administrators could help with making the program more screenreader friendly. Image-based icons are a screenreader's weak point. text-based icons and menus with detailed descriptions are what is accessible to both sighted and blind individuals alike.

                              A Offline
                              A Offline
                              ambershark
                              wrote on 12 Oct 2017, 21:27 last edited by
                              #131

                              @Annabelle There's very little chance of you being able to use the designer without sight. You absolutely have to use a mouse.

                              However you do not need the designer to make user interfaces. You just code them like I showed you. No designer required, all can be done with your editor of choice, i.e. Notepad++.

                              So really you just need to learn Qt by reading documentation and or books with your reader. Then you can literally just write the code, no vision required other than having someone check your layouts and such to make sure things looks good.

                              My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                              1 Reply Last reply
                              0
                              • S SGaist
                                8 Sept 2017, 21: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.

                                A Offline
                                A Offline
                                Annabelle
                                wrote on 14 Oct 2017, 14:34 last edited by
                                #132

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

                                So for example, connecting a push button to a signal would look like:

                                    signalMapper = new 
                                QSignalMapper
                                (this);
                                    signalMapper->setMapping(BackButton, 
                                QString
                                ("Step 1.txt"));
                                    signalMapper->setMapping(NextButton, 
                                QString
                                ("Step 3.txt"));
                                    signalMapper->setMapping(CancelButton, 
                                QString
                                ("Cancel"));
                                
                                    connect(BackButton, &
                                QPushButton::
                                clicked,
                                        signalMapper, &
                                QSignalMapper::
                                map);
                                    connect(NextButton, &
                                QPushButton::
                                clicked,
                                        signalMapper, &
                                QSignalMapper::
                                map);
                                    connect(CancelButton, &
                                QPushButton::
                                clicked,
                                        signalMapper, &
                                QSignalMapper::
                                map);
                                
                                1 Reply Last reply
                                0
                                • S SGaist
                                  8 Sept 2017, 21: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.

                                  A Offline
                                  A Offline
                                  Annabelle
                                  wrote on 16 Oct 2017, 00:49 last edited by
                                  #133

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

                                  Specifically, when I talk about filling in gender-specific words in the finished text, for example, when "Female" is selected, the appropriate gender-specific pronouns (she, her, hers, herself) are automatically printed in the place which would say "Gender pronoun" if neither radio button is selected. Same goes for gender nouns (man, woman, boy, girl).

                                  1 Reply Last reply
                                  0
                                  • S SGaist
                                    5 Sept 2017, 22:09

                                    With C++ the QComboBox widget or with Qt Quick the ComboBox QML type.

                                    A Offline
                                    A Offline
                                    Annabelle
                                    wrote on 16 Oct 2017, 01:20 last edited by
                                    #134

                                    @SGaist said in Qt Programming Language:

                                    With C++ the QComboBox widget or with Qt Quick the ComboBox QML type.

                                    Does the documentation on the QComboBox widget specifically have instructions on how to add items to a combo box? I've searched there, and it only tells me properties inherited from other QWidgets, along with a detailed description of the QComboBox.

                                    A 1 Reply Last reply 16 Oct 2017, 03:51
                                    0
                                    • A Annabelle
                                      16 Oct 2017, 01:20

                                      @SGaist said in Qt Programming Language:

                                      With C++ the QComboBox widget or with Qt Quick the ComboBox QML type.

                                      Does the documentation on the QComboBox widget specifically have instructions on how to add items to a combo box? I've searched there, and it only tells me properties inherited from other QWidgets, along with a detailed description of the QComboBox.

                                      A Offline
                                      A Offline
                                      ambershark
                                      wrote on 16 Oct 2017, 03:51 last edited by
                                      #135

                                      @Annabelle You're looing for addItem and addItems.

                                      My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                                      1 Reply Last reply
                                      1
                                      • S SGaist
                                        12 Sept 2017, 21:41

                                        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 16 Oct 2017, 04:35 last edited by
                                        #136

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

                                        1 Reply Last reply
                                        0
                                        • A Offline
                                          A Offline
                                          Annabelle
                                          wrote on 6 Dec 2017, 14:06 last edited by
                                          #137

                                          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?

                                          jsulmJ 1 Reply Last reply 6 Dec 2017, 14:55
                                          0

                                          • Login

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