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 Creator中向主窗口添加自定义小部件_C++_Qt_Qwidget_Qmainwindow - Fatal编程技术网

C++ 如何在Qt Creator中向主窗口添加自定义小部件

C++ 如何在Qt Creator中向主窗口添加自定义小部件,c++,qt,qwidget,qmainwindow,C++,Qt,Qwidget,Qmainwindow,我是新来的。我从这里举了一个例子。 现在我想在主窗口中集成播放器。我创建了一个Qt Widgets应用程序项目,我想,我只需要编辑主窗口代码: MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); Player* player; MainWindow::setCentralWidget(pl

我是新来的。我从这里举了一个例子。 现在我想在主窗口中集成播放器。我创建了一个Qt Widgets应用程序项目,我想,我只需要编辑主窗口代码:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    Player* player;
    MainWindow::setCentralWidget(player);

}
但它不起作用,我得到以下错误:

正在启动/home/***/Documents/build player桌面调试/player。。。 程序意外地完成了

/home/***/Documents/build player桌面调试/player崩溃


在主窗口中没有ui的情况下,如何集成以代码编写的自定义小部件?提前谢谢。

如果未初始化,则无法将播放机放置在窗口上。 写下这样的话:

Player *player = new Player();

如果未初始化,则无法将播放器放置在窗口上。 写下这样的话:

Player *player = new Player();

我通常在设计器中向我的.ui文件中添加一个QWidget(或我正在扩展的任何widget类型),然后将其升级为实际的派生类型。看。这意味着我可以像往常一样设置基本小部件的属性并设计窗口,但在UI实例化时仍然会得到我的特殊类的实例。

我通常在设计器中向我的.UI文件添加一个QWidget(或任何扩展的小部件类型),然后将其升级为实际的派生类型。看。这意味着我可以像往常一样设置基本窗口小部件的属性并设计窗口,但在UI实例化时仍然可以获得我的特殊类的实例。

在您自己的
MainWindow
类中,您可以将小部件添加到该
MainWindow
的布局中:

MyMainWindow::MyMainWindow(QWidget *parent) :
    ...
{
    this->ui->setupUi(this);

    QLabel *myLabel = new QLabel();

    this->layout()->addWidget(myLabel);
}

在您自己的
MainWindow
类中,您可以将小部件添加到该
MainWindow
的布局中:

MyMainWindow::MyMainWindow(QWidget *parent) :
    ...
{
    this->ui->setupUi(this);

    QLabel *myLabel = new QLabel();

    this->layout()->addWidget(myLabel);
}

我应该在这里调用myLabel上的delete吗?我应该在这里调用myLabel上的delete吗?