差不多先生air 发表于 2020-8-28 10:46:08

关于pyqt5中的combobox与buttbox结合起来的运用

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

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

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


class Ui_Form(object):
    def setupUi(self, Form):
      Form.setObjectName("Form")
      Form.resize(623, 508)
      self.pushButton = QtWidgets.QPushButton(Form)
      self.pushButton.setGeometry(QtCore.QRect(410, 380, 93, 28))
      self.pushButton.setObjectName("pushButton")
      self.label = QtWidgets.QLabel(Form)
      self.label.setGeometry(QtCore.QRect(30, 380, 71, 21))
      self.label.setObjectName("label")
      self.comboBox = QtWidgets.QComboBox(Form)
      self.comboBox.setGeometry(QtCore.QRect(116, 380, 261, 22))
      self.comboBox.setObjectName("comboBox")
      self.comboBox.addItem("")
      self.comboBox.addItem("")
      
      self.textEdit = QtWidgets.QTextEdit(Form)
      self.textEdit.setGeometry(QtCore.QRect(30, 30, 471, 331))
      self.textEdit.setObjectName("textEdit")

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

    def retranslateUi(self, Form):
      _translate = QtCore.QCoreApplication.translate
      Form.setWindowTitle(_translate("Form", "Form"))
      self.pushButton.setText(_translate("Form", "软件启动"))
      self.label.setText(_translate("Form", "软件选择:"))
      self.comboBox.setItemText(0, _translate("Form", "机械特性"))
      self.comboBox.setItemText(1, _translate("Form", "微水测试"))


主程序代码
import sys
import subprocess
from PyQt5 import QtWidgets
from PyQT_Form import Ui_Form


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


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



界面图:

疾风怪盗 发表于 2020-8-28 10:55:33

你要显示的是什么内容,如果是combobox选项内容就很简单了,如果是和选项内容关联的,那就做个excel,读取后,用self.ui.comboBox_1.currentIndexChanged.connect(self.Find_in_excel_change)动作事件先关联了,可以设个全局变量
然后buttbox也有动作事件,获取上面关联的内容,再self.ui.plainTextEdit_3.setPlainText('内容')就可以了呗

也可以Button动作事件先获取了combobox当前内容,再去excel读取的数据中查找对应的内容,再setPlainText

文明的读书人 发表于 2020-8-28 10:55:44

能描述的具体点么,打印什么内容?下拉选项与按钮之间的联系是啥?

差不多先生air 发表于 2020-8-28 11:31:11

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

老哥你在看看上面我的描述,我想通过下拉列表选择不同的内容,然后点击启动按钮后,可以打印不同的内容在textedit上,然后启动外部可执行程序。(这个不用在意)

差不多先生air 发表于 2020-8-28 11:32:25

文明的读书人 发表于 2020-8-28 10:55
能描述的具体点么,打印什么内容?下拉选项与按钮之间的联系是啥?

看看我上面重新编辑的帖子

疾风怪盗 发表于 2020-8-28 11:45:51

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

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

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

你不是这个意思么?

hrp 发表于 2020-8-28 11:47:48

我有个帖子也是写类似功能的,你可以看下
页: [1]
查看完整版本: 关于pyqt5中的combobox与buttbox结合起来的运用