内容未添加 \ 在 QWidget 中显示
Posted
技术标签:
【中文标题】内容未添加 \\ 在 QWidget 中显示【英文标题】:Content not getting added \ showing in a QWidget内容未添加 \ 在 QWidget 中显示 【发布时间】:2017-02-07 06:15:30 【问题描述】:我正在尝试向QWidget
添加内容,但没有任何显示。窗口出现空白,没有我要包含的任何内容。
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();
我错过了什么或做错了什么?
提前谢谢大家。
【问题讨论】:
【参考方案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 中显示的主要内容,如果未能解决你的问题,请参考以下文章
将 Qt Widgets 和 QML 与 QWidget::createWindowContainer() 结合起来