Strange problem with QPushButton



  • Hello,

    Firstly, I apologize for my english.

    I have a strange problem. It's verry dificult to explain so i hope that you understand me (I do my best). I develop my application which have some QPushButton. When I go on my first button I can click on him. No problem. But when i go on my second button, if it's not align vertically with the first button, I can't click on him. It's more stranger because on the third button, i don't have this problem. Anyone have already this problem? I put my code.

    #include <QApplication>
    #include <QObject>
    #include "MaFenetre.h"
    
    MaFenetre::MaFenetre() : QWidget()
    {
        setFixedSize(500, 300);
    
        QImage image("C:/Users/Marc-Henry/Documents/mesures_labo/logo.png");
        m_imageLabel = new QLabel(this);
        m_imageLabel->setPixmap(QPixmap::fromImage(image.scaled(50,50,Qt::KeepAspectRatio,Qt::FastTransformation)));
        m_imageLabel->setGeometry(5, 0, 60, 25);
    
        m_text_mes_sechantillon = new QLabel("Fichier de mesure sur échantillon :", this);
        m_text_mes_sechantillon->setFont(QFont("Comic Sans MS", 13));
        m_text_mes_sechantillon->setGeometry(90, 5, 290, 50);
    
        m_line_sechantillon_file = new QLineEdit(this);
        m_line_sechantillon_file->setGeometry(90, 45, 250, 25);
        m_line_sechantillon_file->setEnabled(false);
        m_line_sechantillon_file->setAlignment(Qt::AlignHCenter);
    
        m_bouton_sechantillon = new QPushButton("...", this);
        m_bouton_sechantillon->setFont(QFont("Comic Sans MS", 13));
        m_bouton_sechantillon->setCursor(Qt::PointingHandCursor);
        m_bouton_sechantillon->setGeometry(339, 44, 40, 27);
        QObject::connect(m_bouton_sechantillon, SIGNAL(clicked()), this, SLOT(ouvrirExplorateurSEchantillon()));
    
        m_text_mes_sechantillon_entete = new QLabel("En-tête :", this);
        m_text_mes_sechantillon_entete->setFont(QFont("Comic Sans MS", 11));
        m_text_mes_sechantillon_entete->setGeometry(110, 70, 290, 50);
    
        m_line_sechantillon_entete = new QLineEdit(this);
        m_line_sechantillon_entete->setGeometry(173, 85, 30, 20);
        m_line_sechantillon_entete->setAlignment(Qt::AlignHCenter);
        m_line_sechantillon_entete->setMaxLength(3);
    
        m_text_mes_sechantillon_format = new QLabel("Format :", this);
        m_text_mes_sechantillon_format->setFont(QFont("Comic Sans MS", 11));
        m_text_mes_sechantillon_format->setGeometry(250, 70, 290, 50);
    
        m_liste_sechantillon_format = new QComboBox(this);
        m_liste_sechantillon_format->setGeometry(310, 85, 30, 20);
        m_liste_sechantillon_format->addItem("3");
        m_liste_sechantillon_format->addItem("4");
    
        m_text_mes_sechantillon_frequence = new QLabel("Freq :", this);
        m_text_mes_sechantillon_frequence->setFont(QFont("Comic Sans MS", 11));
        m_text_mes_sechantillon_frequence->setGeometry(395, 0, 290, 50);
    
        m_liste_sechantillon_frequence = new QComboBox(this);
        m_liste_sechantillon_frequence->setGeometry(395, 38, 45, 20);
        m_liste_sechantillon_frequence->addItem("GHz");
        m_liste_sechantillon_frequence->addItem("Hz");
    
        m_text_mes_sechantillon_phase = new QLabel("Phase :", this);
        m_text_mes_sechantillon_phase->setFont(QFont("Comic Sans MS", 11));
        m_text_mes_sechantillon_phase->setGeometry(395, 48, 290, 50);
    
        m_liste_sechantillon_phase = new QComboBox(this);
        m_liste_sechantillon_phase->setGeometry(395, 86, 45, 20);
        m_liste_sechantillon_phase->addItem("deg");
        m_liste_sechantillon_phase->addItem("rad");
    
        m_text_mes_avide = new QLabel("Fichier de mesure à vide :", this);
        m_text_mes_avide->setFont(QFont("Comic Sans MS", 13));
        m_text_mes_avide->setGeometry(130, 100, 280, 50);
    
        m_line_avide_file = new QLineEdit(this);
        m_line_avide_file->setGeometry(130, 140, 170, 25);
        m_line_avide_file->setEnabled(false);
        m_line_avide_file->setAlignment(Qt::AlignHCenter);
    
        m_bouton_avide = new QPushButton("...", this);
        m_bouton_avide->setFont(QFont("Comic Sans MS", 13));
        m_bouton_avide->setCursor(Qt::PointingHandCursor);
        m_bouton_avide->setGeometry(299, 139, 40, 27);
        QObject::connect(m_bouton_avide, SIGNAL(clicked()), this, SLOT(ouvrirExplorateurAVide()));
    
        m_text_mes_avide_entete = new QLabel("En-tête :", this);
        m_text_mes_avide_entete->setFont(QFont("Comic Sans MS", 11));
        m_text_mes_avide_entete->setGeometry(130, 165, 290, 50);
    
        m_line_avide_entete = new QLineEdit(this);
        m_line_avide_entete->setGeometry(193, 180, 30, 20);
        m_line_avide_entete->setAlignment(Qt::AlignHCenter);
        m_line_avide_entete->setMaxLength(3);
    
        m_text_mes_avide_format = new QLabel("Format :", this);
        m_text_mes_avide_format->setFont(QFont("Comic Sans MS", 11));
        m_text_mes_avide_format->setGeometry(240, 165, 290, 50);
    
        m_liste_avide_format = new QComboBox(this);
        m_liste_avide_format->setGeometry(300, 180, 30, 20);
        m_liste_avide_format->addItem("3");
        m_liste_avide_format->addItem("4");
    
        m_text_mes_avide_frequence = new QLabel("Freq :", this);
        m_text_mes_avide_frequence->setFont(QFont("Comic Sans MS", 11));
        m_text_mes_avide_frequence->setGeometry(355, 100, 290, 50);
    
        m_liste_avide_frequence = new QComboBox(this);
        m_liste_avide_frequence->setGeometry(355, 138, 45, 20);
        m_liste_avide_frequence->addItem("GHz");
        m_liste_avide_frequence->addItem("Hz");
    
        m_text_mes_avide_phase = new QLabel("Phase :", this);
        m_text_mes_avide_phase->setFont(QFont("Comic Sans MS", 11));
        m_text_mes_avide_phase->setGeometry(355, 148, 290, 50);
    
        m_liste_avide_phase = new QComboBox(this);
        m_liste_avide_phase->setGeometry(355, 186, 45, 20);
        m_liste_avide_phase->addItem("deg");
        m_liste_avide_phase->addItem("rad");
    
        m_text_chemin = new QLabel("Chemin :", this);
        m_text_chemin->setFont(QFont("Comic Sans MS", 11));
        m_text_chemin->setGeometry(40, 210, 150, 50);
    
        m_bouton_chemin = new QPushButton("...", this);
        m_bouton_chemin->setFont(QFont("Comic Sans MS", 13));
        m_bouton_chemin->setCursor(Qt::PointingHandCursor);
        m_bouton_chemin->setGeometry(21, 249, 20, 22);
        QObject::connect(m_bouton_chemin, SIGNAL(clicked()), this, SLOT(ouvrirExplorateurChemin()));
    
        m_line_chemin = new QLineEdit(this);
        m_line_chemin->setEnabled(false);
        m_line_chemin->setGeometry(40, 250, 180, 20);
    
        m_text_file = new QLabel("Nom du fichier :", this);
        m_text_file->setFont(QFont("Comic Sans MS", 11));
        m_text_file->setGeometry(230, 210, 150, 50);
    
        m_line_file = new QLineEdit(this);
        m_line_file->setGeometry(230, 250, 120, 20);
    
        m_bouton_calcul = new QPushButton("Calculer", this);
        m_bouton_calcul->setFont(QFont("Comic Sans MS", 13));
        m_bouton_calcul->setCursor(Qt::PointingHandCursor);
        m_bouton_calcul->setGeometry(360, 245, 100, 27);
        QObject::connect(m_bouton_calcul, SIGNAL(clicked()), this, SLOT(faireCalcul()));
    
        m_text_c0 = new QLabel("C0 :", this);
        m_text_c0->setFont(QFont("Comic Sans MS", 11));
        m_text_c0->setGeometry(10, 100, 290, 50);
    
        m_line_c0 = new QLineEdit(this);
        m_line_c0->setGeometry(10, 138, 30, 20);
        m_line_c0->setAlignment(Qt::AlignHCenter);
    
        m_text_pow_c0 = new QLabel("x10", this);
        m_text_pow_c0->setFont(QFont("Comic Sans MS", 9));
        m_text_pow_c0->setGeometry(45, 128, 290, 50);
    
        m_line_pow_c0 = new QLineEdit(this);
        m_line_pow_c0->setGeometry(60, 128, 20, 20);
        m_line_pow_c0->setAlignment(Qt::AlignHCenter);
    
        m_text_b = new QLabel("b :", this);
        m_text_b->setFont(QFont("Comic Sans MS", 11));
        m_text_b->setGeometry(10, 148, 290, 50);
    
        m_line_b = new QLineEdit(this);
        m_line_b->setGeometry(10, 186, 30, 20);
        m_line_b->setAlignment(Qt::AlignHCenter);
    }
    
    void MaFenetre::ouvrirExplorateurSEchantillon(){
        myOpenFile = QFileDialog::getOpenFileName(this, tr("Open text file"),tr("C:/Users\\"), tr("Text files (*.txt);;All Files (*.*)"));
        file = new QFileInfo(myOpenFile);
        m_line_sechantillon_file->setFont(QFont("Comic Sans MS", 10));
        m_line_sechantillon_file->setText(file->fileName());
    }
    
    void MaFenetre::ouvrirExplorateurAVide(){
        myOpenFile = QFileDialog::getOpenFileName(this, tr("Open text file"),tr("C:/Users\\"), tr("Text files (*.txt);;All Files (*.*)"));
        file1 = new QFileInfo(myOpenFile);
        m_line_avide_file->setFont(QFont("Comic Sans MS", 10));
        m_line_avide_file->setText(file1->fileName());
    }
    
    void MaFenetre::ouvrirExplorateurChemin(){
        myOpenFile = QFileDialog::getExistingDirectory(this, tr("Open Directory"),tr("C:/Users\\"), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
        file2 = new QFileInfo(myOpenFile);
        m_line_chemin->setFont(QFont("Comic Sans MS", 10));
        m_line_chemin->setText(file2->absoluteFilePath());
    }
    
    void MaFenetre::paintEvent (QPaintEvent *event){
        QPainter painter(this);
        QPainter painter2(this);
    
        painter.setPen(Qt::black);
        painter.drawRect(65,15,395,95);
    
        painter2.setPen(Qt::black);
        painter2.drawRect(105,115,315,95);
    }
    

  • Qt Champions 2016

    Can it be that a label covers the button that dont work ?
    Labels are transparent and it would not be visible.



  • @timarco
    as @mrjj siad, and I find that m_line_sechantillon_file( QLineEdit ) and m_text_mes_sechantillon( QLabel ) overlap m_bouton_schantillon( QPushButton )

    and why not use layout to handle widgets' position?


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.