2009-08-13 105 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中。