在Qt编程中经常遇到多个界面之间的切换, 比如从登录界面跳转到主界面, 主界面跳转到设置界面,在返回到主界面
下面更加这个流程实现一个例子:
1.在QtCreator集成开发环境上创建MultiInterface工程如下(创建工程的时候会自动创建第一个界面命名为LoginWin)
创建完设计好登录界面的UI--可以参考https://blog.csdn.net/tiydy/article/details/83242360设计(界面运行如下)
在工程中在添加一个界面MainWin,在创建的是注意第三步选择界面模板的时候选择MainWindow,这是因为用这个模板来做界面切换非常方便
设计主界面如下:
按同样的方式设计设置界面
登录界面loginwin.cpp 切换部分代码 ,在登录按钮对应的槽函数中创建主界面对象并且显示就可以,不过主界面显示出来后登录界面就可以销毁了, 这里在创建的时候要注意主界面要单独创建不能与登录界面有关联主要代码如下
//注意记得添加主界面头文件
//登录进入到主界面
void LoginWin::on_loginBt_clicked()
{
//检查用户和密码
//如果正确就进入到主界面(不需要返回到登录界面)
MainWindow *win = new MainWindow;
win->show();
this->close();//这里不能用delete,因为this是main函数中创建的栈空间系统自动释放
}
现在跳转到主界面,主界面点击注销按钮的时候返回到登录界面(这种操作不是经常性操作,所以开始登录的时候已经关闭窗口了,那么现在要让登录界面显示就要重新创建一个界面在显示)
//添加登录界面头文件
//注销进入到登录界面
void MainWindow::on_backLoginBt_clicked()
{
LoginWin *win = new LoginWin;//创建登录界面
win->show();//显示登录界面
delete this;//把主界面删除
}
登录到主界面,再由主界注销到登录界面已经完成,下面来实现由主界面到设置界面,在从设置界面返回到主界面
MainWindow,SetWin界面在设计的时候(选择MainWiindow界面模板设计)这是我知道的最方便的方法,
//注意添加设置界面头文件
//在主界面进入到设置界面
void MainWindow::on_enterSetBt_clicked()
{
//创建设置界面并且把this传入设置界面用于后面返回
//注意MainWindow,SetWin界面在设计的时候(选择MainWiindow界面模板设计)实现
SetWin *win = new SetWin(this);
win->show();
this->hide(); //主界面隐藏--后期直接可以显示
}
在设置界面返回到主界面--点击返回按钮, 槽函数代码如下:
//在设置界面返回主界面
void SetWin::on_backmainBt_clicked()
{
this->parentWidget()->show();
delete this;//释放设置界面 也可以用this->deleteLater()但是这个函数不会立即释放空间
}