Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Solved How Can I make Clickable Label in My Project

    General and Desktop
    5
    19
    2009
    Loading More Posts
    • 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.
    • Ketan__Patel__0011
      Ketan__Patel__0011 last edited by

      My Baseclass is Mainwindow

      i shown some review but they are using QLabel as a Baseclass

      i am try to slove this issue using connect() function

      help me:

      Thanks in Advanced

      1 Reply Last reply Reply Quote 0
      • A
        anil_arise @Ketan__Patel__0011 last edited by

        @Ketan__Patel__0011 Example :
        Clickable QLabel

        this link will be active for 2 days;
        you need to use promote widget after add widget header and class name (**right click options in ui file)

        Screenshot_2020-02-17_16-01-21.png

        Ketan__Patel__0011 2 Replies Last reply Reply Quote 2
        • mrjj
          mrjj Lifetime Qt Champion last edited by

          Hi
          Did you try this sample ?
          https://wiki.qt.io/Clickable_QLabel

          It will make your own QLabel and then you use that in your MainWindow to click on.

          Ketan__Patel__0011 1 Reply Last reply Reply Quote 4
          • Ketan__Patel__0011
            Ketan__Patel__0011 @mrjj last edited by

            @mrjj i was used this reference It works good But i want to set click-event only particular label

            i was used Connect function for any particular label and run my project now i will click any label it will effect each and every label

            mrjj 1 Reply Last reply Reply Quote 0
            • mrjj
              mrjj Lifetime Qt Champion @Ketan__Patel__0011 last edited by

              @Ketan__Patel__0011

              Well then something went wrong then as it really is pr label.
              If you dont connect the label, clicking it will do nothing.

              • now i will click any label it will effect each and every label

              Then there is bug in your code. Connecting one instance of the label
              will not affect any other.

              Please show the code so we can correct it. :)

              Ketan__Patel__0011 1 Reply Last reply Reply Quote 4
              • Ketan__Patel__0011
                Ketan__Patel__0011 @mrjj last edited by

                @mrjj

                I am Take A Three Label, in my ui

                ****************** My header files like this *********************
                #ifndef MAINWINDOW_H
                #define MAINWINDOW_H

                #include <QMainWindow>
                #include <QMouseEvent>
                #include <QMessageBox>
                #include <QDebug>

                namespace Ui {
                class MainWindow;
                }

                class MainWindow : public QMainWindow
                {
                Q_OBJECT

                public:
                explicit MainWindow(QWidget *parent = nullptr);
                ~MainWindow();

                private:
                Ui::MainWindow *ui;

                signals:
                void clicked();

                protected:
                void mousePressEvent(QMouseEvent* event);

                };

                #endif // MAINWINDOW_H


                ****************** My Sources file like this *********************

                #include "mainwindow.h"
                #include "ui_mainwindow.h"

                MainWindow::MainWindow(QWidget *parent) :
                QMainWindow(parent),
                ui(new Ui::MainWindow)
                {
                ui->setupUi(this);
                connect(ui->label,SIGNAL(clicked()),this,SLOT(mousePressEvent()));
                }

                MainWindow::~MainWindow()
                {
                delete ui;
                }

                void MainWindow::mousePressEvent(QMouseEvent *event)
                {
                QMessageBox::information(this,"Message","WELCOME");
                emit clicked();
                }


                when i click any label message will be raised

                but i want this message for any only label1

                please Help Me for slove this problem

                1 Reply Last reply Reply Quote 0
                • SGaist
                  SGaist Lifetime Qt Champion last edited by

                  Hi,

                  It has absolutely nothing to do with your labels. Wherever you'll click on the MainWindow it will show that message.

                  If you only what to act on a specific QLabel either make that one use the custom class suggested by @mrjj or use an event filter to act only on that QLabel.

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

                  Ketan__Patel__0011 1 Reply Last reply Reply Quote 5
                  • Ketan__Patel__0011
                    Ketan__Patel__0011 @SGaist last edited by

                    @SGaist no i will just click on label then message is raised

                    or any other location i clicked that time message will not raised

                    1 Reply Last reply Reply Quote 0
                    • Christian Ehrlicher
                      Christian Ehrlicher Lifetime Qt Champion last edited by

                      @Ketan__Patel__0011 said in How Can I make Clickable Label in My Project:

                      no i will just click on label then message is raised

                      I would dobut that since you connect the qlabel to a slot which is called on every mouse click as explained in the documentation. Use another slot name.

                      Qt has to stay free or it will die.

                      Ketan__Patel__0011 1 Reply Last reply Reply Quote 3
                      • Ketan__Patel__0011
                        Ketan__Patel__0011 @Christian Ehrlicher last edited by

                        @Christian-Ehrlicher
                        sir

                        Can you make One Example For Me ?

                        plzzz

                        1 Reply Last reply Reply Quote 0
                        • Christian Ehrlicher
                          Christian Ehrlicher Lifetime Qt Champion last edited by

                          @Ketan__Patel__0011 said in How Can I make Clickable Label in My Project:

                          Can you make One Example For Me ?

                          Of what? creating a member function with a different name than 'mousePressEvent()'? What's the problem?

                          Qt has to stay free or it will die.

                          1 Reply Last reply Reply Quote 2
                          • mrjj
                            mrjj Lifetime Qt Champion last edited by mrjj

                            Hi
                            Several things are wrong
                            If you are using a plain QLabel, it wont have a clicked signal.
                            Only using the class in the link it will have it. a plain QLabel cannot be clicked.

                            So lets say you ARE using the new class then this can work.

                            connect(ui->label,SIGNAL(clicked()),this,SLOT(LabelClicked()));
                            
                            void MainWindow::LabelClicked()
                            {
                            QMessageBox::information(this,"Message","WELCOME");
                            }
                            

                            The reason it shows the message anywhere you click currently is due to the fact you added
                            void MainWindow::mousePressEvent(QMouseEvent *event)
                            for the MAINWINOW do it will trigger anywhere you click on it.
                            So its only useful if you where to click anywhere on the whole Mainwindow and not
                            on any labels.

                            Ketan__Patel__0011 1 Reply Last reply Reply Quote 3
                            • Ketan__Patel__0011
                              Ketan__Patel__0011 @mrjj last edited by

                              @mrjj i was write same code in my program but its not worked

                              mrjj 1 Reply Last reply Reply Quote 0
                              • mrjj
                                mrjj Lifetime Qt Champion @Ketan__Patel__0011 last edited by

                                @Ketan__Patel__0011

                                Well did you use the ClickableLabel or not ?

                                Ketan__Patel__0011 1 Reply Last reply Reply Quote 0
                                • Ketan__Patel__0011
                                  Ketan__Patel__0011 @mrjj last edited by

                                  @mrjj please Can you share me a Full code of project ?
                                  like Header file as well as source file code

                                  mrjj A 2 Replies Last reply Reply Quote 0
                                  • mrjj
                                    mrjj Lifetime Qt Champion @Ketan__Patel__0011 last edited by

                                    @Ketan__Patel__0011

                                    Hi
                                    there is no full project.
                                    the wiki page shows what to put in the .cpp and .h.

                                    However, if its also due to you not understanding how to use it.
                                    I can make you a test project this evening if that helps?

                                    Ketan__Patel__0011 1 Reply Last reply Reply Quote 0
                                    • A
                                      anil_arise @Ketan__Patel__0011 last edited by

                                      @Ketan__Patel__0011 Example :
                                      Clickable QLabel

                                      this link will be active for 2 days;
                                      you need to use promote widget after add widget header and class name (**right click options in ui file)

                                      Screenshot_2020-02-17_16-01-21.png

                                      Ketan__Patel__0011 2 Replies Last reply Reply Quote 2
                                      • Ketan__Patel__0011
                                        Ketan__Patel__0011 @mrjj last edited by

                                        @mrjj Hello Sir

                                        i am try for last 2 days but nothing is happening

                                        so plz sir help me

                                        How can you share me a test project of clickable_Label ?

                                        1 Reply Last reply Reply Quote 0
                                        • Ketan__Patel__0011
                                          Ketan__Patel__0011 @anil_arise last edited by

                                          **@anil_arise hey Brother Thank you So much

                                          It really Good Way My Problem is solved

                                          Again Thank You So Much**

                                          1 Reply Last reply Reply Quote 0
                                          • Ketan__Patel__0011
                                            Ketan__Patel__0011 @anil_arise last edited by

                                            @anil_arise Can you share this link again plzzzzz

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post