简体   繁体   English

Qt5 QComboBox focusOutEvent

[英]Qt5 QComboBox focusOutEvent

I have built a GUI and among other things I am using a QComboBox (drop-down menu) with three entries.我已经构建了一个 GUI,除此之外,我正在使用一个 QComboBox(下拉菜单),其中包含三个条目。 I want to enable/disable some other boxes and labels in the GUI, depending on which entry is selected in the QComboBox.我想启用/禁用 GUI 中的其他一些框和标签,具体取决于在 QComboBox 中选择了哪个条目。 I have managed to do that so far.到目前为止,我已经设法做到了。

My problem is that all changes are taken into effect only when I press the "Run" button, which executes the application.我的问题是,只有当我按下执行应用程序的“运行”按钮时,所有更改才会生效。

What I want to do is the action of enabling/disabling the relevant boxes will happen once I have selected the entry from the drop-down menu and not waiting until I press the "Run" button.我想要做的是启用/禁用相关框的操作,一旦我从下拉菜单中选择了条目,而不是等到我按下“运行”按钮。

Is there a way to do something like that?有没有办法做这样的事情? Can I use the focusOutEvent to check when the user has clicked anywhere else than the drop-menu and apply the changes in the other boxes/labels?我可以使用 focusOutEvent 来检查用户何时单击了下拉菜单以外的任何位置并在其他框/标签中应用更改?

I put below the class "controlling" my GUI, but I dont post the actual class generating the GUI because it is too lengthy.我把“控制”我的 GUI 的类放在下面,但我没有发布生成 GUI 的实际类,因为它太长了。 If you think it is relevant I can post it.如果你认为它是相关的,我可以发布它。 I post instead a picture of the GUI.我发布了一张 GUI 的图片。 GUI The boxes and labels in the black circles should be disabled when the "Measuring Mode" drop-box is set to "Cable loss" or "Amplifier". GUI当“Measuring Mode”下拉框设置为“Cable loss”或“Amplifier”时,黑色圆圈中的框和标签应该被禁用。 When it is set to "Mixer" they should be enabled.当它设置为“混合器”时,它们应该被启用。 I enable/disable the boxes and labels with an if statement inside the user_input function, in the Window class.我在 Window 类的 user_input 函数中使用 if 语句启用/禁用框和标签。 The wanted drop-down menu is represeted by the "mode_select" variable.想要的下拉菜单由“mode_select”变量表示。

Edit : I think my explanation is not very intuitive without the actual gui code so I post it below.编辑:如果没有实际的 gui 代码,我认为我的解释不是很直观,所以我把它贴在下面。

from PyQt5 import QtWidgets, QtCore
from converter import convert_ui
import sys
import os
import time

class Window(QtWidgets.QMainWindow):
    def __init__(self):
        from transfer_function_gui import Ui_MainWindow  
        QtWidgets.QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self) # setup GUI
        self.ui.run_button_PM_tab.clicked.connect(self.user_input) 
        
    def user_input(self):
        test_mode = self.ui.mode_select.currentText() # type: str
        if test_mode == "Mixer":
            self.ui.LO_Power_input.setEnabled(True)
            self.ui.LO_Power_lbl.setEnabled(True)
            self.ui.LO_freq_input.setEnabled(True)
            self.ui.LO_freq_lbl.setEnabled(True)
        else:
            self.ui.LO_Power_input.setEnabled(False)
            self.ui.LO_Power_lbl.setEnabled(False)
            self.ui.LO_freq_input.setEnabled(False)
            self.ui.LO_freq_lbl.setEnabled(False)


###############################      Main      ###############################
if __name__=='__main__':
    convert_ui('transfer_function_gui.ui')
    app = QtWidgets.QApplication(sys.argv)
    app.setStyle('Fusion')
    window = Window()
    window.show()

    sys.exit(app.exec_())

