- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将新选项卡添加到 QTabBar 中,但没有成功。
我想要实现的是,当您单击“添加”图标时,将会出现 3 个菜单项。根据选择的项目,除了“添加”图标之外,它还会创建一个新选项卡。
例如,如果我选择选项 - food
,GUI 将显示如下内容:
| + |食物|
在我的 set_new_tab()
中,虽然它似乎打印出了我选择的选项,但 addTab
似乎没有执行任何操作。
想知道我是否错过了一些东西,或者 QTabBar
是否应该与 QTabWidget
结合使用?
这是我的代码:
class MyWin(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MyWin, self).__init__()
self.tab_bar = QtGui.QTabBar()
self.add_button = QtGui.QToolButton(self)
self.add_button.setIcon(QtGui.QIcon('add.png'))
self.add_button.setMenu(self.set_menu())
self.add_button.setPopupMode(QtGui.QToolButton.InstantPopup)
self.tab_bar.setTabButton(
0,
QtGui.QTabBar.ButtonPosition.RightSide,
self.add_button
)
def set_menu(self):
menu_options = ['food', 'drinks', 'snacks']
qmenu = QtGui.QMenu(self.add_button)
for opt in menu_options:
qmenu.addAction(opt, partial(self.set_new_tab, opt))
qmenu.addAction
return qmenu
def set_new_tab(self, opt):
print ">>> opt clicked on : ", opt
self.tab_bar.addTab(opt) # This does not seems to creating new tabs..
感谢任何建议。
最佳答案
问题不在于在选项卡中创建,而在于选项卡的尺寸很小并且位于按钮后面,因此解决方案是使用布局正确放置小部件。
from functools import partial
from PyQt4 import QtGui
class MyWin(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MyWin, self).__init__()
central_widget = QtGui.QWidget()
self.setCentralWidget(central_widget)
vlay = QtGui.QVBoxLayout(central_widget)
hlay = QtGui.QHBoxLayout()
vlay.addLayout(hlay)
vlay.addStretch()
self.add_button = QtGui.QToolButton()
self.tab_bar = QtGui.QTabBar(self)
self.add_button.setIcon(QtGui.QIcon('add.png'))
self.add_button.setMenu(self.set_menu())
self.add_button.setPopupMode(QtGui.QToolButton.InstantPopup)
self.tab_bar.setTabButton(
0,
QtGui.QTabBar.ButtonPosition.RightSide,
self.add_button
)
hlay.addWidget(self.add_button)
hlay.addWidget(self.tab_bar)
def set_menu(self):
menu_options = ['food', 'drinks', 'snacks']
qmenu = QtGui.QMenu(self.add_button)
for opt in menu_options:
qmenu.addAction(opt, partial(self.set_new_tab, opt))
qmenu.addAction
return qmenu
def set_new_tab(self, opt):
print(">>> opt clicked on : ", opt)
self.tab_bar.addTab(opt)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
w = MyWin()
w.show()
sys.exit(app.exec_())
关于python - PyQt QTabBar 不创建新选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53877231/
我如何存档:- 我需要将一个选项卡从其 tabBar 拖放到拆分小部件中的其他 tabBar?我已经将 QtabBar 子类化并实现了拖放事件,我已经可以用正确的像素图等拖动它,而且我还可以将它放到同
我希望标签栏扩展到空白区域,直到右侧。最好是所有选项卡都具有相同的宽度。我不知道该怎么做,因为我的样式表不起作用,而且我在文档中找不到选项。 from PyQt4.QtGui import * fro
我正在通过 QLineEdit 动态插入制表符,效果很好。为了填满屏幕的整个宽度 (800px),我使用自己的 eventFilter 扩展选项卡: tabs.h class ResizeFilter
所以我们为选项卡定制了 QSS,我想从标准选项卡中重新创建这种外观,但出于某种原因,我无法重新创建它。我希望所选选项卡看起来像在顶部并直接进入 Pane 。 选中或未选中时,选项卡的边框都可以正常工作
在我的应用程序中,我有一个 QTabBar 小部件,如果有很多选项卡,它会使用滚动按钮。 现在,在 currentChanged(int) 信号上,我调用了一个重命名上一个和当前选项卡的方法(调用 s
我有以下样式表: QTabBar::tab { background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,
我对 QTabBar/QTabWidget 有疑问。这是我的程序目前的样子,使用 QTabBar: 如您所见,QTabBar 和它下面的 QScrollArea 之间有一条难看的线。这条线是 QScr
嗨,我想在 QtabBar 小部件的标签栏的每个标签中放置图标和图标下方的文本。默认情况下,文本和图标设置为彼此相邻,我想一个显示在另一个下方。我们该怎么做。 最佳答案 似乎只有一种方法可以改变图标的
似乎没有办法为 QTabBar 的底线(如下图所示)设置样式表。 ,我想删除它。 我怎样才能删除它? 最佳答案 现在 6-7 个月没有使用 Qt,所以我不确定这是否有效,也无法对其进行测试。给 QTa
有没有办法为 QTabBar 关闭按钮分配 CSS 样式? 通常 QTabBar可以设置样式,但我无法找到如何从 CSS 引用按钮。 最佳答案 如上面的评论所述,从 Qt 4.6 开始,您可以使用以下
我将 QTabWidget 子类化以添加 QTabBar,其选项卡延伸到 tabBar 的整个宽度。因此我将扩展属性设置为 true。这似乎并没有改变选项卡的行为。 有人遇到同样的问题吗?我结合使用
我正在尝试将新选项卡添加到 QTabBar 中,但没有成功。 我想要实现的是,当您单击“添加”图标时,将会出现 3 个菜单项。根据选择的项目,除了“添加”图标之外,它还会创建一个新选项卡。 例如,如果
我正在尝试根据 QMenu 中的项目列表检查 QTabBar 中的现有选项卡。如果现有选项卡包含 QMenu 中找不到的项目,则该选项卡将以红色突出显示。 最初我使用的是tabTextColor,但它
我有一个按钮可以在 QTabWidget 中添加选项卡。但是当我改变按钮的大小时,它就不再在角落里了。那么我怎样才能像第一张图片那样把它带到角落呢? 不改变大小: 更改尺寸: 这是我的代码: from
我正在尝试更改 QTabWidget 的样式。我想减少每个选项卡中图标和文本之间的间隙,并将两者居中。 这就是我现在拥有的: 这就是我想要的: 我当前的样式表是: stylesheet = """
我的widget结构如下:QToolBar 添加了一个 QTabBar,并在 TabBar 之后添加了一个 QToolButton。 默认情况下,只会打开一个选项卡,ToolButton 可以打开更多
我真的想要一个可以通过双击选项卡标题来重命名的 QTabWidget。我用谷歌搜索并找到了 this solution ,但它更像是一个大纲,供开发人员使用 Qt 并对其小部件进行子类化。我有点不知道
我在 Konsole 应用程序中使用 css 样式来区分选项卡: QTabBar::tab:selected { background: #4286f4 } QTabBar::tab:hover
作为“Hide label text for Qt tabs without setting text to empty string”的后续: 我可以直接访问 QTabBar 选项卡中的小部件吗?我
我正在尝试使用自定义 CSS 优化 konsole 的 Breeze Dark 主题,但我无法弄清楚当 konsole 内容发生变化并且选项卡变得突出显示时选择的选择器(如果你明白我的意思;它仅仅意味
我是一名优秀的程序员,十分优秀!