繁体   English   中英

是否可以将QInputDialog与嵌套列表一起使用?

Is it possible to use QInputDialog with nested list or something like that?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我发现的有关PyQt5 QInputDialog的所有示例或文档,都使用简单的经典列表,每个“行”仅限于一项(例如在我的代码示例中(“红色”,“蓝色”或“绿色”))。

我正在寻找一种构建更详细的多维列表(如表格)的好方法,在该列表中,用户可以在输入对话框中查看并选择整行(具有多个值作为一项),而不是单个值。

例如这样的嵌套列表:[['Ryan',24,'m'],['Lisa',22,'f'],['Joe',30,'m']]

->想象一下,列表中的三个列表中的每一个都应该是可以选择的QInputDialog中的一行(条目)。 就像在表格中,每行都有一个复选框。

这样有可能吗? 有谁知道?

#The normal (limited) version with a simple list I am referring to looks like that:
def getChoice(self):
    itemlist = ("Red","Blue","Green")
    item, okPressed = QInputDialog.getItem(self, "Get item","Color:", itemlist, 0, False)
    if okPressed and item:
        print(item)
1 个回复

join()方法以可迭代方式获取所有项目,并将它们连接为一个字符串。

语法: string.join(iterable)

import sys
from PyQt5.QtCore import QTimer
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QLineEdit, QInputDialog, QLabel, QVBoxLayout


class PopupDialog(QtWidgets.QDialog):
    def __init__(self):
        super(PopupDialog, self).__init__()
        self.selected_item = None
        layout = QtWidgets.QFormLayout()
        self.setLayout(layout)
        self.setWindowTitle("New Popup")
        self.setMinimumWidth(400)

#        items = (['Ryan', 24, 'm'], ['Lisa', 22, 'f'], ['Joe', 30, 'm'])
        items = (['Ryan', '24', 'm'], ['Lisa', '22', 'f'], ['Joe', '30', 'm'])
        items = [ " ".join(item) for item in items ]                              # <<<-----<
        item, okPressed = QInputDialog.getItem(self, "Get item",
                          "Color:", items, 0, False)
        if okPressed and item:
            self.selected_item = item


class MainWindow(QtWidgets.QWidget):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setMinimumWidth(600)
        self.setWindowTitle("Main Window")
        self.le = QtWidgets.QLineEdit()
        button = QtWidgets.QPushButton("Select...")
        button.clicked.connect(self.get_input)
        layout = QtWidgets.QHBoxLayout()
        layout.addWidget(self.le)
        layout.addWidget(button)
        self.setLayout(layout)

    def get_input(self):
        popup = PopupDialog()
        print("got selection data: ", popup.selected_item)
        self.le.setText(popup.selected_item)

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

在此处输入图片说明

2 将嵌套循环与嵌套列表一起使用

我正在尝试通过使用嵌套列表和嵌套循环将值与阈值进行比较。 该列表包含一个个人列表,每个人都获得n个试验,其中(在每个试验中)他们从两个分布中获得两个值。 然后使用Kullback-Leibler散度(KLD)组合这些值,这意味着每个试验现在都有一个单一值。 目的是找出(对于每个人)这些值中 ...

3 插入函数与嵌套列表一起使用

我目前正在使用一个空的嵌套列表,我需要用所有需要放置在嵌套列表的正确区域中的元素来填充。 看起来list.insert()命令将是我要使用的命令,但是当我尝试将其与必要的多个索引一起使用时,出现以下错误消息: 有什么办法可以将insert()与嵌套列表一起使用? ...

6 Pyside:如何使用QInputDialog.getText

我是PySide的新手,我试图让用户输入一些文本。 然后,我想将其存储在变量中,并通过我拥有的单独脚本在搜索中使用它。 我已经通过文本文件解析了搜索脚本,以查找用户将输入的关键字。 首先,我试图将输入文本存储在变量中,并且正在测试是否使用简单的print语句存储了输入文本。 正如您将 ...

7 QInputDialog-使用Enter键确认

我试图使用没有按钮的QInputDialog。 看起来就像我想要的一样,但是我不确认输入(将其用于文本输入)。 是否有可能用enter键进行确认,以便exec()返回QInputDialog::Accepted吗? 就像转义键使对话框返​​回QInputDialog::Rejected吗? ...

9 使用QInputDialog将多个值读入变量

我必须编写一个小的QT程序,该程序读取以逗号分隔的3个标记百分比,然后对这些标记进行一些进一步的计算...我必须使用QInputDialog来执行此操作,但似乎只能在以下位置读取一个值一个时间。 在此阶段,我仅尝试阅读并显示三个标记。 当我运行此代码时,QTCreator停止工作,我必须 ...

2014-02-22 14:01:31 1 742   qt
10 是否有推荐与React js一起使用的库列表?

使用React js的参考MV *体系结构 我知道React是一个View Engine,它仍然需要许多其他库,例如Redux..etc。 是否有与React一起使用的库列表,以构建像Angular这样的完整生态系统? ...

2016-12-13 12:21:18 2 50   reactjs
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM