在运行时添加QRadioButtons

时间:2009-08-13 08:37:20

标签: qt runtime

如何在运行时在QFrame中添加QRadioButtons?

感谢。

2 个答案:

答案 0 :(得分:2)

通过调用addWidget()方法将小部件添加到适当的位置,例如:

ui->someLayout->addWidget(widgetToAdd);

请确保在主(UI)主题中执行此操作。

答案 1 :(得分:0)

您可以在运行时添加QRadioButtons,方法与运行前相同。 您动态创建QRadioButton并调用QFrame布局的addWidget方法。 如果你不能这样做,请发布代码并让我告诉你。

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();
}

在此代码中,radioButton在运行时创建(在插槽函数radioAdd中)。在您的情况下,不是将QRadioButton添加到wigdet布局中,而是将它们添加到QFrame中。