2009-08-13 26 views

Antwort

2

das Widget an die entsprechende Stelle hinzufügen, indem Sie die addWidget() Methode aufrufen, wie zB:

ui->someLayout->addWidget(widgetToAdd); 

So stellen Sie sicher, dass Sie tun dies in der Haupt (UI) Gewinde.

0

Sie können eine QRadioButtons zur Laufzeit normalerweise auf die gleiche Weise wie vor der Laufzeit hinzufügen. Sie erstellen den QRadioButton dynamisch und rufen die addWidget-Methode des QFrame-Layouts auf. Wenn du es nicht kannst, poste den Code und lass mich es dir zeigen.

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 diesem Code die Radiobutton in der Laufzeit erstellt bekommen (in den Schlitz Funktion radioAdd). und in Ihrem Fall, anstatt QRadioButton in das wigdet Layout hinzuzufügen, fügen Sie sie in QFrame hinzu.

Verwandte Themen