问题标签 [qstackedwidget]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
211 浏览

python - 在不删除每帧内容的情况下在帧之间切换

我一直在使用以下setCentralWidget方法(在此处简化)编写用于在帧之间转换的 GUI——但直到很远才意识到它在移动到下一个窗口时会擦除每个窗口(我需要避免)。我的实际代码有输入框,当用户返回该框架进行修改等时,需要将其保持在完成状态。

我想尽可能少地改变我的层次结构 - 最有可能使用QStackedWidget或类似的东西。我在网上找到的唯一示例不是写在我的程序需要的类层次结构中(每个页面在它自己的类中)。有人在下面的示例文本中看到一个简单/优雅的解决方案吗?

0 投票
1 回答
666 浏览

python - 正确设置 QStackedWidget,信号看不到功能/插槽

我正在使用 PyQt5 开发 GUI。这是我进入 OOP 的第一步,我正在努力自学。我正在努力理解类何时继承方法/属性等以及它们有哪些可用方法——我想这是一个与范围相关的问题?我在下面的 GUI 上制作了一个 MWE。总的来说,将会有更多的页面和信号/插槽。

我想要的是:

堆栈应使用显示的“MainMenu”小部件/对象进行初始化(左下图)。单击“下一页”按钮应切换堆栈顺序以将“OtherPage”小部件/对象放在顶部(右下图)。我将每个页面创建为一个类,认为这将是组织我的项目的好方法。这是好还是坏的做法?

主菜单 其他页面

现在会发生什么:

如果该行nextPg.clicked.connect(self.drawOtherPage())被注释掉,则 GUI 工作(初始化),但当然然后单击按钮什么也不做。我可以切换初始堆栈顺序,以便“其他”小部件位于堆栈顶部并且它显示得很好,所以我认为该类也在工作。当上述行包含在代码中时,将引发以下错误:

我试过的

我认为调用super()应该允许子类(在本例中为 MainMenu)从父类(RootInit)继承方法。因此,我认为这应该使 drawOtherPage 方法可用于按钮连接信号。显然,错误是该方法不可用的结果。

我究竟做错了什么?我应该在方法中创建这些“页面”小部件吗?它们是否需要在 RootInit 类下,或者它们可以位于 .py 文件的顶层?我正在尝试遵循最佳实践,因为该项目最终会变得非常大。幸运的是,其中大部分应该是基于单击哪些按钮到达那里而具有变化的页面——因此我认为类会很有帮助。请严格对待代码和我的 python/PyQt 语言,努力学习——谢谢!

0 投票
2 回答
630 浏览

c++ - 使用 QTreeWidgetItems setData 存储 QStackedWidget 或 QVariant

我正在尝试制作一个 QTreeWidget ,使每一行都包含一系列组合框。根据用户与组合框的交互方式,我希望某些组合框成为行编辑,而一些组合框成为按钮。

这里有人建议QStackedWidget 可以满足我的需求,并且它做得很好,除了现在我需要一种方法来更改 QStackedWidget 旁边的 QStackedWidget 包含向我发送 indexChanged 信号的组合框的组合框。(基本上我想改变相邻的 QStackWidgets 索引)

我认为我可以使用 setData 将 QStackWidget 简单地存储在 childItem 中,然后在 indexChanged 插槽中检索它,但由于某种原因,QStackWidget 似乎没有设置为 childItems 数据。

任何帮助表示赞赏。

这是我最初设置 QTreeWidget 及其项目的地方

这是在我试图检索数据的插槽内(QStackWidget)

编辑:

我试图设置这样的数据

并像这样检索它

所以我仍然无法获得所需的功能。

0 投票
1 回答
611 浏览

c++ - QStackWidget 从 page1 导航到 page 2

我有一个MainWindow继承自QMainWindow. MainWindowQSTackedWidget它的ui文件中有。我在不同Page1Page2类中有所有页面小部件都有派生自QWidget.

QMainWindowQStackedWindow在一个类中实现。堆叠小部件内的所有其他页面都是添加的类,并且都有自己的 .ui 填充按钮

我实施了

它有一个带有下一步按钮的 ui 文件。点击它应该转到第 2 页;

第1页.cpp

问题在于单击按钮会打开一个新窗口,而不是堆叠格式的单个窗口。我哪里错了??如何解决这个问题?

0 投票
1 回答
739 浏览

python - 在运行时更新 QStackedWidget 内容

我正在 PyQT5 中创建一个 GUI,它应该提供来自多个相关 SQLite 表的数据的多个视图。我已经实现了这些视图以通过 QStackedWidget 显示。

