如何动态地将小部件(例如QPushButton)添加到设计器内置的布局中

Gra*_*ham 4 c++ qt qt-creator

我正在玩Qt,主要是为了重写Symbian的旧java应用程序,我让自己有点困惑.

我首先应该解释一下C++不是我的功夫,这可能是问题的原因.

我想要做的是在主窗口中的一个垂直布局中添加一个简单的QPushButton,它在运行时在qt设计器中构建.

我的示例代码是这样的......

QPushButton button = new QPushButton();

QString text("Testing Buttons");

button.setText(text);

//How do we add children to this widget??

ui->myLayout->addWidget(button);
Run Code Online (Sandbox Code Playgroud)

我得到的错误如下......

/home/graham/myFirstApp/mainwindow.cpp:22:错误:从'QPushButton*'转换为非标量类型'QPushButton'请求

/home/graham/myFirstApp/mainwindow.cpp:27:错误:没有匹配函数来调用'QVBoxLayout :: addWidget(QPushButton&)'

/home/graham/myFirstApp/../qtsdk-2010.05/qt/include/QtGui/qboxlayout.h:85:候选人是:void QBoxLayout :: addWidget(QWidget*,int,Qt :: Alignment)

现在我知道第一个错误与指针有关,但我不知道是什么,如果有人能够解决我的困惑并提供非常好的示例代码.

问候

格雷厄姆.

Ton*_*ttu 6

这只是一个C++问题,当你使用new-operator时,需要使用星号将按钮声明为指针.

QPushButton* button = new QPushButton();
button->setText(text);
ui->myLayout->addWidget(button);
Run Code Online (Sandbox Code Playgroud)