Thanks very much.
I edited your code as follows to display the _edit inside the tab label area. Also fixed the window flags.
EditableTabBar
::EditableTabBar(QWidget* parent
) :
_edit.setWindowFlags(Qt::Popup);
connect(&_edit,
SIGNAL(newTextEntered
(const QString &)),
this,
SLOT( setCurrentTabText
(const QString &)));
}
void EditableTabBar
::mouseDoubleClickEvent(QMouseEvent* event
) { Q_UNUSED(event)
QRect rect
= this
->tabRect
(currentIndex
());
_edit.setFixedSize(rect.size());
_edit.move(mapToGlobal(rect.topLeft()));
_edit.setText(tabText(currentIndex()));
//_edit.move(mapToGlobal(event->pos()));
}
EditableTabBar::EditableTabBar(QWidget* parent) :
QTabBar(parent), _edit("", 0) {
_edit.setWindowFlags(Qt::Popup);
connect(&_edit, SIGNAL(newTextEntered(const QString &)), this,
SLOT( setCurrentTabText(const QString &)));
}
void EditableTabBar::mouseDoubleClickEvent(QMouseEvent* event) {
Q_UNUSED(event)
QRect rect = this->tabRect(currentIndex());
_edit.setFixedSize(rect.size());
_edit.move(mapToGlobal(rect.topLeft()));
_edit.setText(tabText(currentIndex()));
//_edit.move(mapToGlobal(event->pos()));
}
To copy to clipboard, switch view to plain text mode
Bookmarks