2017-07-10 20 views

Répondre

1

d'abord un nouveau projet avec Qt puis clic droit sur le nom du projet -> Ajouter un nouveau .. . et faire une nouvelle classe d'interface utilisateur comme ces images: image one , image two

maintenant vous avez deux formes. vous devez créer un objet à partir de la deuxième classe en premier.

first.h

#ifndef FIRST_H 
#define FIRST_H 

#include <QMainWindow> 
#include <second.h> 
#include <QTimer> 

namespace Ui { 
class First; 
} 

class First : public QMainWindow 
{ 
    Q_OBJECT 

public: 
    explicit First(QWidget *parent = 0); 
    ~First(); 

private slots: 
    void on_pushButton_clicked(); 
    void changeWindow(); 

private: 
    Ui::First *ui; 
    Second *second; 
    QTimer * timer; 
}; 

#endif // FIRST_H 

first.cpp

#include "first.h" 
#include "ui_first.h" 

First::First(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::First) 
{ 
    ui->setupUi(this); 

    second = new Second(); 
    timer = new QTimer(); 
    connect(timer,&QTimer::timeout,this,&First::changeWindow); 
    timer->start(1000); // 1000 ms 
} 

First::~First() 
{ 
    delete ui; 
} 

void First::changeWindow() 
{ 
    if(second->isVisible()) 
    { 
     second->hide(); 
     this->show(); 
    } 
    else 
    { 
     this->hide(); 
     second->show(); 
    } 
} 

void First::on_pushButton_clicked() 
{ 
    second->show(); 
} 

fisrt.pro

QT  += core gui 

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 

TARGET = First 
TEMPLATE = app 


SOURCES += main.cpp\ 
     first.cpp \ 
    second.cpp 

HEADERS += first.h \ 
    second.h 

FORMS += first.ui \ 
    second.ui 

First form ui

+0

I possèdent pas de dispositif d'entrée pour entrer le bouton-poussoir. Puis-je utiliser de cette façon? 'QElapsedTimer renderTime; qint64 frameCount = 1; if (premier-> isVisible()) { first-> hide(); renderTime.start(); second-> showFullScreen(); printf ("% lld nano secs,", renderTime.nsecsElapsed()); } sinon { renderTime.restart(); first-> showFullScreen(); printf ("% lld nano secs,", renderTime.nsecsElapsed()); second-> hide(); } '@aghilpro –

+0

@VamsiKrishnaNeelam oui, vous pouvez utiliser QElapsedTimer pour afficher et masquer les fenêtres. – aghilpro

+0

@VamsiKrishnaNeelam Je l'ai fait avec Qtimer et ça marche très bien. chaque seconde Windows commute. – aghilpro