安装

pip install PyQt5

pip3.5 install pyqt5-tools

界面化操作

1.在cmd输入designer并敲回车,即可启动Designer。一般选择“Main Window”点击“Create”即可创建。

2.创建后,可以方便快捷的用Qt Designer画出对应框体,如通过Combo Box添加下拉选择的控件;通过Push Button添加按钮;通过List Widget添加列表框;通过Table Widget添加数据表格框,table中设置列数(右键-Edit Items-Colums),调整框体位置和文字大小,背景颜色以及windowTitle来优化界面显示,使用快捷键Ctrl+R预览当前编写的GUI显示如下:

3.点击保存,生成*.ui的文件,本例中为test.ui,保存在D:\py\deploy文件夹下

生成python代码

使用cmd将目录切到D:\py\deploy目录并执行命令:pyuic5 -o test1.py test.ui,即可在该目录下生成test.py的文件

生成的test.py并没有程序入口。因此我们在同一个目录下另外创建一个程序叫做“main.py”,并输入如下内容。在本例中,gui_file_name就是test,请自行替换

运行main.py即可显示GUI界面

修改生成的代码再次优化界面显示

1.删除菜单栏和工具栏代码

2.调整文字大小

3.添加背景色

4.修改框体大小和位置

5.设置tableWight行数和列数

6.优化后显示如下

重点难点:初始化 + 信号和槽

1.combo Box初始化

两种方式,一种是一个一个的添加,一种是以列表形式一次添加

#补充:获取combo Box当前值

2.listWidget初始化

类似comboBox,具体如下:

#补充1:listWidget内容清空

#补充2:获取行数

self.listWidget.count()

补充3:获取第i行的数据

3. tableWidget初始化

4. combox关联

5. listWidget关联

6. tableWidget新增行

7. tableWidget删除行

示例代码:

#-*- coding: utf-8 -*-

#Form implementation generated from reading ui file 'test.ui'#

#Created by: PyQt5 UI code generator 5.13.2#

#WARNING! All changes made in this file will be lost!

from PyQt5 importQtCore, QtGui, QtWidgetsimportsysfrom PyQt5.QtWidgets importQApplication, QMainWindow, QTableWidgetItem

dict= {'Apple':['iphone7','iphone8','iphone9','iphone10','iphone11'],'HuaWei':['nova 7 Pro','P40Pro','Mate30 Pro','','P30Pro'],'小米':['小米10','小米10 Pro','小米8','小米9 SE','小米10 青春版','小米9 Pro'],'vivo':['vivo X50 Pro','vivo X50','vivo S6','vivo Z6']}classUi_MainWindow(object):defsetupUi(self, MainWindow):

MainWindow.setObjectName("MainWindow")#MainWindow框体大小

MainWindow.resize(1100, 850)#修改主题的颜色

palette1 =QtGui.QPalette()

palette1.setColor(palette1.Window, QtGui.QColor(47, 57, 76))

MainWindow.setPalette(palette1)

self.centralwidget=QtWidgets.QWidget(MainWindow)

self.centralwidget.setObjectName("centralwidget")

self.comboBox=QtWidgets.QComboBox(self.centralwidget)#comboBox 框体位置和大小

self.comboBox.setGeometry(QtCore.QRect(310, 20, 91, 31))

self.comboBox.setObjectName("comboBox")#self.comboBox.addItem('Apple') #添加一个项目

#self.comboBox.addItem('HuaWei')

#self.comboBox.addItem('小米')

#self.comboBox.addItem('vivo')

self.comboBox.addItems(['Apple', 'HuaWei', '小米', 'vivo']) #添加多个项目

#comboBox关联

self.comboBox.currentIndexChanged.connect(self.selectionchange)

self.listWidget=QtWidgets.QListWidget(self.centralwidget)

self.listWidget.setGeometry(QtCore.QRect(160, 70, 421, 681))

self.listWidget.setObjectName("listWidget")#listWidget双击关联

self.listWidget.doubleClicked.connect(self.deleteList)#获取当前comboBox的text值

value =self.comboBox.currentText()

self.listWidget.addItems(dict[value])

self.pushButton=QtWidgets.QPushButton(self.centralwidget)

