我有一个非常不稳定的行为,QTabWidget与鼠标交互。 它是一个主窗口,它使用QTabWidget作为中心窗口小部件,并且选项卡是动态创建的。
这里是主窗口的构造函数:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
this->mainTab = new QTabWidget;
this->mainTab->setObjectName(QStringLiteral("MainTab"));
this->mainTab->setMovable(true);
this->mainTab->setTabsClosable(true);
this->setCentralWidget(this->mainTab);
}
添加标签的功能:
void newTab(QString name)
{
QString id = randomid;
WidgetMapManager * newmanager = new WidgetMapManager(id, name);
this->mainTab->addTab(newmanager,name);
this->mainTab->setCurrentIndex(this->mainTab->count()-1);
}
这种行为很难解释。就好像在标签中接收click事件的rect是不合适的。最初看起来好像他们根本没有收到点击,但经过大量测试后,似乎有些标签可以点击右侧标签的某个小部分,其他标签根本无法点击,最后一个标签可以随时点击。
正如您在代码中看到的那样,可以移动选项卡;实际上,只有最后一个选项卡可以移动,然后可以选择并移动新选项卡成为最后一个选项卡。好像每次添加一个标签时,可点击的矩形都会向右移动,左边的标签就完全在它们之外。
放置在标签中的小部件没有任何区别;我试过不同的。还尝试使标签不可移动而不能关闭......
我在QT Creator中使用QT 5.5和MSVC 12编译器编写32位应用程序。 由于我的想法不足,所以对此有任何启发。