ich habe eine Klasse von QTabbedWidget abgeleitet und folgende Operationen neu implementiert:
Code: Alles auswählen
void OperationTabsContainer::mousePressEvent(QMouseEvent *pEvent)
{
if(pEvent->button() == Qt::MidButton)
{
QPoint oPos = pEvent->pos();
QTabBar *pTabBar = this->tabBar();
if(pTabBar != NULL)
{
int iTabIdx = pTabBar->tabAt(oPos);
if(iTabIdx != -1)
{
removeTab(iTabIdx);
}
else
{
LOG_ERROR_1("Could not determine TabIndex.");
}
}
else
{
LOG_ERROR_1("Could not get TabBar.");
}
}
else
{
//no need to handle event here
}
QTabWidget::mousePressEvent(pEvent);
}
int OperationTabsContainer::addTab(QWidget *pChild, const QString &oLabel)
{
int iTabIdx = QTabWidget::addTab(pChild,oLabel);
if(iTabIdx >= 0)
{
m_oChildToRemoveMapper.setMapping(pChild,iTabIdx);
m_oChildToUpdateMapper.setMapping(pChild,iTabIdx);
bool bResult = false;
bResult = connect(pChild, SIGNAL(okBtnClicked()), &m_oChildToRemoveMapper, SLOT(map()));
bResult = connect(pChild, SIGNAL(attributeChanged()), &m_oChildToUpdateMapper, SLOT(map()));
}
else
{
LOG_ERROR_1("Could not add tab.");
}
return iTabIdx;
}
void OperationTabsContainer::removeTab(int iIndex)
{
QWidget *pWidget = widget(iIndex);
if(pWidget != NULL)
{
OperationTab *pTab = static_cast<OperationTab*>(pWidget);
if(pTab->getImplementationChanged() == true)
{
//TODO ask user if changes should be applied
}
delete pTab;
QTabWidget::removeTab(iIndex);
}
else
{
LOG_ERROR_2("Could not get Widget at index ", static_cast<qint32>(iIndex));
}
}
Kann mir bitte jemand erklären was ich falsch gemacht habe?
Gruß M@g