Qt错误地将小部件放在彼此之上

时间:2016-02-01 10:45:18

标签: c++ qt

在Qt 4.8.5 32位和VS2010中,我正在尝试创建一个窗口,如QtDesigner的截图所示:

enter image description here

当我运行应用程序时,小部件会相互叠加: enter image description here

在控制台中,我看到了这个: enter image description here

有人知道为什么会这样吗? 这是我的代码:

Future.value

2 个答案:

答案 0 :(得分:0)

在QtDesigner的屏幕截图中,我看到您的用户界面适用于QWidget,但您将其应用于QMainWindow。这会导致问题,因为主窗口的处理与其他小部件不同。

我不知道如何更改UI文件的基类。也许最好的方法是创建一个新文件,选择主窗口模板,然后从旧文件中复制/粘贴内容。

另一种选择是拥有一个QWidget,使用UI进行设置,并将其添加为主窗口的中央窗口小部件:

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(){
      ui = new Ui::AView();
      QWidget *wgt = new QWidget;
      ui->setupUi(wgt);
      this->setCentralWidget(wgt);
    }
    ~MainWindow();
...

 private:
    Ui::AView* ui;
}

答案 1 :(得分:0)

试试这个:

class MainWindow : public QMainWindow, public Ui::AView
{
    Q_OBJECT

public:
    MainWindow(){
      setupUi(this);
    }
    ~MainWindow();
}