2017-07-10 12 views

答えて

1

まずプロジェクト名をQtの後、右クリックして新しいプロジェクトを作成する - >新を追加します。.. 。 と、この画像のような新しいUIクラスます image one を、 image two

今あなたは2つの形式があります。 最初に2番目のクラスからオブジェクトを作成する必要があります。

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は入力への入力装置のプッシュボタンを有していません。この方法で使用できますか? 'QElapsedTimer renderTime; qint64 frameCount = 1; if(first-> isVisible()) { first-> hide(); renderTime.start(); second-> showFullScreen(); printf( "%lld nano secs、"、renderTime.nsecsElapsed()); } else { renderTime.restart(); first-> showFullScreen(); printf( "%lld nano secs、"、renderTime.nsecsElapsed()); second-> hide(); } '@aghilpro –

+0

@VamsiKrishnaNeelamはい、QElapsedTimerを使用してウィンドウを表示したり非表示にすることができます。 – aghilpro

+0

@VamsiKrishnaNeelam私はQtimerでそれを行い、正常に動作します。 1秒ごとにWindowsが切り替わります。 – aghilpro

関連する問題