【问题标题】:Get tab status using pyforms使用 pyforms 获取选项卡状态
【发布时间】:2018-03-05 12:20:02
【问题描述】:

我正在使用 pyforms 创建一个选项卡小部件,我想获取和设置当前活动选项卡。考虑这个例子:

self.formset = [{ 
    'Person A': ['_firstname', '_lastname'],
    'Person B': ['_firstname', '_lastname'] }]

所以我们得到 2 个标签 Person APerson B。如果我在它们之间切换,我想知道类似于 PyQt 函数currentIndex() 的信息。到目前为止,我还没有在 pyforms 文档中找到方法,有没有办法只使用 pyforms 来完成这个?

【问题讨论】:

    标签: pyforms


    【解决方案1】:

    获取或设置标签小部件的当前索引的主要问题是在生成布局时访问由 pyforms 创建的 QTabWidget。一旦您可以访问它,您只需调用小部件的 setCurrentIndex(int)/currentIndex()
    对此的(肮脏)快速修复是修改位于 pyforms 模块文件中的BaseWidget.py,当使用 virtualenv 时可以是<VIRTUALENV_DIR>/lib/python3.6/site-packages/pyforms/gui

    def generate_tabs(self, formsetdict):
        """
        Generate QTabWidget for the module form
        @param formset: Tab form configuration
        @type formset: dict
        """
        tabs = QTabWidget(self)
        for key, item in sorted(formsetdict.items()):
            ctrl = self.generate_panel(item)
            tabs.addTab(ctrl, key[key.find(':') + 1:])
        self.tabs = tabs
        return tabs
    

    注意补充:

    self.tabs = tabs
    

    然后在您的小部件/应用程序(BasicWidget 的子类)的代码中:

    >>> _t = self.tabs
    >>> _t.setCurrentIndex(3) # activate the 4th tab
    >>> print(_t.currentIndex())
    3 
    

    【讨论】:

      猜你喜欢
      • 2017-09-22
      • 1970-01-01
      • 2021-12-07
      • 2023-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-03
      • 2013-07-12
      相关资源
      最近更新 更多