Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Qt中使用按钮堆叠小部件页面_Qt_Qt5_Qpushbutton_Qstackedwidget - Fatal编程技术网

在Qt中使用按钮堆叠小部件页面

在Qt中使用按钮堆叠小部件页面,qt,qt5,qpushbutton,qstackedwidget,Qt,Qt5,Qpushbutton,Qstackedwidget,如何使用QPushButtons导航QStackWidget页面? 每当单击按钮时需要调用哪个方法,以便打开一个particluar stackwidget页面 感谢和问候,QStackedWidget有一个方法.setCurrentIndex(int),您可以使用该方法切换到其他页面。您可以将该方法与QPushButton的clicked()signal结合使用,以更改当前堆叠的小部件页面 例如: MainWindow::MainWindow(QWidget* parent) : QMainW

如何使用
QPushButton
s导航
QStackWidget
页面? 每当单击按钮时需要调用哪个方法,以便打开一个particluar stackwidget页面


感谢和问候,

QStackedWidget
有一个方法
.setCurrentIndex(int)
,您可以使用该方法切换到其他页面。您可以将该方法与
QPushButton
clicked()
signal
结合使用,以更改当前堆叠的小部件页面

例如:

MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //initially set current page to 0
    ui->stackedWidget->setCurrentIndex(0);

    //suppose we have buttons button1 and button2
    connect(button1, &QPushButton::clicked, this, [=]() {
        //set page to 1
        ui->stackedWidget->setCurrentIndex(1);
    });

    connect(button2, &QPushButton::clicked, this, [=]() {
        //set page to 2
        ui->stackedWidget->setCurrentIndex(2);
    });

}
您也可以使用普通功能插槽而不是lambda功能:

//mainwindow.h文件
类主窗口{
//...
专用插槽:
void onButton1Clicked();
void onButton2Clicked();
}
//mainwindow.cpp文件
MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(新ui::MainWindow)
{
//...
连接(button1,&QPushButton::clicked,this,&MainWindow::onButton1Clicked);
连接(按钮2,&QPushButton::clicked,this,&MainWindow::onButton2Clicked);
}
void主窗口::onButton1Clicked()
{
ui->stackedWidget->setCurrentIndex(1);
}
void主窗口::onButton2Clicked()
{
ui->stackedWidget->setCurrentIndex(1);
}

QStackedWidget
有一个方法
.setCurrentIndex(int)
,您可以使用该方法切换到其他页面。您可以将该方法与
QPushButton
clicked()
signal
结合使用,以更改当前堆叠的小部件页面

例如:

MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //initially set current page to 0
    ui->stackedWidget->setCurrentIndex(0);

    //suppose we have buttons button1 and button2
    connect(button1, &QPushButton::clicked, this, [=]() {
        //set page to 1
        ui->stackedWidget->setCurrentIndex(1);
    });

    connect(button2, &QPushButton::clicked, this, [=]() {
        //set page to 2
        ui->stackedWidget->setCurrentIndex(2);
    });

}
您也可以使用普通功能插槽而不是lambda功能:

//mainwindow.h文件
类主窗口{
//...
专用插槽:
void onButton1Clicked();
void onButton2Clicked();
}
//mainwindow.cpp文件
MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(新ui::MainWindow)
{
//...
连接(button1,&QPushButton::clicked,this,&MainWindow::onButton1Clicked);
连接(按钮2,&QPushButton::clicked,this,&MainWindow::onButton2Clicked);
}
void主窗口::onButton1Clicked()
{
ui->stackedWidget->setCurrentIndex(1);
}
void主窗口::onButton2Clicked()
{
ui->stackedWidget->setCurrentIndex(1);
}

点击后是什么?“[=]”?这是一个lambda函数。它就像一个没有名字的函数。您可以在此处使用普通函数,但需要在
main window
类中的
slots:
下声明该函数。@MdMoslehUddin使用函数slots查看更新后的答案它说button1不在此范围内声明。(我尝试了第二种方法)是的,您必须使用您设置的变量名。检查
.ui
文件中的变量名称。这只是一个例子。您的变量可能位于
ui->
之后是什么(单击此,)“[=]”?这是一个lambda函数。它就像一个没有名字的函数。您可以在此处使用普通函数,但需要在
main window
类中的
slots:
下声明该函数。@MdMoslehUddin使用函数slots查看更新后的答案它说button1不在此范围内声明。(我尝试了第二种方法)是的,您必须使用您设置的变量名。检查
.ui
文件中的变量名称。这只是一个例子。您的变量可能位于
ui->