QLabel inside another QLabel (code provided)



  • I have a label which I have create using the UI creatot(dragged the label on mainwindow) and now I want to create a label inside the label, and inside the label which has been created with code I want to display a message to indicate that everything is ok. How I can do this? I have overloaded the paintEvent so I could draw the borders of the labels(to see them).

    void MainWindow::paintEvent(QPaintEvent *event){
    
     if(divide == 2){
     P1.begin(this);
     P1.setPen(Qt::PenStyle::DashLine);
     P1.drawRect(ui->mainlabel->x(),ui->mainlabel>y()*2,ui->mainlabel->width()/2,ui->mainlabel->height()/2);
     P1.end();
    
     S2_0 = new QLabel(ui->mainlabel);
     S2_0->setFrameStyle(QFrame::Panel | QFrame::Sunken);
     S2_0->setGeometry(ui->mainlabel->x(),ui->mainlabel>y()*2,ui->mainlabel->width()/2,ui->mainlabel->height()/2);
     S2_0->setText("hello""); S2_0->setAlignment(Qt::AlignCenter);
    
    }
    

    When divide is changed i call repaint();



  • could you show us an image with what you want as final result?

    i suspect what you are really after is a widget with layout with 2 labels in it



  • @VRonin yes that's what I want. I have found that I have to create a layout and then store the label inside the layout, but at the moment I don't have a clue how to do it.




  • Moderators

    Here's a quick example:

    QVBoxLayout *layout = new QVBoxLayout();
    layout->addWidget(new Label("my first label");
    layout->addWidget(new Label("my second label");
    
    setLayout(layout);
    

    That would make a vertical box with label 1 on top of label 2. You can control sizing and spacing with the layout.


Log in to reply
 

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