赞
踩
1、打开Qt Creator,新建一个Qt Widgets Application项目,添加控件Stacked Widget和PushButton,然后再添加3个子窗口类
子窗口类可有自己任意定义,创建好后将头文件引入主窗口类,并定义子类的对象为主类私有变量,方便成员函数访问。
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- alarm = new Alarm(this);
- cfg = new Config(this);
- disk = new Disksystem(this);
- //添加生成的子界面
- ui->stackedWidget->addWidget(alarm);
- ui->stackedWidget->addWidget(cfg);
- ui->stackedWidget->addWidget(disk);
-
- ui->stackedWidget->setCurrentWidget(cfg);
-
- }
-
- MainWindow::~MainWindow()
- {
- delete ui;
- }
-
- QString MainWindow::GetQstringInt(QString arg)
- {
- QString tmp;
- for(int j = 0; j < arg.length(); j++)
- {
- if(arg[j] > '0' && arg[j] < '9')
- tmp.append(arg[j]);
- }
- return tmp;
- }
-
- void MainWindow::on_CfgBtn_clicked()
- {
- ui->stackedWidget->setCurrentWidget(cfg);
- index = ui->stackedWidget->currentIndex();
- qDebug()<<"index= "<<index;
- }
-
- void MainWindow::on_AlarmBtn_clicked()
- {
- ui->stackedWidget->setCurrentWidget(alarm);
- index = ui->stackedWidget->currentIndex();
- qDebug()<<"index= "<<index;
- }
-
- void MainWindow::on_diskBtn_clicked()
- {
- ui->stackedWidget->setCurrentWidget(disk);
- index = ui->stackedWidget->currentIndex();
- qDebug()<<"index= "<<index;
- }
-
-
- void MainWindow::on_lineEdit_textChanged(const QString &arg1)
- {
- QString s1 = "开始";
- qDebug()<<"on_lineEdit_textChanged=="<<arg1;
-
- if(arg1.compare(s1) == 0)
- {
- ui->stackedWidget->setCurrentIndex(1);
- qDebug()<<"setCurrentIndex==1";
- return;
- }
- else {
- // i++;
- }
-
- }
-
- void MainWindow::on_pushButton_2_clicked()
- {
- this->close();
- }
-
- void MainWindow::on_treeWidget_itemPressed(QTreeWidgetItem *item, int column)
- {
- QString str = item->text(column);
- qDebug()<<"channel num:"<<GetQstringInt(str);
- }
新添加的Stacked Widget控件是有两个空白页面可以切换的,页面的索引是从0开始的,也就是说两个空白页面占据了0和1,如果新添加了页面,那就是索引号从2开始。还要注意的是页面有两种切换方式,一种是索引号,另外一种是按窗口名称,窗口名称这种在切换的时候不太好用,会报错,最好还是使用索引号。
- //获取页面的数量
- int nCount = ui->stackedWidget->count();
- //获取当前页面的索引
- int nIndex = ui->stackedWidget->currentIndex();
- //获取下一个需要显示的页面索引
- nIndex++;
-
- //当需要显示的页面索引大于等于总页面时,切换至首页
- if (nIndex >= nCount)
- {
- nIndex = firstIndex;
- }
-
- //显示当前页面
- ui->stackedWidget->setCurrentIndex(nIndex);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。