В части кода Qt/C++ у меня есть класс QTabWidget с различными вкладками. Я бы хотел добавить последнюю вкладку «+», поэтому, когда пользователь нажимает на нее, я создаю новую вкладку.
Однако я хотел бы, чтобы все мои вкладки были закрыты («x» справа от вкладки), за исключением последнего, где я не хочу, чтобы «x» отображалось. Как я могу получить эту гранулярность в закрываемом флаге?Закрытые вкладки QTabWidget, но не все из них
-1
A
ответ
1
Удивленный, чтобы видеть, что на это еще не дан ответ. Прошло некоторое время, и я применил рабочий пример. Обратите внимание, что вместо того, чтобы использовать одну из вкладок в качестве вашей кнопки «+», я использовал QToolButton
тем самым делая его более простым, чтобы сделать вкладки закрываемые с QTabWidget::setTabsClosable(bool)
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTabWidget>
#include <QToolButton>
#include <QLabel>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QTabWidget* _pTabWidget;
private slots:
void slotAddTab();
void slotCloseTab(int);
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
_pTabWidget = new QTabWidget(this);
this->setCentralWidget(_pTabWidget);
// Create button what must be placed in tabs row
QToolButton* tb = new QToolButton(this);
tb->setText("+");
// Add empty, not enabled tab to tabWidget
_pTabWidget->addTab(new QLabel("Add tabs by pressing \"+\""), QString());
_pTabWidget->setTabEnabled(0, false);
// Add tab button to current tab. Button will be enabled, but tab -- not
_pTabWidget->tabBar()->setTabButton(0, QTabBar::RightSide, tb);
// Setting tabs closable and movable
_pTabWidget->setTabsClosable(true);
_pTabWidget->setMovable(true);
connect(tb,SIGNAL(clicked()),this,SLOT(slotAddTab()));
connect(_pTabWidget,SIGNAL(tabCloseRequested(int)),this,SLOT(slotCloseTab(int)));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::slotAddTab()
{
QWidget* newTab = new QWidget(_pTabWidget);
_pTabWidget->addTab(newTab, tr("Tab %1").arg(QString::number(_pTabWidget->count())));
_pTabWidget->setCurrentWidget(newTab);
}
void MainWindow::slotCloseTab(int index)
{
delete _pTabWidget->widget(index);
}
main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
+0
Очень умный, спасибо! –
Смежные вопросы
- 1. идентифицировать вкладки в QT Qtabwidget
- 2. Закрыть кнопку на QTabWidget, а не вкладки в QTabWidget
- 3. Настройка цвета вкладки QTabWidget
- 4. QStackedWidget внутри вкладки QTabWidget?
- 5. Ярлыки geom_points, но не все из них
- 6. Strat вкладки из QTabWidget в потоках
- 7. Отслеживать подвижные вкладки в QTabWidget
- 8. Закрытые вкладки Firefox из командной строки
- 9. Добавление вкладки в QTabWidget. пусто?
- 10. PyQt: переупорядочить вкладки в QTabWidget
- 11. QTabWidget вкладки полки как eclipse
- 12. Вкладка контекстного меню вкладки QTabWidget
- 13. PyQT Qtabwidget скрывает и закрывает определенные вкладки
- 14. Inline переименование вкладки в QTabBar/QTabWidget
- 15. Определите конкретные вкладки QTabWidget через таблицу стилей
- 16. css3 форматирования Mutiple элементов, но не все из них
- 17. Поверхности - диалоговые поля пустые, но не все из них
- 18. OnItemClickListener NullPointerException по некоторым пунктам, но не все из них
- 19. Как предотвратить закрытие вкладки QTabWidget? PyQt4
- 20. QTabWidget Я хотел бы спрятать суб-вкладки
- 21. PyQt4 (QTabWidget) как изменить позицию вкладки
- 22. Изменение вкладки QTabWidget с помощью кнопки
- 23. Вкладка QTabWidget не отображается
- 24. Как добавить дополнительные вкладки в существующий qtabwidget?
- 25. Доступ к виджету вкладки в QTabWidget
- 26. Размер QTabWidget в зависимости от текущей вкладки
- 27. Закрытые вкладки JQuery и скрипты Ajax
- 28. Перетащите вкладку из QTabWidget
- 29. Ошибка: «QTabWidget :: QTabWidget (const QTabWidget &)» является приватным
- 30. Стиль каждой отдельной вкладки QTabWidget по-другому друг от друга
Возможный дубликат [Закрыть кнопки на для некоторых вкладок в Qt] (http://stackoverflow.com/questions/2616483/close-button-only-for-some-tabs-in-qt) –
Это может быть решением, но не мешает 'x 'для отображения рядом с моим' + ', который я бы хотел избежать. –
Я не понимаю ... Вам не нужно показывать кнопку закрытия одной вкладки - я даю вам решение. Пожалуйста, уточните свой вопрос. –