GUI generation (from Qt designer) GUI 生成(来自 Qt 设计器)

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.setEnabled(True)
        MainWindow.resize(770, 613)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.progressBar = QtWidgets.QProgressBar(self.centralwidget)
        self.progressBar.setGeometry(QtCore.QRect(10, 520, 630, 30))
        self.progressBar.setProperty("value", 0)
        self.progressBar.setObjectName("progressBar")
        self.Dev_address_frame = QtWidgets.QGroupBox(self.centralwidget)
        self.Dev_address_frame.setGeometry(QtCore.QRect(10, 10, 371, 140))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Dev_address_frame.sizePolicy().hasHeightForWidth())
        self.Dev_address_frame.setSizePolicy(sizePolicy)
        self.Dev_address_frame.setMinimumSize(QtCore.QSize(0, 100))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.Dev_address_frame.setFont(font)
        self.Dev_address_frame.setFlat(False)
        self.Dev_address_frame.setCheckable(False)
        self.Dev_address_frame.setObjectName("Dev_address_frame")
        self.SigGen_label = QtWidgets.QLabel(self.Dev_address_frame)
        self.SigGen_label.setGeometry(QtCore.QRect(20, 30, 100, 20))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.SigGen_label.sizePolicy().hasHeightForWidth())
        self.SigGen_label.setSizePolicy(sizePolicy)
        self.SigGen_label.setObjectName("SigGen_label")
        self.PM_label = QtWidgets.QLabel(self.Dev_address_frame)
        self.PM_label.setGeometry(QtCore.QRect(20, 70, 100, 20))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.PM_label.sizePolicy().hasHeightForWidth())
        self.PM_label.setSizePolicy(sizePolicy)
        self.PM_label.setObjectName("PM_label")
        self.SigGen_addr_input = QtWidgets.QLineEdit(self.Dev_address_frame)
        self.SigGen_addr_input.setGeometry(QtCore.QRect(120, 30, 180, 20))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.SigGen_addr_input.sizePolicy().hasHeightForWidth())
        self.SigGen_addr_input.setSizePolicy(sizePolicy)
        self.SigGen_addr_input.setObjectName("SigGen_addr_input")
        self.PM_addr_input = QtWidgets.QLineEdit(self.Dev_address_frame)
        self.PM_addr_input.setGeometry(QtCore.QRect(120, 70, 180, 20))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.PM_addr_input.sizePolicy().hasHeightForWidth())
        self.PM_addr_input.setSizePolicy(sizePolicy)
        self.PM_addr_input.setObjectName("PM_addr_input")
        self.PM_cnct_checkBox = QtWidgets.QCheckBox(self.Dev_address_frame)
        self.PM_cnct_checkBox.setEnabled(False)
        self.PM_cnct_checkBox.setGeometry(QtCore.QRect(240, 105, 16, 20))
        self.PM_cnct_checkBox.setText("")
        self.PM_cnct_checkBox.setObjectName("PM_cnct_checkBox")
        self.PM_cnct_lbl = QtWidgets.QLabel(self.Dev_address_frame)
        self.PM_cnct_lbl.setEnabled(False)
        self.PM_cnct_lbl.setGeometry(QtCore.QRect(20, 105, 210, 20))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.PM_cnct_lbl.sizePolicy().hasHeightForWidth())
        self.PM_cnct_lbl.setSizePolicy(sizePolicy)
        self.PM_cnct_lbl.setObjectName("PM_cnct_lbl")
        self.Freq_setup_frame = QtWidgets.QGroupBox(self.centralwidget)
        self.Freq_setup_frame.setGeometry(QtCore.QRect(10, 200, 370, 181))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.Freq_setup_frame.setFont(font)
        self.Freq_setup_frame.setFlat(False)
        self.Freq_setup_frame.setCheckable(False)
        self.Freq_setup_frame.setObjectName("Freq_setup_frame")
        self.Start_freq_lbl = QtWidgets.QLabel(self.Freq_setup_frame)
        self.Start_freq_lbl.setEnabled(True)
        self.Start_freq_lbl.setGeometry(QtCore.QRect(20, 30, 100, 20))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Start_freq_lbl.sizePolicy().hasHeightForWidth())
        self.Start_freq_lbl.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(8)
        self.Start_freq_lbl.setFont(font)
        self.Start_freq_lbl.setMidLineWidth(0)
        self.Start_freq_lbl.setText("Start freq.          ")
        self.Start_freq_lbl.setObjectName("Start_freq_lbl")
        self.Stop_freq_lbl = QtWidgets.QLabel(self.Freq_setup_frame)
        self.Stop_freq_lbl.setGeometry(QtCore.QRect(20, 70, 100, 20))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.Stop_freq_lbl.setFont(font)
        self.Stop_freq_lbl.setObjectName("Stop_freq_lbl")
        self.Step_freq_lbl = QtWidgets.QLabel(self.Freq_setup_frame)
        self.Step_freq_lbl.setGeometry(QtCore.QRect(20, 110, 100, 20))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.Step_freq_lbl.setFont(font)
        self.Step_freq_lbl.setObjectName("Step_freq_lbl")
        self.StopFreq_input = QtWidgets.QLineEdit(self.Freq_setup_frame)
        self.StopFreq_input.setGeometry(QtCore.QRect(120, 70, 180, 20))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.StopFreq_input.setFont(font)
        self.StopFreq_input.setText("")
        self.StopFreq_input.setObjectName("StopFreq_input")
        self.Start_freq_input = QtWidgets.QLineEdit(self.Freq_setup_frame)
        self.Start_freq_input.setGeometry(QtCore.QRect(120, 30, 180, 20))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Start_freq_input.sizePolicy().hasHeightForWidth())
        self.Start_freq_input.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(8)
        self.Start_freq_input.setFont(font)
        self.Start_freq_input.setText("")
        self.Start_freq_input.setObjectName("Start_freq_input")
        self.StepFreq_input = QtWidgets.QLineEdit(self.Freq_setup_frame)
        self.StepFreq_input.setGeometry(QtCore.QRect(120, 110, 180, 20))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.StepFreq_input.setFont(font)
        self.StepFreq_input.setText("")
        self.StepFreq_input.setObjectName("StepFreq_input")
        self.freq_units_select = QtWidgets.QComboBox(self.Freq_setup_frame)
        self.freq_units_select.setGeometry(QtCore.QRect(310, 29, 51, 141))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.freq_units_select.sizePolicy().hasHeightForWidth())
        self.freq_units_select.setSizePolicy(sizePolicy)
        self.freq_units_select.setMinimumSize(QtCore.QSize(0, 70))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.freq_units_select.setFont(font)
        self.freq_units_select.setInsertPolicy(QtWidgets.QComboBox.InsertAtBottom)
        self.freq_units_select.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContentsOnFirstShow)
        self.freq_units_select.setFrame(True)
        self.freq_units_select.setObjectName("freq_units_select")
        self.freq_units_select.addItem("")
        self.freq_units_select.addItem("")
        self.freq_units_select.addItem("")
        self.LO_freq_lbl = QtWidgets.QLabel(self.Freq_setup_frame)
        self.LO_freq_lbl.setGeometry(QtCore.QRect(20, 150, 100, 20))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.LO_freq_lbl.setFont(font)
        self.LO_freq_lbl.setObjectName("LO_freq_lbl")
        self.LO_freq_input = QtWidgets.QLineEdit(self.Freq_setup_frame)
        self.LO_freq_input.setGeometry(QtCore.QRect(120, 150, 180, 20))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.LO_freq_input.setFont(font)
        self.LO_freq_input.setText("")
        self.LO_freq_input.setObjectName("LO_freq_input")
        self.Power_setup_frame = QtWidgets.QGroupBox(self.centralwidget)
        self.Power_setup_frame.setGeometry(QtCore.QRect(10, 390, 370, 111))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.Power_setup_frame.setFont(font)
        self.Power_setup_frame.setFlat(False)
        self.Power_setup_frame.setCheckable(False)
        self.Power_setup_frame.setObjectName("Power_setup_frame")
        self.DUT_input_lbl = QtWidgets.QLabel(self.Power_setup_frame)
        self.DUT_input_lbl.setGeometry(QtCore.QRect(20, 30, 100, 20))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.DUT_input_lbl.setFont(font)
        self.DUT_input_lbl.setObjectName("DUT_input_lbl")
        self.LO_Power_lbl = QtWidgets.QLabel(self.Power_setup_frame)
        self.LO_Power_lbl.setGeometry(QtCore.QRect(20, 70, 100, 20))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.LO_Power_lbl.setFont(font)
        self.LO_Power_lbl.setObjectName("LO_Power_lbl")
        self.DUT_Input_power_input = QtWidgets.QLineEdit(self.Power_setup_frame)
        self.DUT_Input_power_input.setGeometry(QtCore.QRect(120, 30, 180, 20))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.DUT_Input_power_input.setFont(font)
        self.DUT_Input_power_input.setText("")
        self.DUT_Input_power_input.setObjectName("DUT_Input_power_input")
        self.LO_Power_input = QtWidgets.QLineEdit(self.Power_setup_frame)
        self.LO_Power_input.setGeometry(QtCore.QRect(120, 70, 180, 20))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.LO_Power_input.setFont(font)
        self.LO_Power_input.setText("")
        self.LO_Power_input.setObjectName("LO_Power_input")
        self.LO_dBm = QtWidgets.QLabel(self.Power_setup_frame)
        self.LO_dBm.setGeometry(QtCore.QRect(320, 70, 20, 20))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.LO_dBm.setFont(font)
        self.LO_dBm.setObjectName("LO_dBm")
        self.DUT_dBm = QtWidgets.QLabel(self.Power_setup_frame)
        self.DUT_dBm.setGeometry(QtCore.QRect(320, 30, 20, 20))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.DUT_dBm.setFont(font)
        self.DUT_dBm.setObjectName("DUT_dBm")
        self.mode_label = QtWidgets.QLabel(self.centralwidget)
        self.mode_label.setGeometry(QtCore.QRect(30, 165, 100, 20))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.mode_label.sizePolicy().hasHeightForWidth())
        self.mode_label.setSizePolicy(sizePolicy)
        self.mode_label.setBaseSize(QtCore.QSize(0, 0))
        self.mode_label.setObjectName("mode_label")
        self.mode_select = QtWidgets.QComboBox(self.centralwidget)
        self.mode_select.setGeometry(QtCore.QRect(130, 165, 180, 20))
        self.mode_select.setObjectName("mode_select")
        self.mode_select.addItem("")
        self.mode_select.addItem("")
        self.mode_select.addItem("")
        self.run_button_PM_tab = QtWidgets.QPushButton(self.centralwidget)
        self.run_button_PM_tab.setEnabled(True)
        self.run_button_PM_tab.setGeometry(QtCore.QRect(650, 520, 100, 30))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.run_button_PM_tab.sizePolicy().hasHeightForWidth())
        self.run_button_PM_tab.setSizePolicy(sizePolicy)
        self.run_button_PM_tab.setMinimumSize(QtCore.QSize(0, 0))
        self.run_button_PM_tab.setLayoutDirection(QtCore.Qt.LeftToRight)
        self.run_button_PM_tab.setObjectName("run_button_PM_tab")
        self.S21_table = QtWidgets.QTableWidget(self.centralwidget)
        self.S21_table.setGeometry(QtCore.QRect(400, 10, 360, 490))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
        sizePolicy.setHorizontalStretch(33)
        sizePolicy.setVerticalStretch(25)
        sizePolicy.setHeightForWidth(self.S21_table.sizePolicy().hasHeightForWidth())
        self.S21_table.setSizePolicy(sizePolicy)
        self.S21_table.setMinimumSize(QtCore.QSize(15, 35))
        self.S21_table.setSizeIncrement(QtCore.QSize(0, 0))
        self.S21_table.setBaseSize(QtCore.QSize(0, 0))
        self.S21_table.setObjectName("S21_table")
        self.S21_table.setColumnCount(2)
        self.S21_table.setRowCount(1)
        item = QtWidgets.QTableWidgetItem()
        self.S21_table.setVerticalHeaderItem(0, item)
        item = QtWidgets.QTableWidgetItem()
        item.setTextAlignment(QtCore.Qt.AlignCenter)
        self.S21_table.setHorizontalHeaderItem(0, item)
        item = QtWidgets.QTableWidgetItem()
        self.S21_table.setHorizontalHeaderItem(1, item)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 770, 21))
        self.menubar.setObjectName("menubar")
        self.menuFile = QtWidgets.QMenu(self.menubar)
        self.menuFile.setObjectName("menuFile")
        self.menuAbout = QtWidgets.QMenu(self.menubar)
        self.menuAbout.setObjectName("menuAbout")
        self.menuPreferences = QtWidgets.QMenu(self.menubar)
        self.menuPreferences.setObjectName("menuPreferences")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.actionSave_as = QtWidgets.QAction(MainWindow)
        self.actionSave_as.setObjectName("actionSave_as")
        self.actionExit = QtWidgets.QAction(MainWindow)
        self.actionExit.setObjectName("actionExit")
        self.menuFile.addAction(self.actionSave_as)
        self.menuFile.addAction(self.actionExit)
        self.menubar.addAction(self.menuFile.menuAction())
        self.menubar.addAction(self.menuPreferences.menuAction())
        self.menubar.addAction(self.menuAbout.menuAction())

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Transfer Function Calculator v0.5"))
        self.Dev_address_frame.setTitle(_translate("MainWindow", "Device addresses (GPIB, USB, TCPIP)"))
        self.SigGen_label.setText(_translate("MainWindow", "Signal Generator"))
        self.PM_label.setText(_translate("MainWindow", "Power Meter"))
        self.PM_cnct_lbl.setText(_translate("MainWindow", "If PM is connected to SigGen check the box"))
        self.Freq_setup_frame.setTitle(_translate("MainWindow", "Frequency setup"))
        self.Stop_freq_lbl.setText(_translate("MainWindow", "Stop freq."))
        self.Step_freq_lbl.setText(_translate("MainWindow", "Step freq."))
        self.freq_units_select.setCurrentText(_translate("MainWindow", "kHz"))
        self.freq_units_select.setItemText(0, _translate("MainWindow", "kHz"))
        self.freq_units_select.setItemText(1, _translate("MainWindow", "MHz"))
        self.freq_units_select.setItemText(2, _translate("MainWindow", "GHz"))
        self.LO_freq_lbl.setText(_translate("MainWindow", "LO freq."))
        self.Power_setup_frame.setTitle(_translate("MainWindow", "Power setup"))
        self.DUT_input_lbl.setText(_translate("MainWindow", "DUT Input power"))
        self.LO_Power_lbl.setText(_translate("MainWindow", "LO Power"))
        self.LO_dBm.setText(_translate("MainWindow", "dBm"))
        self.DUT_dBm.setText(_translate("MainWindow", "dBm"))
        self.mode_label.setText(_translate("MainWindow", "Measuring mode"))
        self.mode_select.setItemText(0, _translate("MainWindow", "Cable loss"))
        self.mode_select.setItemText(1, _translate("MainWindow", "Amplifier"))
        self.mode_select.setItemText(2, _translate("MainWindow", "Mixer"))
        self.run_button_PM_tab.setText(_translate("MainWindow", "Run"))
        item = self.S21_table.verticalHeaderItem(0)
        item.setText(_translate("MainWindow", "New Row"))
        item = self.S21_table.horizontalHeaderItem(0)
        item.setText(_translate("MainWindow", "New Column"))
        item = self.S21_table.horizontalHeaderItem(1)
        item.setText(_translate("MainWindow", "New Column"))
        self.menuFile.setTitle(_translate("MainWindow", "File"))
        self.menuAbout.setTitle(_translate("MainWindow", "About"))
        self.menuPreferences.setTitle(_translate("MainWindow", "Settings..."))
        self.actionSave_as.setText(_translate("MainWindow", "Save as..."))
        self.actionExit.setText(_translate("MainWindow", "Exit"))

QComboBox uses these signals here which you can connect using signals and slots. QComboBox 在此处使用这些信号,您可以使用信号和插槽进行连接。

在此处输入图像描述

I think the one you would want to use is either currentTextChanged or currentIndexChanged.我认为您想要使用的是 currentTextChanged 或 currentIndexChanged。 So you could do something like this in your init:所以你可以在你的初始化中做这样的事情:

class Window(QtWidgets.QMainWindow):
    def __init__(self):
        from transfer_function_gui import Ui_MainWindow  
        QtWidgets.QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self) # setup GUI
        self.ui.run_button_PM_tab.clicked.connect(self.user_input) 
        self.ui.freq_units_select.currentIndexChanged.connect(self.user_input)
        self.ui.mode_select.currentIndexChanged.connect(self.user_input)

This will connect the event of the QComboBox changing it's selected index to a method called self.user_input.这会将 QComboBox 更改其选定索引的事件连接到名为 self.user_input 的方法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM