函数实现了QTableWidget的添加和获取功能,现在需要实现QStack的使用。
首先,在QWidget类中定义一个QStack
接下来,在前进和后退按钮的槽函数中,分别从QStack中取出上一个或下一个QTableWidget,并将其设置为QTabWidget当前页。注意,在前进和后退时需要对QStack是否为空进行判断。
以下是示例代码:
class MyWidget : public QWidget {
Q_OBJECT
public:
MyWidget(QWidget* parent = nullptr) : QWidget(parent), m_tabWidget(this) {}
void addtab() {
QTableWidget* tableWidget = new QTableWidget(this);
// 添加表格内容
// ...
m_tabWidget.addTab(tableWidget, "New Tab");
m_historyStack.push(tableWidget);
while (m_historyStack.size() > 20) {
delete m_historyStack.pop();
}
}
private slots:
void onBackwardClicked() {
if (!m_historyStack.isEmpty()) {
QTableWidget* prevWidget = m_historyStack.pop();
m_tabWidget.setCurrentWidget(prevWidget);
}
}
void onForwardClicked() {
if (!m_historyStack.isEmpty()) {
QTableWidget* nextWidget = m_historyStack.top();
m_tabWidget.setCurrentWidget(nextWidget);
}
}
private:
QTabWidget m_tabWidget;
QStack<QTableWidget*> m_historyStack;
};