我正在尝试在使用Qt Designer设计的主窗口中显示Q3DScatter图,因此我在主窗口中添加了一个小部件,但我不知道如何在此小部件中嵌入图形对象。我尝试以编程方式创建一个小部件“容器”并将图形嵌入其中,然后使用以下代码在我的主窗口的构造函数中将小部件放入QHBoxLayout(已使用Qt Designer添加到主窗口中):
...
Q3DScatter *graph = new Q3DScatter();
QWidget *container = QWidget::createWindowContainer(graph);
ui->horizontal_layout->addWidget(container, 1);
但执行时窗口似乎是空的。我真的很感激一些帮助。
编辑:这是我的主窗口构造函数的完整代码:
ResultsWindow::ResultsWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::ResultsWindow)
{
ui->setupUi(this);
Q3DScatter *graph = new Q3DScatter();
QWidget *container = QWidget::createWindowContainer(graph);
ui->horizontal_layout->addWidget(container, 1);
}
这是主要代码:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
ResultsWindow w;
w.show();
return a.exec();
}
编辑2:我忘了指定水平布局嵌入在GridLayout中。我尝试创建一个新项目,当我直接向主窗口添加水平布局时,我的代码实际上工作得很好。那问题可能是由于GridLayout?