tags:

views:

189

answers:

2

Hello,

How i can add QRadioButtons in a QFrame on runtime?

Thanks.

+1  A: 

Add the widget to the appropriate place by calling the addWidget() method, such as:

ui->someLayout->addWidget(widgetToAdd);

Just make sure you do this in your main (UI) thread.

Adam Batkin
A: 

you can add a QRadioButtons on runtime normally in the same way you do before runtime. you create the QRadioButton dynamically and call the addWidget method of QFrame layout. if you are not ableto do it, post the code and let me show you.

mainwindow.h

#include <QtGui/QMainWindow>
#include <QPushButton>
#include <QHBoxLayout>
#include <QRadioButton>

class MainWindow : public QMainWindow
{
    Q_OBJECT

    QHBoxLayout * layout;
    QPushButton * button;

public:
    MainWindow(QWidget *parent = 0);

public slots:
     void radioAdd();
};

mainwindow.cpp

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    layout = new QHBoxLayout(this);
    QWidget * w  = new QWidget(this);
    w->setLayout(layout);
    this->setCentralWidget(w);
    button = new QPushButton(QString("push"),this);
    layout->addWidget(button);

    connect(button,SIGNAL(clicked()), this, SLOT(radioAdd()));
}


void MainWindow::radioAdd() {
     QRadioButton * radio = new QRadioButton("Search from the &cursor", this);
    layout->addWidget(radio);
}

main.cpp

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

in this code the radioButton get created in the runtime (in the slot function radioAdd). and in your case, instead of adding QRadioButton into the wigdet layout you add them into QFrame.

Ayoub