本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
以下文章来源于海唤鱼杂记客栈 ,作者:海唤鱼杂记客栈

私信回复“资料”,即可免费领取Python实战案例讲解视频
Python GUI编程:高清电影在线观看平台制作,全网电影免费看
https://www.bilibili.com/video/BV1tz4y1o7Yc/
案例:
利用列表的形式设计一个用户选择界面
工具:
- python
- PyQt5
程序运行结果如下:
(1)初始界面

(2)选择菜单项

(3)选择多重时


设计程序如下:
1from PyQt5 import QtCore, QtGui, QtWidgets 2 3 4class Ui_MainWindow(object): 5 def setupUi(self, MainWindow): 6 MainWindow.setObjectName("MainWindow") 7 MainWindow.resize(300, 300) 8 self.centralwidget = QtWidgets.QWidget(MainWindow) 9 self.centralwidget.setObjectName("centralwidget") 10 self.listWidget = QtWidgets.QListWidget(self.centralwidget) 11 self.listWidget.setGeometry(QtCore.QRect(20, 10, 260, 260)) 12 self.listWidget.setObjectName("listWidget") 13 MainWindow.setCentralWidget(self.centralwidget) 14 self.menubar = QtWidgets.QMenuBar(MainWindow) 15 self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26)) 16 self.menubar.setObjectName("menubar") 17 MainWindow.setMenuBar(self.menubar) 18 self.statusbar = QtWidgets.QStatusBar(MainWindow) 19 self.statusbar.setObjectName("statusbar") 20 MainWindow.setStatusBar(self.statusbar) 21 22 23 self.retranslateUi(MainWindow) 24 QtCore.QMetaObject.connectSlotsByName(MainWindow) 25 26 27 # 设置列表可以多选 28 self.listWidget.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection) 29 # 设置选中方式为整行选中 30 self.listWidget.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) 31 # 设置以列表形式显示数据 32 self.listWidget.setViewMode(QtWidgets.QListView.ListMode) 33 self.listWidget.setWordWrap(True) 34 from collections import OrderedDict # 设置自动换行 35 # 定义有序字典,作为List列表的数据源 36 dict = OrderedDict({'蒸羊羔': '998元/份', 37 '蒸熊掌': '998元/份', 38 '蒸鹿尾儿': '998元/份', 39 '烧花鸭': '288/份', 40 '烧雏鸡': '288/份', 41 '烧子鹅': '288元/份', 42 '卤猪': '688元/份', 43 '卤鸭': '188元/份', 44 '酱鸡腊肉': '188元/份'}) 45 46 47 for key, value in dict.items(): # 遍历字典,并分别获取到键值 48 self.item = QtWidgets.QListWidgetItem(self.listWidget) # 创建列表项 49 self.item.setText(key+': '+value) # 设置项文本 50 self.item.setToolTip(value) # 设置提示文字 51 self.listWidget.itemClicked.connect(self.gettext) 52 53 54 def gettext(self,item): # 自定义槽函数,获取列表选中项的值 55 if item.isSelected(): # 判断项是否选中 56 from PyQt5.QtWidgets import QMessageBox 57 QMessageBox.information(MainWindow,"提示","您选择的是:"+item.text(),QMessageBox.Ok) 58 59 60 61 62 def retranslateUi(self, MainWindow): 63 _translate = QtCore.QCoreApplication.translate 64 MainWindow.setWindowTitle(_translate("MainWindow", "点菜系统")) 65 66 67import sys 68# 主方法,程序从此处启动PyQt设计的窗体 69if __name__ == '__main__': 70 app = QtWidgets.QApplication(sys.argv) 71 MainWindow = QtWidgets.QMainWindow() # 创建窗体对象 72 ui = Ui_MainWindow() # 创建PyQt设计的窗体对象 73 ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置 74 MainWindow.show() # 显示窗体 75 sys.exit(app.exec_()) # 程序关闭时退出进程
本文同步分享在 博客“松鼠爱吃饼干”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。