2017-07-10 4 views

Antwort

1

zunächst ein neues Projekt mit Qt macht dann Rechtsklick auf Projektnamen ständig wechseln -> Hinzufügen .. Sie zwei Formen haben image two

jetzt image one .,: und eine neue UI-Klasse wie diese Bilder machen. Sie müssen ein Objekt aus der zweiten Klasse in First machen.

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

Ich habe keine Eingabegerät die Drucktaste zur Eingabe. Kann ich diesen Weg benutzen? 'QElapsedTimer renderTime; qint64 frameCount = 1; if (first-> isVisible()) { first-> hide(); renderTime.start(); zweite-> showFullScreen(); printf ("% lld nano secs", renderTime.nsecsElapsed()); } sonst { renderTime.restart(); zuerst-> showFullScreen(); printf ("% lld nano secs", renderTime.nsecsElapsed()); zweite-> verstecken(); } '@aghilpro –

+0

@VamsiKrishnaNeelam Ja, Sie können QElapsedTimer verwenden, um Fenster ein- und auszublenden. – aghilpro

+0

@VamsiKrishnaNeelam Ich habe es mit Qtimer gemacht und es funktioniert gut. jede Sekunde Windows wechseln. – aghilpro

Verwandte Themen