如何在运行时在QFrame中添加QRadioButtons?
感谢。
答案 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中。