Cos*_*sty 22 c++ user-interface qt tabs
我正在使用Qt进行大学的作业,我想用它QTabWidget来显示一个像Pidgin一样的聊天窗口.我想让"群聊"标签始终打开,无法关闭,其余的"私人频道"标签可以关闭.
QTabWidget的setTabsClosable(bool)是没有帮助.
有任何想法吗?
小智 33
我想,我找到了一个更简单的解决方案.只需访问相关的关闭按钮并调整其大小.
tabWidget->tabBar()->tabButton(0, QTabBar::RightSide)->resize(0, 0);
小智 16
找到栏(它是私有的,所以使用findChild())并删除按钮.文档声称关闭按钮也可以放在左侧.
QTabBar *tabBar = ui->tabWidget->findChild<QTabBar *>();
tabBar->setTabButton(0, QTabBar::RightSide, 0);
tabBar->setTabButton(0, QTabBar::LeftSide, 0);
Run Code Online (Sandbox Code Playgroud)
小智 9
你好,
我想这篇文章不会对这个帖子的作者有所帮助,但也许有人在这里徘徊.
在大多数情况下,不可关闭的选项卡不仅应该忽略它,也不应该在它的角落显示一个接近的符号.达到此目的的一个好方法是修改QTabWidget内的QTabBar.
例:
// let tabWidget be a QTabWidget with at least one page
QPushButton *closeButton = new QPushButton();
// set icon and size for PushButton, ...
// connect Signal clicked() from closeButton with Slot closeCurrentTab(), ...
// next line sets closeButton in right corner on tab with index 0
tabWidget->tabBar()->setTabButton(0, QTabBar::RightSide, closeButton);
Run Code Online (Sandbox Code Playgroud)
我想你可以处理 tabCloseRequest 信号并决定是否关闭给定的选项卡
http://doc.qt.io/archives/4.6/qtabwidget.html#tabCloseRequested
编辑:我创建了一个小例子来检查一下。我的示例是一个简单的 QtGui 应用程序,其主窗口有一个选项卡小部件。然后我添加了 tabCloseRequested 插槽。这是代码
void MainWindow::on_tabWidget_tabCloseRequested(int index)
{
if(someCondition){
return;
} else if(anotherCondition){
ui->tabWidget->removeTab(index);
}
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,仅关闭不适用条件的选项卡。
| 归档时间: |
|
| 查看次数: |
10979 次 |
| 最近记录: |