跳到內容
  • 版面
  • 最新
  • 標籤
  • 熱門
  • 使用者
  • 群組
  • 搜尋
  • Get Qt Extensions
  • Unsolved
Collapse
品牌標誌
  1. 首頁
  2. Qt Development
  3. General and Desktop
  4. Qt Programming Language
Forum Updated to NodeBB v4.3 + New Features

Qt Programming Language

已排程 已置頂 已鎖定 已移動 Unsolved General and Desktop
331 貼文 17 Posters 413.4k 瀏覽 9 Watching
  • 從舊到新
  • 從新到舊
  • 最多點贊
回覆
  • 在新貼文中回覆
登入後回覆
此主題已被刪除。只有擁有主題管理權限的使用者可以查看。
  • SGaistS 離線
    SGaistS 離線
    SGaist
    Lifetime Qt Champion
    寫於 最後由 編輯
    #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 條回覆 最後回覆
    0
    • A 離線
      A 離線
      Annabelle
      寫於 最後由 編輯
      #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 條回覆 最後回覆
      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 離線
        A 離線
        Annabelle
        寫於 最後由 編輯
        #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 條回覆 最後回覆
        0
        • SGaistS 離線
          SGaistS 離線
          SGaist
          Lifetime Qt Champion
          寫於 最後由 編輯
          #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 條回覆 最後回覆
          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 離線
            A 離線
            Annabelle
            寫於 最後由 編輯
            #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 條回覆 最後回覆
            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 離線
              A 離線
              Annabelle
              寫於 最後由 編輯
              #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 條回覆 最後回覆
              0
              • SGaistS 離線
                SGaistS 離線
                SGaist
                Lifetime Qt Champion
                寫於 最後由 編輯
                #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 條回覆 最後回覆
                0
                • A 離線
                  A 離線
                  Annabelle
                  寫於 最後由 編輯
                  #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 條回覆 最後回覆
                  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 離線
                    A 離線
                    Annabelle
                    寫於 最後由 編輯
                    #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 條回覆 最後回覆
                    0
                    • A 離線
                      A 離線
                      Annabelle
                      寫於 最後由 編輯
                      #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 條回覆 最後回覆
                      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 離線
                        mrjjM 離線
                        mrjj
                        Lifetime Qt Champion
                        寫於 最後由 編輯
                        #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 條回覆 最後回覆
                        0
                        • A 離線
                          A 離線
                          Annabelle
                          寫於 最後由 編輯
                          #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 條回覆 最後回覆
                          0
                          • sierdzioS 離線
                            sierdzioS 離線
                            sierdzio
                            Moderators
                            寫於 最後由 編輯
                            #44

                            Do you have the code ready, with a .pro file (it is a project definition file that Qt uses to compile applications)? If yes, then you can compile your project from the command line. Open cmd.exe (I guess you are on Windows operating system) and type:

                            qmake yourprojectname.pro
                            make
                            

                            That should be enough, assuming your environment is prepared (qmake and compiler are both set up in PATH system variable).

                            As a side note, as far as I know there is an accessibility team working at Qt Company, I'm sure they will be happy to hear how both Qt and Qt Creator can be improved to help blind people. You can try reaching them at qt-creator@qt-project.org. You can also subscribe to Qt Creator mailing list here: http://lists.qt-project.org/mailman/listinfo/qt-creator.

                            (Z(:^

                            A 1 條回覆 最後回覆
                            1
                            • mrjjM mrjj

                              @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 離線
                              A 離線
                              Annabelle
                              寫於 最後由 編輯
                              #45

                              @mrjj said in Qt Programming Language:

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

                              I can make the source code, it's the compiling the finished program part that's hard. Yes, JAWS can read a Command Prompt. What do I do in there?

                              AllanisA 1 條回覆 最後回覆
                              0
                              • AllanisA 離線
                                AllanisA 離線
                                Allanis
                                寫於 最後由 編輯
                                #46

                                Hi, you will need to create a .pro file which gives instructions on how to build your application. http://doc.qt.io/qt-4.8/qmake-project-files.html

                                Once you have have this. you can do as instructed by @sierdzio in CMD.

                                1 條回覆 最後回覆
                                0
                                • A Annabelle

                                  @mrjj said in Qt Programming Language:

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

                                  I can make the source code, it's the compiling the finished program part that's hard. Yes, JAWS can read a Command Prompt. What do I do in there?

                                  AllanisA 離線
                                  AllanisA 離線
                                  Allanis
                                  寫於 最後由 Allanis 編輯
                                  #47

                                  @Annabelle Sorry, I was at work when I made my initial response to this thread. A more elaborate answer for you follows as I take it you are beginning in Qt and it may be difficult for you to look up resources.

                                  Given the scope of your project I think it will suffice to use a simple Qmake project file such as:

                                  myapp.pro

                                  TEMPLATE = app
                                  
                                  QT += widgets
                                  
                                  SOURCES += main.cpp \
                                      MainWindow.cpp \
                                      SpouseWidget.cpp
                                  
                                  HEADERS += \
                                      MainWindow.h \
                                      SpouswWidget.h
                                  
                                  OTHER_FILES += \
                                      anyotherfile.png
                                  

                                  You may need to make changes to this in order to fit the needs of your project, but this should be a good enough example for you.

                                  Once you have this in place, you can open up your favorite Command Line Interface (eg. cmd.exe for Windows).

                                  Type:

                                  qmake myapp.pro
                                  make
                                  

                                  Your compiler will generate a binary file for your application at this point.

                                  I hope this helps,
                                  Have fun.

                                  AllanisA A 2 條回覆 最後回覆
                                  0
                                  • A 離線
                                    A 離線
                                    Annabelle
                                    寫於 最後由 編輯
                                    #48

                                    Another thing I'd like to do is make icons for the push buttons, radio buttons, combo boxes, and checkboxes. I'd like to find out, is it OK for me to use unicode symbols as icons? For example:
                                    In the welcome screen, there are the following Radio Buttons
                                    ⚭ (Wedding Ceremony Radio Button)
                                    ~⛲ (Baptism Ceremony Radio Button)
                                    ⛼ (Funeral Ceremony Radio Button)
                                    For the Spouse Genders, there should be the following Icons:
                                    👰 (Bride Radio Button)
                                    🤵 (Groom Radio Button)
                                    For the Baptism Person Types, there should be the following Icons:
                                    👦👶👧 (Infant Radio Button)
                                    👦👧 (Child Radio Button)
                                    👦👨👧👩 (Youth Radio Button)
                                    👨👴👩👵 (Adult Radio Button)
                                    For the Funeral Ceremony Types, there should be the following icons:
                                    ⚰ (Funeral Radio Button)
                                    ⚱ (Memorial Service Radio Button)
                                    Note that some of the icons are composed of two or more unicode characters put together, as I couldn't find separate unicode symbols to represent them.

                                    1 條回覆 最後回覆
                                    0
                                    • AllanisA 離線
                                      AllanisA 離線
                                      Allanis
                                      寫於 最後由 編輯
                                      #49

                                      You should be able to use QString::fromUtf8() for this: http://doc.qt.io/qt-5/qstring.html#fromUtf8

                                      A 1 條回覆 最後回覆
                                      1
                                      • AllanisA Allanis

                                        You should be able to use QString::fromUtf8() for this: http://doc.qt.io/qt-5/qstring.html#fromUtf8

                                        A 離線
                                        A 離線
                                        Annabelle
                                        寫於 最後由 編輯
                                        #50

                                        @Allanis said in Qt Programming Language:

                                        You should be able to use QString::fromUtf8() for this: http://doc.qt.io/qt-5/qstring.html#fromUtf8

                                        Could you please be so kind as to give me an example of what one of my icons would look like with the QString::fromUtf8() code? For example: 👦👶👧

                                        1 條回覆 最後回覆
                                        0
                                        • AllanisA 離線
                                          AllanisA 離線
                                          Allanis
                                          寫於 最後由 Allanis 編輯
                                          #51

                                          Sure. I'm not sure exactly what you mean. Do you want an image or a code example? either way I whipped up a quick example to demonstrate what it would look like. Here's an image.

                                          0_1506120620297_annabelle.png

                                          Given that your first post mentioned you where visually impaired, I think I may have misunderstood your meaning, so here's an example in code:

                                            QRadioButton* rb = new QRadioButton();
                                            QString str = QString::fromUtf8("<Utf-8 code> Button Name");
                                            rb->setText(str);
                                          

                                          Where <Utf-8 code> = the character you wish to display.
                                          Pretty sure there is a nicer way to do it. But I'm off to bed. That should get you started though.

                                          A 1 條回覆 最後回覆
                                          0

                                          • 登入

                                          • Login or register to search.
                                          • 第一個貼文
                                            最後的貼文
                                          0
                                          • 版面
                                          • 最新
                                          • 標籤
                                          • 熱門
                                          • 使用者
                                          • 群組
                                          • 搜尋
                                          • Get Qt Extensions
                                          • Unsolved