下面是使用C++语言来实现在QTabWidget上添加QToolButton起到删除作用的示例代码:
#include <QtWidgets>
class MainWindow : public QMainWindow
{
public:
MainWindow(QWidget *parent = nullptr) : QMainWindow(parent)
{
// 创建QTabWidget对象
tab_widget = new QTabWidget(this);
// 添加QTabWidget对象到主窗口中
setCentralWidget(tab_widget);
// 添加标签页
for (int i = 0; i < 5; i++) {
QWidget *tab = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(tab);
layout->addWidget(new QPushButton("Button", tab));
QPushButton *delete_button = new QPushButton("Delete", tab);
connect(delete_button, &QPushButton::clicked, this, &MainWindow::on_delete_clicked);
layout->addWidget(delete_button);
tab->setLayout(layout);
tab_widget->addTab(tab, QString("Tab %1").arg(i+1));
}
}
private slots:
void on_delete_clicked() {
// 获取当前被选中的标签页索引
int index = tab_widget->currentIndex();
// 移除此标签页
tab_widget->removeTab(index);
}
private:
QTabWidget *tab_widget;
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
在这个示例中,我们创建了一个包含5个标签页的QTabWidget。每个标签页中都有一个“Delete”按钮,点击此按钮会删除当前的标签页。on_delete_clicked()方法通过获取当前被选中的标签页索引,然后移除此标签页来实现删除功能。