2009-08-13 5 views
1

ランタイム時にQFrameにQRadioButtonを追加する方法はありますか?ランタイムでQRadioButtonsを追加する

ありがとうございました。ちょうどあなたがあなたのメイン(UI)スレッドでこれを行うことを確認してください

ui->someLayout->addWidget(widgetToAdd); 

答えて

2

は、次のような、addWidget()メソッドを呼び出すことによって、適切な場所にウィジェットを追加します。

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に追加します。

関連する問題