小编win*_*lfs的帖子

设置标志以使项目不可选择,然后再次可选择

我正在学习 PySide,我很困惑如何在第一次将 QListWidget 项目设置为不可选择后将其设置回可选择状态。我知道我可以:

QListWidget.SetFlags(QtCore.Qt.ItemIsSelectable)
Run Code Online (Sandbox Code Playgroud)

我有点不确定为什么该标志被命名为“ItemIsSelelectable”,因为它似乎使该项目无法选择。但我想在设置此标志后将项目设置回可选状态。

python qlistwidget pyside qlistwidgetitem

4
推荐指数
1
解决办法
6365
查看次数

使用 QSignalMapper

我尝试制作一个简单的示例来帮助理解 QSignalMapping 的概念如何在 PySide 中工作。我想通过循环迭代来动态创建一系列按钮,当用户按下其中一个按钮时,我可以激活一个方法,为按下的按钮返回适当的标签。

from PySide2 import QtWidgets,QtCore,QtGui

fruit_list = ["apples","oranges","pears"]

def fruit_button_event():
    print "this is the pressed button's label"

def main():
    for fruit in fruit_list:
        fruit_button = QtWidgets.QPushButton(fruit)
        fruit_button.clicked.connect(lambda:fruit_button_event())
main()
Run Code Online (Sandbox Code Playgroud)

python qsignalmapper pyside2

3
推荐指数
1
解决办法
1458
查看次数

我想向 QVBoxLayout 添加滚动条

如何在 PySide2 中向 QVBoxLayout 添加滚动条。

self.mainWidget = QtWidgets.QWidget()
self.window.setCentralWidget(self.mainWidget)
self.vertical_layout_main = QtWidgets.QVBoxLayout(self.mainWidget)       
scroll = QtWidgets.QScrollArea()
scroll.setWidget(self.vertical_layout_main)
scroll.setFixedHeight(400)
self.vertical_layout_main.addWidget(scroll)
Run Code Online (Sandbox Code Playgroud)

更新:

def populate_lights(self):
    self.vertical_layout_lights = QtWidgets.QVBoxLayout(self.mainWidget)
    self.vertical_layout_main.addLayout(self.vertical_layout_lights)
    for light in self.lights:
        horizontal_layout_light = QtWidgets.QVBoxLayout(self.mainWidget)
        light_label = QtWidgets.QPushButton(light)
        light_label.setCheckable(True)
        light_label.toggled.connect(partial(self.light_label_event,light))
        horizontal_layout_light.addWidget(light_label)
        self.vLayout.addLayout(horizontal_layout_light)

def light_palette_ui(self): 

    self.vertical_layout_main = QtWidgets.QVBoxLayout(self.mainWidget)
    self.scroll_widget = QtWidgets.QWidget()
    self.scroll_widget.setLayout(self.vertical_layout_main)
    self.scroll = QtWidgets.QScrollArea()
    self.scroll.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
    self.scroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
    self.scroll.setWidgetResizable(False)
    self.scroll.setWidget(self.scroll_widget)
    self.vLayout = QtWidgets.QVBoxLayout(self.mainWidget)
    self.vLayout.addWidget(self.scroll)
    self.populate_lights()        
    self.window.setAttribute(QtCore.Qt.WA_DeleteOnClose)
    self.window.show()        
Run Code Online (Sandbox Code Playgroud)

python python-2.7 pyside2

3
推荐指数
1
解决办法
1398
查看次数

禁用 QSpinBox 中的滚轮

我的 PySide 项目中有许多旋转框,我想更改行为,因此用户需要单击字段来更改值,然后按 Enter 键。我想禁用旋转框的滚轮行为。我尝试过设置焦点策略,但没有生效。

    def light_label_event(self,text,checked):
        print("this is the pressed button's label", text)

    def populate_lights(self):
        for light in self.lights:
            light_label = QtWidgets.QSpinBox()
            light_label.setFocusPolicy(QtCore.Qt.StrongFocus)
Run Code Online (Sandbox Code Playgroud)

python pyside2

3
推荐指数
1
解决办法
2747
查看次数

如何获得 Maya '列表;命令以按照渲染层编辑器中显示的顺序列出渲染层?

在 Maya 中,当我列出场景中的渲染层时,Maya 返回这些层,但并不总是按照它们在其旧版渲染层编辑器中显示的顺序。在更改现有渲染层的名称或添加和减去渲染层后,情况会如此。有没有办法列出图层并让 Maya 遵守渲染图层编辑器中使用的顺序?

导入 maya.cmds 作为 cmds cmds.ls(type = "renderLayer")

python maya

1
推荐指数
1
解决办法
2998
查看次数

如何从 QListWidget 项目中移除焦点

我正在使用 PySide 并且我有一个 QListWidget。我制作了一个虚拟项目并将其放置在 QListWidget 的顶部。我这样做是为了当该工具首次打开时,默认情况下不会选择任何有用的项目。我不喜欢这个空项目被“突出显示”,向用户展示该项目。我怎样才能摆脱这个轮廓/突出显示?我将附上该问题的图片:

在此输入图像描述

python focus selection qlistwidget pyside

0
推荐指数
1
解决办法
1849
查看次数