内容未添加 \ 在 QWidget 中显示

Posted

技术标签:

【中文标题】内容未添加 \\ 在 QWidget 中显示【英文标题】:Content not getting added \ showing in a QWidget内容未添加 \ 在 QWidget 中显示 【发布时间】:2017-02-07 06:15:30 【问题描述】:

我正在尝试向QWidget 添加内容,但没有任何显示。窗口出现空白,没有我要包含的任何内容。

ma​​inwindow.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);

ma​​inwindow.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

ma​​in.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();

我错过了什么或做错了什么?

提前谢谢大家。

【问题讨论】:

【参考方案1】:

您的代码不完整。我必须进行一些修复(包括、声明)才能编译它。

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

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 的位置和大小由布局自动处理。

【讨论】:

以上是关于内容未添加 \ 在 QWidget 中显示的主要内容,如果未能解决你的问题,请参考以下文章

QQuickView 内容未正确调整大小

小部件在 GridLayout 中相互重叠

Qt 计算器界面实现

将 Qt Widgets 和 QML 与 QWidget::createWindowContainer() 结合起来

调整大小的 opencv 图像在 QWidget C++ 上未正确显示

QT+创建两个不相干的窗口实现一个显示一个不显示