如何QStackWidget
使用 s 导航页面QPushButton
?每当单击按钮时都需要调用哪个方法,以便它打开一个特定的堆栈小部件页面。
感谢和问候,
如何QStackWidget
使用 s 导航页面QPushButton
?每当单击按钮时都需要调用哪个方法,以便它打开一个特定的堆栈小部件页面。
感谢和问候,
QStackedWidget
有一种方法.setCurrentIndex(int)
可以用来切换到不同的页面。您可以将该方法与clicked()
signal
of结合使用QPushButton
来更改当前堆叠的小部件页面。
例子:
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 file
class MainWindow{
//...
private slots:
void onButton1Clicked();
void onButton2Clicked();
}
//mainwindow.cpp file
MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
//...
connect(button1, &QPushButton::clicked, this, &MainWindow::onButton1Clicked);
connect(button2, &QPushButton::clicked, this, &MainWindow::onButton2Clicked);
}
void MainWindow::onButton1Clicked()
{
ui->stackedWidget->setCurrentIndex(1);
}
void MainWindow::onButton2Clicked()
{
ui->stackedWidget->setCurrentIndex(1);
}