我正在使用 QTabWidget
在一个窗口中呈现多个文档,我想在每个选项卡上绘制一个关闭按钮。我使用的是 Vista 和 Qt4,因此选项卡小部件是 native Windows 控件;这可能会影响可行性。
有谁知道是否可以使用 QTabWidget
控件执行此操作,或者我是否必须创建自定义小部件?如果创建一个新的小部件是唯一的选择,任何指针将不胜感激;我对 Qt 比较陌生。
最佳答案
从 Qt 4.5 开始。如果您只是在 QTabWidget
上调用 setTabsClosable(true)
,您将拥有关闭按钮,但它们不会绑定(bind)到操作。
如果您希望按钮执行某些操作,则必须将 tabCloseRequested(int) 信号连接到您自己的插槽之一。
MainWindow::MainWindow()
m_tabs = new QTabWidget();
m_tabs->setTabsClosable(true);
connect(m_tabs, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int)));
void MainWindow::closeTab(const int& index)
{
if (index == -1) {
return;
}
QWidget* tabItem = m_tabs->widget(index);
// Removes the tab at position index from this stack of widgets.
// The page widget itself is not deleted.
m_tabs->removeTab(index);
delete(tabItem);
tabItem = nullptr;
}
关于c++ - 在 QTabWidget 上放置一个关闭按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/459372/