我是Qt的新手,在我的应用程序中遇到了问题。以下是我尝试的内容。
我有一个QWidget类作为父类,该类上有一个网格布局。我将此小部件设置为主窗口的中心小部件(虽然此小部件未居中,但这件事情还是可以的)。
现在,我想将此小部件旋转90度,以便可以在横向模式下在设备上显示。因此,我创建了一个图形视图,并将此小部件添加到其中 (创建场景并将小部件添加到场景中,将场景分配给视图)。然后,将此图形视图旋转并使其成为中心部件。这很棒,非常居中,在设备上看起来也很好。
但在最终集成中,我们想要所有的QWidgets,因此Graphcis View不是一个选项。为解决这个问题,我在我的类内部创建了一个QWidget成员。将布局应用于它。将此小部件添加到graphicsView中并使我的类成为其父类。
这也有效,但与我在第一步中遇到的类似问题,它位于MainWindow的左上角并且不会居中。更糟糕的是,当在设备上部署时,它没有应用于整个屏幕。小部件位于左上角的某个部分,并带有滚动条!我甚至尝试将WindowState设置为最大化,但对其没有影响。
以下是我尝试过的内容:
该小部件在我的类中创建,并添加到Graphcis View中。此视图将我的类作为父级,可以使用旋转API进行旋转。
m_gridContainer = new QWidget();
m_gridContainer->setAutoFillBackground(true);
m_gridContainer->setPalette(blackPalette);
m_gridContainer->setLayout(m_grid);
m_gridContainer->setMinimumSize(480,265);
m_scene = new QGraphicsScene(0, 0, 480, 265);
m_window = new QGraphicsView(m_scene,this);
m_scene->setBackgroundBrush(brush);
m_window->setAlignment(Qt::AlignCenter);
m_scene->addWidget(m_gridContainer,Qt::Widget);
在主窗口中使用它
m_window = new CMyWidget(label, m_txtBox->text());
m_window->getRotatedWidget(90);
setCentralWidget(m_window);
我尽力了,但是这个小部件无法全屏显示(只显示在一个小区域),而且仍然有滚动条。 我不知道到底发生了什么。