ktvscreencontroller.cpp
来自「QT KTV 源码,QT designer」· C++ 代码 · 共 64 行
CPP
64 行
#include "KtvScreenController.h"
KtvScreenController* KtvScreenController::_p_ktv_ctl = 0;
KtvScreenController::KtvScreenController(){
this->_p_screens = new QStack<QWidget*> ();
this->_p_widget = 0;
}
KtvScreenController::~KtvScreenController(){
while(!this->_p_screens->isEmpty())
delete this->_p_screens->pop();
if(this->_p_widget) delete this->_p_widget;
}
void KtvScreenController::Forward(QWidget* p_widget){
if(!this->_p_screens->isEmpty())
this->_p_screens->top()->hide();
this->_p_screens->push(p_widget);
p_widget->show();
}
void KtvScreenController::Replace(QWidget* p_widget){
if(!this->_p_screens->isEmpty()){
this->_p_screens->top()->hide();
if(this->_p_widget) delete this->_p_widget;
this->_p_widget = this->_p_screens->pop();
}
this->_p_screens->push(p_widget);
p_widget->show();
}
KtvScreenController* KtvScreenController::GetController(){
if(!KtvScreenController::_p_ktv_ctl)
KtvScreenController::_p_ktv_ctl = new KtvScreenController();
return KtvScreenController::_p_ktv_ctl;
}
void KtvScreenController::Back(){
if(this->_p_screens->size() > 1){
this->_p_screens->top()->hide();
if(this->_p_widget){
delete this->_p_widget;
}
this->_p_widget = this->_p_screens->pop();
this->_p_screens->top()->show();
}
}
void KtvScreenController::Toggle(){
if(this->_p_screens->size() < 2) return;
QWidget* p_widget1 = this->_p_screens->pop();
p_widget1->hide();
QWidget* p_widget2 = this->_p_screens->pop();
p_widget2->show();
this->_p_screens->push(p_widget1);
this->_p_screens->push(p_widget2);
}
void KtvScreenController::Home(){
if(this->_p_screens->size() < 2) return;
while(this->_p_screens->size() > 1){
if(this->_p_widget){
delete this->_p_widget;
}
this->_p_widget = this->_p_screens->pop();
this->_p_widget->hide();
}
this->_p_screens->top()->show();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?