我正在尝试学习Qt,使用一个相当简单的应用程序:
#include <QtGui/QApplication>
#include <QPushButton>
#include <QDebug>
/* -- header begin {{{ */
class BareBase {
public:
BareBase();
};
class BareBones: public QApplication {
private:
BareBase* base;
public:
BareBones(int &argc, char **argv);
~BareBones();
};
/* -- header end }}} */
/* -- implementation begin {{{ */
BareBase::BareBase()
{
QPushButton hello("Hello world!");
hello.resize(100, 30);
hello.show();
}
BareBones::BareBones(int& argc, char** argv): QApplication(argc, argv)
{
qDebug() << "Creating new instance ... ";
base = new BareBase();
}
BareBones::~BareBones()
{
qDebug() << "Cleaning up ... ";
delete base;
}
/* -- implementation end }}} */
int main(int argc, char **argv)
{
//Q_INIT_RESOURCE(files);
BareBones app(argc, argv);
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
现在,问题是创建的Button BareBase永远不会出现,我很疑惑为什么?
您的QPushButton正在创建并正确显示,但在离开BareBase构造函数时超出范围.使用成员变量或指针将解决您的问题.
如果使用指针,则应将按钮添加到其父级.通过这种方式,当父母将被删除时,将自动删除该按钮.
| 归档时间: |
|
| 查看次数: |
1205 次 |
| 最近记录: |