MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { //ui->setupUi(this); setFixedHeight(768); //1024 setFixedWidth(768); //Define page structure QWidget * page = new QWidget(this); page->setFixedWidth(this->width()); page->setFixedHeight(this->height()); page->setStyleSheet("background-color:white;"); QVBoxLayout * pageLayout = new QVBoxLayout(); //Define the fixed header QWidget * header = new QWidget(page); header->setFixedWidth(page->width()); QGridLayout * headerLayout = new QGridLayout(); headerLayout->setHorizontalSpacing(2); headerLayout->setVerticalSpacing(2); QLabel * numTable = new QLabel(); QPixmap numTableIm(":/Images/images/NumTable.png"); // numTable->setStyleSheet("margin-right: 5px"); numTable->setPixmap(numTableIm); numTable->setFixedSize(numTableIm.rect().size()); QLabel * banner = new QLabel(header); QPixmap bannerIm(":/Images/images/Banner.png"); banner->setPixmap(bannerIm); banner->setFixedSize(bannerIm.rect().size()); QPushButton * pain = new QPushButton(""); QPixmap painIm(":/Images/images/Pain.png"); QIcon painIcon(painIm); pain->setIcon(painIcon); pain->setIconSize(painIm.rect().size()); pain->setFixedSize(painIm.rect().size()); QPushButton * eau = new QPushButton(""); QPixmap eauIm(":/Images/images/eau.png"); QIcon eauIcon(eauIm); eau->setIcon(eauIcon); eau->setIconSize(eauIm.rect().size()); eau->setFixedSize(eauIm.rect().size()); QPushButton * serveur = new QPushButton(""); QPixmap serveurIm(":/Images/images/Serveur.png"); QIcon serveurIcon(serveurIm); serveur->setIcon(serveurIcon); serveur->setIconSize(serveurIm.rect().size()); serveur->setFixedSize(serveurIm.rect().size()); headerLayout->addWidget(numTable, 0, 0, 2, 0); headerLayout->addWidget(banner, 0, 1, 2, 1); headerLayout->addWidget(serveur,0, 2, 2, 2); headerLayout->addWidget(pain, 0, 3); headerLayout->addWidget(eau, 1, 3); header->setLayout(headerLayout); //Define the widget containing all the meals (Tabs) QTabWidget * repasFrame = new QTabWidget(page); //For one Meal, define the widget containing all the bands QWidget * area = new QWidget(repasFrame); QScrollArea * sArea = new QScrollArea(area); QPalette * palette = new QPalette(); palette->setColor(QPalette::Background, Qt::white); sArea->setPalette(*palette); sArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); sArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); sArea->setFixedWidth(page->width() -20); sArea->setFixedHeight(page->height() - header->height() - 125); bands = new QWidget(); bands->setFixedWidth(page->width() -25); // bands->setMinimumHeight(page->height() - header->height() - 125); bands->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Ignored); bandsLayout = new QVBoxLayout(bands); Headband* menus = HeadbandFactory::buildMenus(bands); bandList.append(menus); bandsLayout->addWidget(menus); usefulLabel = new QLabel(); bandsLayout->addWidget(usefulLabel); bands->setLayout(bandsLayout); sArea->setWidget(bands); repasFrame->setFixedWidth(page->width()); repasFrame->setFixedHeight(page->height() - header->height()); repasFrame->addTab(area, "Repas 1"); repasFrame->addTab(new QLabel(), "+"); //Define the confirmation button QPushButton * confirmButton = new QPushButton(""); QPixmap confirmIm(":/Images/images/Confirm.jpg"); QIcon confirmIcon(confirmIm); confirmButton->setIcon(confirmIcon); confirmButton->setIconSize(confirmIm.rect().size()); confirmButton->setFixedSize(confirmIm.rect().size()); //Define the 'languette' and its 'etiquette' QList<QList<QObject*> > bigDataList; languetteContainer = new LanguetteContainer(bigDataList); languetteContainer->setFixedSize(760, 855); Etiquette * etiquette = new Etiquette(languetteContainer, confirmButton, page); //Link final page layouts pageLayout->addWidget(header); pageLayout->addWidget(repasFrame); pageLayout->addWidget(etiquette); pageLayout->addWidget(confirmButton); pageLayout->addWidget(languetteContainer); page->setLayout(pageLayout); //connect all slots connect(etiquette, SIGNAL(updateLanguetteInfo()), this, SLOT(recapLanguette())); connect(menus, SIGNAL(itemSelect(Headband_Item*)), this, SLOT(changeMenu(Headband_Item*))); connect(confirmButton, SIGNAL(clicked()), this, SLOT(confirmMeal())); connect(pain, SIGNAL(clicked()), this, SLOT(callBread())); connect(eau, SIGNAL(clicked()), this, SLOT(callWater())); connect(serveur, SIGNAL(clicked()), this, SLOT(callServer())); setCentralWidget(page); }