2009-08-13 102 views

回答

2

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

ui->someLayout->addWidget(widgetToAdd); 

只要确保你在你的主(UI)线程做到这一点。

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

在此代码的单选按钮获得在运行时创建(在槽函数radioAdd )。并在你的情况下,而不是将QRadioButton添加到wigdet布局,您将它们添加到QFrame中。