要判断 QTabWidget
中被点击的是哪个标签页,你可以连接 currentChanged
信号到一个槽函数中,这个信号会在当前标签页更改时发射。以下是一个简单的示例,展示如何实现这一点:
#include <QApplication>
#include <QTabWidget>
#include <QVBoxLayout>
#include <QLabel>
#include <QWidget>
class MyWidget : public QWidget {
Q_OBJECT
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent) {
QTabWidget *tabWidget = new QTabWidget(this);
// 添加一些标签页
tabWidget->addTab(new QLabel("内容 1"), "标签 1");
tabWidget->addTab(new QLabel("内容 2"), "标签 2");
tabWidget->addTab(new QLabel("内容 3"), "标签 3");
// 连接信号和槽
connect(tabWidget, &QTabWidget::currentChanged, this, &MyWidget::onCurrentChanged);
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(tabWidget);
setLayout(layout);
}
private slots:
void onCurrentChanged(int index) {
// 根据索引判断当前选中的标签页
switch (index) {
case 0:
qDebug() << "点击了 标签 1";
break;
case 1:
qDebug() << "点击了 标签 2";
break;
case 2:
qDebug() << "点击了 标签 3";
break;
default:
break;
}
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyWidget window;
window.resize(400, 300);
window.show();
return app.exec();
}
#include "main.moc"
示例解释:
- 创建了一个
QTabWidget
并添加了三个标签。 - 使用
connect()
函数将currentChanged
信号连接到自定义的槽函数onCurrentChanged()
。 - 在槽函数中,根据传入的索引判断并打印出被点击的标签。
这样,当用户点击不同的标签页时,就会在控制台输出相应的信息。你可以根据自己的需要在这个槽函数中执行其他操作。
内容由零声教学AI助手提供,问题来源于学员提问