擅长:python、mysql、java
<p>您可能需要根据选项卡区域手动检查单击位置(即<code>event.pos ()</code>)。我的Python有点生锈,所以这里有一些C++代码代替。假设您的tabwidget名为<code>myTabWidget</code>:</p>
<pre><code>int tabIndex = -1;
{
QTabBar* tabBar = myTabWidget->tabBar ();
QPoint globalPos = this ->mapToGlobal (event->pos ());
QPoint posInTabBar = tabBar->mapFromGlobal (globalPos);
for (int i=0; i<tabBar->count (); ++i)
{
if (tabBar->tabRect (i).contains (posInTabBar))
{
tabIndex = i;
break;
}
}
}
if (tabIndex < 0)
{
// No tab hit...
return;
}
</code></pre>
<p>我没有编译并运行此程序,但其思想应该很清楚。注意<code>mapToGlobal</code>和<code>mapFromGlobal</code>调用将给定事件的位置转换为选项卡栏的本机坐标。我希望我做得对。在</p>