2017-02-07 1 views
0

J'essaye d'ajouter du contenu à un QWidget, mais rien ne montre jamais. La fenêtre sort vide, vide sans aucun contenu que j'essaie d'inclure.Contenu non ajouté affichage dans un 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(); 
} 

Qu'est-ce que je suis m issing, ou faire mal?

Merci d'avance.

Répondre

0

Votre code n'est pas complet. J'ai dû faire quelques corrections (inclut, déclarations) pour le compiler.

Quoi qu'il en soit, pour commencer à voir quelque chose, vous devez soit remplacer:

mainWin = new QWidget(); 

avec

mainWin = new QWidget(this); 

ou remplacer:

mainWin -> setLayout(hlayout); 

avec

this -> setLayout(hlayout); 

Dans ce dernier cas, il n'a pas de sens Vocation:

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

depuis la position et la taille de m_button est géré automatiquement par la mise en page.