c++ - 在 QTabWidget 上放置一个关闭按钮

标签 c++ windows qt qtabwidget

我正在使用 QTabWidget 在一个窗口中呈现多个文档,我想在每个选项卡上绘制一个关闭按钮。我使用的是 VistaQt4,因此选项卡小部件是 native Windows 控件;这可能会影响可行性。

有谁知道是否可以使用 QTabWidget 控件执行此操作,或者我是否必须创建自定义小部件?如果创建一个新的小部件是唯一的选择,任何指针将不胜感激;我对 Qt 比较陌生。

最佳答案

从 Qt 4.5 开始。如果您只是在 QTabWidget 上调用 setTabsClosable(true),您将拥有关闭按钮,但它们不会绑定(bind)到操作。
如果您希望按钮执行某些操作,则必须将 tabClos​​eRequested(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/

相关文章:

windows - 为什么 Snowbird 浏览器比 Windows Explorer 快..?

qt - 在Windows中模拟鼠标单击

c++ - 使用QTcpSocket实现连续快速使用

c++ - 无法在 OpenGL 上加载多个纹理

c++ - 如何获取结构中元素的数量?

c++ - 普通树 - 非二叉树 - 高度

windows - 如何在 Windows 命令行和批处理脚本中处理文件名中的日语字符?

c++ - 如何在 C++ 中创建一个大小为 1 位的元素数组

python - 如何在 Windows 10 上使用 Python 和 WMI 检测亮度变化?

c++ - VS2013 与 QT5.3.2 使用 Websocket 并遇到 Unresolved external symbol 问题