现在,其中一些视图用于概览目的,其他视图用于概览中显示的数据子集的更详细视图。我想通过右键单击从概览中访问详细视图。

我在下面提供了一个带有汽车的最小示例。(抱歉,它有点长,但需要提供一个完整的工作示例。我已尽可能减少它。)目标是显示 DetailledView 以及在概览中选择的公司的汽车。

这已经提供了从 Overview 到 Rightclick 上的 DetailledView 的访问,但是公司信息没有传递。因此,即使从“VW”访问 DetailledView,self.mycompany 也会更新,但 car_widget 不会,因此 DetailledView 会显示有关“Honda”汽车的信息(默认)。

有没有办法用合适的公司更新 car_widgit?还是我需要在运行时创建 DetailledView?(这是否有效?但无论如何我宁愿不这样做,因为它可能使堆栈的索引不可靠......)

如何根据在另一个视图中选择的内容更新 QStackedWidget 中一个视图的 QTableModel?

这是代码:

0 投票
1 回答
792 浏览

c++ - Qt5 堆叠小部件

我创建了一个有 2 页的Qt堆叠小部件。第一页 ( stackedWidgetPage1) 有 1 个标签和 1 个按钮。第二页 ( stackedWidgetPage2) 有 1 个标签。当我按下按钮时,下面的代码运行。该代码应该将当前可见页面从第 1 页更改为第 2 页。但是,当代码运行时,标签会被“剪掉”一半。预期的结果是第 1 页将完全隐藏,第 2 页将完全可见。

第 1 页第 1 页

第2页第2页

程序开始程序开始

在我点击按钮后在我点击按钮后

0 投票
2 回答
2271 浏览

c++ - QStackedWidget究竟如何使用呢?

我之前尝试过使用QStackedWidget,但我不明白如何使用。下面的代码使我了解如何将当前窗口从主窗口更改为另一个窗口,该窗口已在主窗口中调用,并且效果很好。我把当前索引改成其他所有窗口,每次窗口都不一样,这很好。

我的问题是:

从另一个窗口如何切换到另一个窗口(不同于当前窗口)?我是否必须QStackedWidget在所有其他窗口中定义它,以便我可以像在这里使用它一样使用它?我希望在单击窗口(其他窗口)上的按钮后,窗口切换到另一个窗口,我该怎么做?

例如,在这段代码中,我有 FenetrePrincipale,它允许我使用 更改窗口,例如将setCurrentIndex设置setCurrentIndex为 3 使出现的第一个窗口是 MAFENETRE3。

例如,我希望从 MAFENTRE3 中使用一个允许我切换到另一个窗口的按钮。(实际上在遇到问题后,QStackedWidget我只是正常实现了我的代码,而不是切换到另一个窗口,我只是在窗口调用的底部打开窗口,这看起来不太好!

PS这里是测试代码:

feneprincipale.h

feneprincipale.cpp

这是 Mafenetre MaFenetre.h的代码

MaFenetre.cpp

0 投票
1 回答
1580 浏览

python-3.x - QStackedWidget - 逐页更改

有没有办法在不指定实际索引的情况下更改 QStackedWidget 的页面。

因此,我不只是使用按钮直接转到指定的索引 0,而是想在它们之间导航,我的意图是创建一个“下一个”、“上一个”“主页”功能。

0 投票
1 回答
175 浏览

c++ - 使用 QtSackedWidget 切换窗口时更改窗口标题

在大型项目中使用QtStackedWidget切换窗口时,它似乎没有考虑在每个窗口中添加的“ setWindowTitle ”部分,即使对于大小,它也只需要QtStackedWidget声明中的第一个精确大小。这很奇怪。我在这里阅读任何澄清。

  • 所以我的问题是:

    - QtStackedWidget 是否允许我们在每次切换窗口时更改窗口的标题?

    - 它的大小是固定的还是动态的?

0 投票
1 回答
47 浏览

python-3.x - QtDesigner5.11.0、python3.5和pyside2之间的兼容性问题?

我在创建 QtWindows 时使用 QtDesigner5.11 和 python3.5 取得了很好的成功。现在我想使用 QtDesigner 在 StackedWidget 中创建链接的 Qt 对象(帧)。

我读到 PySide 已经过时了,我应该使用 PySide2。根据我的阅读,Pyside2 适用于 Python3.6。

我可以将 Pyside2 与我目前的 QtDesigner5.11 和 Python3.5 配置一起使用,还是应该让 Conda 使用 c:\myUser\conda install pyside2 安装一堆升级?