PySide——Python图形化界面入门教程(五)
2016-05-18 14:49
621 查看
PySide——Python图形化界面入门教程(五)
——QListWidget
原文链接:http://pythoncentral.io/pyside-pyqt-tutorial-the-qlistwidget/
Qt具有简洁和方便的几个部件,用来作单列表选择,我们称之为列表框。最灵活的方法是使用一个是Qlistview,它提供了一个必须由程序员定义UI视图、高度灵活的列表模式;一个简单的方法是使用QListWidget,它具有一个预先定义的基于项目的模型,用来处理常见的列表框。我们本节从简单的QListWidget开始。
QListWidget
QListWidget的构造器同许多QWidget的子类一样,拥有一个可选的parent参数:
填充QListWidget
为QListWidget添加项目非常容易。如果项目是纯文本,你可以单独的添加他们:
或者一起添加他们:
你还可以使用QListWidgetItem类更复杂的列表项目。QListWidgetItem可以被单独的创建,然后再使用列表的addItem方法添加。
更复杂的QListWidget项目
或者,它还可以直接使用list参数来创建,这样他会自动的被添加到list。
项目可以使用setText方法来添加文本,使用setIcon方法添加图标QIcon:
同样也可以在构造器中写明文本或图标:
当然, 上面的每个构造器也可选的接受parent参数。
使用QListWidget
QListWidget提供一些方便的信号来响应用户输入。最重要的是currentItemChanged信号,它是当用户改变选择的项目时发出;它连接的槽接收两个参数,current和previous,表示现在和之前选择的QListWidgetItem项。同样它也有对应的信号,当用户单击、双击、激活或按下一个项、改变选择的项目集时。
为获得当前选择的项,你也可以使用currentItemChanged信号传来的参数,或使用QListWidget的currentItem方法。
对QIcon的注解
你可以通过添加一个图标来改变QListWidgetItem,所以有必要了解一下QIcon了。这有许多构造QIcon的方法,如:
提供文件名:
使用主题图标:
通过
还有许多其他的。注意:基于文件的创建方法支持许多类型,但并不是所有类型,你可以通过使用
View Code
运行这个例子需要你有一个具有图片的文件夹;原文作者使用了
应有些朋友的要求,给出一个运行的截图。另外需要注意自行import一些库才可以运行。
显然,QListWidget是非常简单的widget,不需要提供更多的选项;这就会有许多它不能适应的应用场景。对于难以适应的场景,你或许需要使用QListView,我们在下节讨论它。
By Ascii0x03
转载请注明出处:http://www.cnblogs.com/ascii0x03/p/5502286.html
——QListWidget
原文链接:http://pythoncentral.io/pyside-pyqt-tutorial-the-qlistwidget/
Qt具有简洁和方便的几个部件,用来作单列表选择,我们称之为列表框。最灵活的方法是使用一个是Qlistview,它提供了一个必须由程序员定义UI视图、高度灵活的列表模式;一个简单的方法是使用QListWidget,它具有一个预先定义的基于项目的模型,用来处理常见的列表框。我们本节从简单的QListWidget开始。
QListWidget
QListWidget的构造器同许多QWidget的子类一样,拥有一个可选的parent参数:
self.list = QListWidget(self)
填充QListWidget
为QListWidget添加项目非常容易。如果项目是纯文本,你可以单独的添加他们:
for i in range(10): self.list.addItem('Item %s' % (i + 1))
或者一起添加他们:
items = ['Item %s' % (i + 1) for i in range(10)] self.list.addItems(items)
你还可以使用QListWidgetItem类更复杂的列表项目。QListWidgetItem可以被单独的创建,然后再使用列表的addItem方法添加。
item = QListWidgetItem() list.addItem(item)
更复杂的QListWidget项目
或者,它还可以直接使用list参数来创建,这样他会自动的被添加到list。
item = QListWidgetItem(list)
项目可以使用setText方法来添加文本,使用setIcon方法添加图标QIcon:
item.setText('I am an item') item.setIcon(some_QIcon)
同样也可以在构造器中写明文本或图标:
item = QListWidgetItem('A Text-Only Item') item = QListWidgetItem(some_QIcon, 'An item with text and an icon')
当然, 上面的每个构造器也可选的接受parent参数。
使用QListWidget
QListWidget提供一些方便的信号来响应用户输入。最重要的是currentItemChanged信号,它是当用户改变选择的项目时发出;它连接的槽接收两个参数,current和previous,表示现在和之前选择的QListWidgetItem项。同样它也有对应的信号,当用户单击、双击、激活或按下一个项、改变选择的项目集时。
为获得当前选择的项,你也可以使用currentItemChanged信号传来的参数,或使用QListWidget的currentItem方法。
对QIcon的注解
你可以通过添加一个图标来改变QListWidgetItem,所以有必要了解一下QIcon了。这有许多构造QIcon的方法,如:
提供文件名:
icon = QIcon('/some/path/to/icon.png').
使用主题图标:
icon = QIcon.fromTheme('document-open').
通过
QPixMap:
icon = QIcon(some_pixmap)
还有许多其他的。注意:基于文件的创建方法支持许多类型,但并不是所有类型,你可以通过使用
QImageReader().supportedImageFormats()来查看你的平台和版本支持哪些。在作者的系统上,它返回了:
if __name__ == '__main__': # The app doesn't receive sys.argv, because we're using # sys.argv[1] to receive the image directory app = QApplication([]) # Create a window, set its size, and give it a layout win = QWidget() win.setWindowTitle('Image List') win.setMinimumSize(600, 400) layout = QVBoxLayout() win.setLayout(layout) # Create one of our ImageFileList objects using the image # directory passed in from the command line lst = ImageFileList(sys.argv[1], win) layout.addWidget(lst) entry = QLineEdit(win) layout.addWidget(entry) def on_item_changed(curr, prev): entry.setText(curr.text()) lst.currentItemChanged.connect(on_item_changed) win.show() app.exec_()
View Code
运行这个例子需要你有一个具有图片的文件夹;原文作者使用了
/usr/share/icons作为例子,你需要选择自己的文件夹。
python imagelist.py /usr/share/icons/nuoveXT2/48x48/devices
应有些朋友的要求,给出一个运行的截图。另外需要注意自行import一些库才可以运行。
显然,QListWidget是非常简单的widget,不需要提供更多的选项;这就会有许多它不能适应的应用场景。对于难以适应的场景,你或许需要使用QListView,我们在下节讨论它。
By Ascii0x03
转载请注明出处:http://www.cnblogs.com/ascii0x03/p/5502286.html
相关文章推荐
- python 的一些小知识
- Python学习札记
- Python核心编程
- python gevent
- Python正则表达式
- 灰帽子Python 学习记录 8 内存断点
- 批处理与python代码混合编程的方法
- Python执行系统命令的方法 os.system(),os.popen(),commands
- Python基础教程之字符串
- Python基础知识之认识字符串
- python定义影像投影
- python中去掉文件的注释
- 开始学python
- python中for in中定义多个参数
- Python中的函数参数
- python unix :No such file or directory
- python将url转换成二维码
- pythonchallenge 解谜 Level 4
- python实现获取系统版本和mac信息上传到指定接口
- GETTING STARTED WITH PICAMERA(python picamera入门)