内容未添加\显示在 QWidget 中

Content not getting added \ showing in a QWidget

我正在尝试向 QWidget 添加内容,但没有显示任何内容。 window 结果是空白的,没有我要包含的任何内容。

mainwindow.cpp

#include "mainwindow.h"

#include <QApplication>

MainWindow::MainWindow(QWidget *parent) :
    QWidget(parent, Qt::FramelessWindowHint | Qt::WindowSystemMenuHint)
{
    mainWin = new QWidget();

    // Create the button, make "this" the parent
    m_button = new QPushButton("My Button", this);
    // set size and location of the button
    m_button->setGeometry(QRect(QPoint(100, 100), QSize(200, 50)));

    hlayout = new QHBoxLayout;
    hlayout -> addWidget(m_button);

    mainWin -> setLayout(hlayout);
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QHBoxLayout>

class MainWindow : public QWidget
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);

private:

    QPushButton *m_button;

    QHBoxLayout *hlayout;
};

#endif

main.cpp

#include "mainwindow.h"
#include <QtPlugin>
#include <QApplication>

#include <QDesktopWidget>

Q_IMPORT_PLUGIN(BasicToolsPlugin)

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    MainWindow window;

    QDesktopWidget dw;

    int x=dw.width()*0.7;
    int y=dw.height()*0.7;
    window.setFixedSize(x, y);

    window.show();

    return app.exec();
}

我遗漏了什么或做错了什么?

提前谢谢大家。

您的代码不完整。我不得不做一些修复(包括,声明)来编译它。

无论如何,要开始看到一些东西,您必须替换:

mainWin = new QWidget();

mainWin = new QWidget(this);

或替换:

mainWin -> setLayout(hlayout);

this -> setLayout(hlayout);

在后一种情况下调用没有意义:

m_button->setGeometry(QRect(QPoint(100, 100), QSize(200, 50)));

因为 m_button 的位置和大小由布局自动处理。