鱼C论坛

 找回密码
 立即注册
查看: 2198|回复: 6

[已解决]关于pyqt5中的combobox与buttbox结合起来的运用

[复制链接]
发表于 2020-8-28 10:46:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 差不多先生air 于 2020-8-28 11:28 编辑

我想通过选择combobox不同的下拉选项,然后通过buttbox按钮,将一些内容打印在textedit上面,请问一下应该怎么将combobox和buttbox结合起来,达到以上的目的。

界面代码
  1. from PyQt5 import QtCore, QtGui, QtWidgets


  2. class Ui_Form(object):
  3.     def setupUi(self, Form):
  4.         Form.setObjectName("Form")
  5.         Form.resize(623, 508)
  6.         self.pushButton = QtWidgets.QPushButton(Form)
  7.         self.pushButton.setGeometry(QtCore.QRect(410, 380, 93, 28))
  8.         self.pushButton.setObjectName("pushButton")
  9.         self.label = QtWidgets.QLabel(Form)
  10.         self.label.setGeometry(QtCore.QRect(30, 380, 71, 21))
  11.         self.label.setObjectName("label")
  12.         self.comboBox = QtWidgets.QComboBox(Form)
  13.         self.comboBox.setGeometry(QtCore.QRect(116, 380, 261, 22))
  14.         self.comboBox.setObjectName("comboBox")
  15.         self.comboBox.addItem("")
  16.         self.comboBox.addItem("")
  17.         
  18.         self.textEdit = QtWidgets.QTextEdit(Form)
  19.         self.textEdit.setGeometry(QtCore.QRect(30, 30, 471, 331))
  20.         self.textEdit.setObjectName("textEdit")

  21.         self.retranslateUi(Form)
  22.         self.pushButton.clicked.connect(Form.pushButton_click)
  23.         QtCore.QMetaObject.connectSlotsByName(Form)

  24.     def retranslateUi(self, Form):
  25.         _translate = QtCore.QCoreApplication.translate
  26.         Form.setWindowTitle(_translate("Form", "Form"))
  27.         self.pushButton.setText(_translate("Form", "软件启动"))
  28.         self.label.setText(_translate("Form", "软件选择:"))
  29.         self.comboBox.setItemText(0, _translate("Form", "机械特性"))
  30.         self.comboBox.setItemText(1, _translate("Form", "微水测试"))
复制代码


主程序代码
  1. import sys
  2. import subprocess
  3. from PyQt5 import QtWidgets
  4. from PyQT_Form import Ui_Form


  5. class MyPyQT_Form(QtWidgets.QWidget,Ui_Form):
  6.     def __init__(self):
  7.         super(MyPyQT_Form,self).__init__()
  8.         self.setupUi(self)
  9.      
  10.     #实现pushButton_click()函数,textEdit是我们放上去的文本框的id
  11.     def pushButton_click(self):
  12.         self.textEdit.setText("机械特性软件正在运行...")
  13.         self.textEdit.setReadOnly(True)
  14.         subprocess.Popen("F:\HDSwitchTest.7z11\HDSwitchTest\HDSwitchTest.exe")
  15.         


  16. if __name__ == '__main__':
  17.     app = QtWidgets.QApplication(sys.argv)
  18.     my_pyqt_form = MyPyQT_Form()
  19.     my_pyqt_form.show()
  20.     sys.exit(app.exec_())

复制代码


界面图:

最佳答案
2020-8-28 11:45:51
差不多先生air 发表于 2020-8-28 11:31
老哥  你在看看上面我的描述,我想通过下拉列表选择不同的内容,然后点击启动按钮后,可以打印不同的内容 ...

你看下我回复的意思。
你要实现这个很简单啊,设个字典,{'机械特性':'11111','微水测试':'22222'},然后按钮事件时,先获取combobox的currentText()(pyside2中是这个返回选项的文本),再去字典中找对应的值,setText不就好了

数据量大的,字典就换成读取excel内容,就可以了

你不是这个意思么?
3$7%_Y0FF1DOM_P`3%W{OPT.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-8-28 10:55:33 | 显示全部楼层
你要显示的是什么内容,如果是combobox选项内容就很简单了,如果是和选项内容关联的,那就做个excel,读取后,用
  1. self.ui.comboBox_1.currentIndexChanged.connect(self.Find_in_excel_change)
复制代码
动作事件先关联了,可以设个全局变量
然后buttbox也有动作事件,获取上面关联的内容,再
  1. self.ui.plainTextEdit_3.setPlainText('内容')
复制代码
就可以了呗

也可以Button动作事件先获取了combobox当前内容,再去excel读取的数据中查找对应的内容,再setPlainText
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-28 10:55:44 | 显示全部楼层
能描述的具体点么,打印什么内容?下拉选项与按钮之间的联系是啥?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-28 11:31:11 | 显示全部楼层
疾风怪盗 发表于 2020-8-28 10:55
你要显示的是什么内容,如果是combobox选项内容就很简单了,如果是和选项内容关联的,那就做个excel,读取 ...

老哥  你在看看上面我的描述,我想通过下拉列表选择不同的内容,然后点击启动按钮后,可以打印不同的内容在textedit上,然后启动外部可执行程序。(这个不用在意)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-28 11:32:25 | 显示全部楼层
文明的读书人 发表于 2020-8-28 10:55
能描述的具体点么,打印什么内容?下拉选项与按钮之间的联系是啥?

看看我上面重新编辑的帖子
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-28 11:45:51 | 显示全部楼层    本楼为最佳答案   
差不多先生air 发表于 2020-8-28 11:31
老哥  你在看看上面我的描述,我想通过下拉列表选择不同的内容,然后点击启动按钮后,可以打印不同的内容 ...

你看下我回复的意思。
你要实现这个很简单啊,设个字典,{'机械特性':'11111','微水测试':'22222'},然后按钮事件时,先获取combobox的currentText()(pyside2中是这个返回选项的文本),再去字典中找对应的值,setText不就好了

数据量大的,字典就换成读取excel内容,就可以了

你不是这个意思么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-28 11:47:48 From FishC Mobile | 显示全部楼层
我有个帖子也是写类似功能的,你可以看下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-26 08:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表