self.pushButton.setGeometry(QtCore.QRect(320, 770, 71, 31))#修改button字体大小

font =QtGui.QFont()

font.setPointSize(12)

self.pushButton.setFont(font)

self.pushButton.setObjectName("pushButton")#清空

self.pushButton.clicked.connect(self.empty)

self.pushButton_2=QtWidgets.QPushButton(self.centralwidget)

self.pushButton_2.setGeometry(QtCore.QRect(810, 440, 71, 31))

font=QtGui.QFont()

font.setPointSize(12)

self.pushButton_2.setFont(font)

self.pushButton_2.setObjectName("pushButton_2")#新增一行

self.pushButton_2.clicked.connect(self.addline)

self.tableWidget=QtWidgets.QTableWidget(self.centralwidget)

self.tableWidget.setGeometry(QtCore.QRect(680, 150, 311, 271))

self.tableWidget.setObjectName("tableWidget")

self.tableWidget.setColumnCount(2)#设置table行数

self.tableWidget.setRowCount(10)

self.tableWidget.setColumnWidth(0,100) #设置1列的宽度

self.tableWidget.setColumnWidth(1, 200) #设置2列的宽度

self.tableWidget.setItem(0, 0, QTableWidgetItem("test")) #设置0行0列的内容为test

#后面命名用的列

item =QtWidgets.QTableWidgetItem()

self.tableWidget.setHorizontalHeaderItem(0, item)

item=QtWidgets.QTableWidgetItem()

self.tableWidget.setHorizontalHeaderItem(1, item)

MainWindow.setCentralWidget(self.centralwidget)#菜单栏和工具栏代码,不需要删除

#self.menubar = QtWidgets.QMenuBar(MainWindow)

#self.menubar.setGeometry(QtCore.QRect(0, 0, 1221, 23))

#self.menubar.setObjectName("menubar")

#MainWindow.setMenuBar(self.menubar)

#self.statusbar = QtWidgets.QStatusBar(MainWindow)

#self.statusbar.setObjectName("statusbar")

#MainWindow.setStatusBar(self.statusbar)

self.retranslateUi(MainWindow)

QtCore.QMetaObject.connectSlotsByName(MainWindow)defretranslateUi(self, MainWindow):

_translate=QtCore.QCoreApplication.translate

MainWindow.setWindowTitle(_translate("MainWindow", "测试"))

self.pushButton.setText(_translate("MainWindow", "清空"))

self.pushButton_2.setText(_translate("MainWindow", "新增"))

item=self.tableWidget.horizontalHeaderItem(0)

item.setText(_translate("MainWindow", "列一"))

item= self.tableWidget.horizontalHeaderItem(1)

item.setText(_translate("MainWindow", "列二"))defdeleteList(self):

item= self.listWidget.currentItem() #获取当前选中对象

print(item.text())

self.listWidget.takeItem(self.listWidget.currentRow())#删除指定索引号的项目

defselectionchange(self):

value=self.comboBox.currentText()print("Combo Box显示内容变化,目前显示为{}".format(value))

self.listWidget.clear()

list=dict[value]

self.listWidget.addItems(list)defempty(self):#listWidget内容清空

self.listWidget.clear()defaddline(self):

row=self.tableWidget.rowCount()

self.tableWidget.setRowCount(row+ 1)#滚动条移到最后面

self.tableWidget.verticalScrollBar().setSliderPosition(row)if __name__ == '__main__':

app=QApplication(sys.argv)

MainWindow=QMainWindow()

ui=Ui_MainWindow()

ui.setupUi(MainWindow)

MainWindow.show()

sys.exit(app.exec_())

View Code

python输入数据pyqt5_pyQt5简单使用相关推荐

  1. 一万字全网最全的“Python变量和简单数据类型知识”,干货满满

    第二章:Python变量和简单数据类型 在本章中,你将学习可在Python程序中使用的各种数据,还将学习如何在程序 中使用变量来表示这些数据. 2.1 运行hello_world.py时发生的情况 运 ...

  2. python制作统计图_刻意练习11:Python描述统计、简单统计图形

    学习计划 MyPlan11 主题:Python描述统计.简单统计图形 时间:8.5-8.11周内完成 参考资料:新书<谁说菜鸟不会数据分析python篇> 各位星友们,在这个星球里每个人都 ...

  3. 用Python建立最简单的web服务器

    用Python建立最简单的web服务器 利用Python自带的包可以建立简单的web服务器.在DOS里cd到准备做服务器根目录的路径下,输入命令: python -m Web服务器模块 [端口号,默认 ...

  4. Python django实现简单的邮件系统发送邮件功能

    Python django实现简单的邮件系统发送邮件功能 本文实例讲述了Python django实现简单的邮件系统发送邮件功能. django邮件系统 Django发送邮件官方中文文档 总结如下: ...

  5. python简单界面实现-python实现的简单窗口倒计时界面实例

    本文实例讲述了python实现的简单窗口倒计时界面.分享给大家供大家参考.具体分析如下: 下面的代码通过Tkinter制作windows窗口界面,然后时间了一个简单的倒计时功能,代码可以直接运行 # ...

  6. python之celery简单使用

    python之celery简单使用 参考:https://blog.csdn.net/zt3032/article/details/79251888 celery是一个简单.灵活和可靠的分布式任务处理 ...

  7. python之simplejson,Python版的简单、 快速、 可扩展 JSON 编码器/解码器

    simplejson Python版的简单. 快速. 可扩展 JSON 编码器/解码器 编码基本的 Python 对象层次结构: import simplejson as jsonprint json ...

  8. python写好的代码怎么给别人使用-10分钟学会用python写游戏!Python其实很简单!...

    原标题:10分钟学会用python写游戏!Python其实很简单! Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以在这里给各位看官们准备了高价值Python学习视频教程 ...

  9. python界面设计-手把手教你用Python设计一个简单的命令行界面

    原标题:手把手教你用Python设计一个简单的命令行界面 对 Python 程序来说,完备的命令行界面可以提升团队的工作效率,减少调用时可能碰到的困扰.今天,我们就来教大家如何设计功能完整的 Pyth ...

最新文章

  1. MySql 5.7 新特性概览
  2. 关于luci的几个问题一
  3. 盘点9个你可能不会用的JS技巧
  4. k8s系统架构图(二)
  5. 参加软件测试工程师面试前,这些内容你一定要准备
  6. UVa272 - Tex Quotes
  7. linux vnc 安装目录,Linux环境VNC服务安装、配置与使用(图)
  8. rk3399_android7.1 USB Type-A的配置
  9. R数据分析:竞争风险模型的做法和解释二
  10. linux 配置局域网内部www服务器,局域网内部邮件服务器搭建方法
  11. batchsize和数据量设置比例_设置BatchSize
  12. 资深老狐一句感叹:白学了,猫猫究竟有什么魔力,一小时等于十年功?
  13. 小程序转码机器人-微信小程序转二维码
  14. 【原创】AE菜单中英文对照完全版(贴图打包下载)
  15. FontMetrics的相关函数
  16. SolidWorks2016软件,SW2010-2016.Activator.GUI.SSQ激活闪退解决办法:
  17. 今日运势 酷q_《意大利grand老妇人》电影_意大利grand老妇人老版国语字幕-内蒙古呼和浩特铁路预防职务犯协会...
  18. Java —— 内存泄露排查
  19. Linux查看网络连接情况ss,Linux网络状态工具netstat和ss使用详解
  20. 电信网管中的Java客户端(二)

热门文章

  1. VS2017-快捷键使用大全
  2. 绿盟科技研究员刚实现PLC蠕虫 荷兰研究员就要发布PLC Rootkit 据说这种攻击难以检测...
  3. 解决公众号开发 安卓正常 iOS调微信SDK失败 签名错误
  4. HarmonyOS实战—原子化服务初尝试
  5. 数据库操作重点总结记录 ExecuteReader OleDbDataReader...
  6. 爱奇艺网络控制和抓包测试技术实践
  7. 极光尔沃:3D打印个人防护装备市场未来具备很大潜力!
  8. Log4J配置 category appender layout
  9. 如何确定PC Nvidia显卡是否支持CUDA以及cudaNN?
  10. pythonadb之安卓手机加速多线程kill所有第三方程序脚本