Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt:QPushButton从未显示_C++_Qt - Fatal编程技术网

C++ Qt:QPushButton从未显示

C++ Qt:QPushButton从未显示,c++,qt,C++,Qt,我正在尝试使用一个相当简单的应用程序学习Qt: #include <QtGui/QApplication> #include <QPushButton> #include <QDebug> /* -- header begin {{{ */ class BareBase { public: BareBase(); }; class BareBones: public QApplication { private:

我正在尝试使用一个相当简单的应用程序学习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();
}
#包括
#包括
#包括
/*--头开始{{*/
类裸基{
公众:
BareBase();
};
基本类:公共QApplication{
私人:
裸基*基;
公众:
裸骨(内部和argc,字符**argv);
~BareBones();
};
/*--header end}}*/
/*--开始实施{{*/
BareBase::BareBase()
{
QPushButton你好(“你好,世界!”);
你好,调整大小(100,30);
你好,show();
}
BareBones::BareBones(int&argc,char**argv):QApplication(argc,argv)
{

qDebug()
QPushButton
可能已显示,但不在小部件的可见区域。这就是为什么,您应该将所有小部件添加到Qt中可用的布局中,以获得所需的行为。请查看文档…它也有示例

此外,基本上你将有一个基础,或者很可能你的所有控件都会出现在这个基础上。因此,你的
QPushButton
将在父窗口小部件中。你的
QApplication
将包含你的特定于应用程序的信息,比如设置窗口,为整个应用程序设置字体等等


希望对您有所帮助。

您的QPushButton正在正确创建和显示,但离开BareBase构造函数时超出了范围。使用成员变量或指针将解决您的问题


如果使用指针,则应将按钮添加到其父按钮。这样,当父按钮被删除时,该按钮将自动删除。

不太确定我是否理解,但我会查看文档。那里的示例看起来很有希望。