📄 ktvscreencontroller.cpp
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -