Как перемножить отдельные radioButtons?
Нужно чтобы отдельно умножались и первые и вторые столбцы RadioButtons, например первый результат записывается в textBrowser а второй в textBrowser_2 для дальнейших вычислений.
Каждая строка кнопок находится в отдельном buttonGroup.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(742, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.radioButton = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton.setGeometry(QtCore.QRect(90, 160, 82, 17))
self.radioButton.setObjectName("radioButton")
self.buttonGroup = QtWidgets.QButtonGroup(MainWindow)
self.buttonGroup.setObjectName("buttonGroup")
self.buttonGroup.addButton(self.radioButton)
self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_2.setGeometry(QtCore.QRect(190, 160, 82, 17))
self.radioButton_2.setObjectName("radioButton_2")
self.buttonGroup.addButton(self.radioButton_2)
self.radioButton_3 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_3.setGeometry(QtCore.QRect(280, 160, 82, 17))
self.radioButton_3.setObjectName("radioButton_3")
self.buttonGroup.addButton(self.radioButton_3)
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(320, 370, 75, 23))
self.pushButton.setObjectName("pushButton")
self.radioButton_4 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_4.setGeometry(QtCore.QRect(90, 190, 82, 17))
self.radioButton_4.setObjectName("radioButton_4")
self.buttonGroup_2 = QtWidgets.QButtonGroup(MainWindow)
self.buttonGroup_2.setObjectName("buttonGroup_2")
self.buttonGroup_2.addButton(self.radioButton_4)
self.radioButton_5 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_5.setGeometry(QtCore.QRect(190, 190, 82, 17))
self.radioButton_5.setObjectName("radioButton_5")
self.buttonGroup_2.addButton(self.radioButton_5)
self.radioButton_6 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_6.setGeometry(QtCore.QRect(280, 190, 82, 17))
self.radioButton_6.setObjectName("radioButton_6")
self.buttonGroup_2.addButton(self.radioButton_6)
self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser.setGeometry(QtCore.QRect(270, 310, 81, 31))
self.textBrowser.setObjectName("textBrowser")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(30, 130, 151, 16))
self.label.setObjectName("label")
self.radioButton_7 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_7.setGeometry(QtCore.QRect(430, 160, 82, 17))
self.radioButton_7.setObjectName("radioButton_7")
self.buttonGroup_3 = QtWidgets.QButtonGroup(MainWindow)
self.buttonGroup_3.setObjectName("buttonGroup_3")
self.buttonGroup_3.addButton(self.radioButton_7)
self.radioButton_8 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_8.setGeometry(QtCore.QRect(530, 190, 82, 17))
self.radioButton_8.setObjectName("radioButton_8")
self.buttonGroup_4 = QtWidgets.QButtonGroup(MainWindow)
self.buttonGroup_4.setObjectName("buttonGroup_4")
self.buttonGroup_4.addButton(self.radioButton_8)
self.radioButton_9 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_9.setGeometry(QtCore.QRect(530, 160, 82, 17))
self.radioButton_9.setObjectName("radioButton_9")
self.buttonGroup_3.addButton(self.radioButton_9)
self.radioButton_10 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_10.setGeometry(QtCore.QRect(620, 190, 82, 17))
self.radioButton_10.setObjectName("radioButton_10")
self.buttonGroup_4.addButton(self.radioButton_10)
self.radioButton_11 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_11.setGeometry(QtCore.QRect(620, 160, 82, 17))
self.radioButton_11.setObjectName("radioButton_11")
self.buttonGroup_3.addButton(self.radioButton_11)
self.radioButton_12 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_12.setGeometry(QtCore.QRect(430, 190, 82, 17))
self.radioButton_12.setObjectName("radioButton_12")
self.buttonGroup_4.addButton(self.radioButton_12)
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(410, 110, 151, 16))
self.label_2.setObjectName("label_2")
self.textBrowser_2 = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser_2.setGeometry(QtCore.QRect(390, 310, 81, 31))
self.textBrowser_2.setObjectName("textBrowser_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(220, 320, 47, 13))
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(360, 320, 47, 13))
self.label_4.setObjectName("label_4")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(480, 320, 47, 13))
self.label_5.setObjectName("label_5")
self.textBrowser_3 = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser_3.setGeometry(QtCore.QRect(500, 300, 141, 41))
self.textBrowser_3.setObjectName("textBrowser_3")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 742, 21))
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)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.radioButton.setText(_translate("MainWindow", "1"))
self.radioButton_2.setText(_translate("MainWindow", "2"))
self.radioButton_3.setText(_translate("MainWindow", "3"))
self.pushButton.setText(_translate("MainWindow", "Результат"))
self.radioButton_4.setText(_translate("MainWindow", "4"))
self.radioButton_5.setText(_translate("MainWindow", "5"))
self.radioButton_6.setText(_translate("MainWindow", "6"))
self.label.setText(_translate("MainWindow", "Коэффициент 1"))
self.radioButton_7.setText(_translate("MainWindow", "1"))
self.radioButton_8.setText(_translate("MainWindow", "5"))
self.radioButton_9.setText(_translate("MainWindow", "2"))
self.radioButton_10.setText(_translate("MainWindow", "6"))
self.radioButton_11.setText(_translate("MainWindow", "3"))
self.radioButton_12.setText(_translate("MainWindow", "4"))
self.label_2.setText(_translate("MainWindow", "Коэффициент 2"))
self.label_3.setText(_translate("MainWindow", "20 +"))
self.label_4.setText(_translate("MainWindow", "+"))
self.label_5.setText(_translate("MainWindow", "="))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(742, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.radioButton = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton.setGeometry(QtCore.QRect(90, 160, 82, 17))
self.radioButton.setObjectName("radioButton")
self.buttonGroup = QtWidgets.QButtonGroup(MainWindow)
self.buttonGroup.setObjectName("buttonGroup")
self.buttonGroup.addButton(self.radioButton)
self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_2.setGeometry(QtCore.QRect(190, 160, 82, 17))
self.radioButton_2.setObjectName("radioButton_2")
self.buttonGroup.addButton(self.radioButton_2)
self.radioButton_3 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_3.setGeometry(QtCore.QRect(280, 160, 82, 17))
self.radioButton_3.setObjectName("radioButton_3")
self.buttonGroup.addButton(self.radioButton_3)
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(320, 370, 75, 23))
self.pushButton.setObjectName("pushButton")
self.radioButton_4 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_4.setGeometry(QtCore.QRect(90, 190, 82, 17))
self.radioButton_4.setObjectName("radioButton_4")
self.buttonGroup_2 = QtWidgets.QButtonGroup(MainWindow)
self.buttonGroup_2.setObjectName("buttonGroup_2")
self.buttonGroup_2.addButton(self.radioButton_4)
self.radioButton_5 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_5.setGeometry(QtCore.QRect(190, 190, 82, 17))
self.radioButton_5.setObjectName("radioButton_5")
self.buttonGroup_2.addButton(self.radioButton_5)
self.radioButton_6 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_6.setGeometry(QtCore.QRect(280, 190, 82, 17))
self.radioButton_6.setObjectName("radioButton_6")
self.buttonGroup_2.addButton(self.radioButton_6)
self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser.setGeometry(QtCore.QRect(270, 315, 81, 25))
self.textBrowser.setObjectName("textBrowser")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(30, 130, 151, 16))
self.label.setObjectName("label")
self.radioButton_7 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_7.setGeometry(QtCore.QRect(430, 160, 82, 17))
self.radioButton_7.setObjectName("radioButton_7")
self.buttonGroup_3 = QtWidgets.QButtonGroup(MainWindow)
self.buttonGroup_3.setObjectName("buttonGroup_3")
self.buttonGroup_3.addButton(self.radioButton_7)
self.radioButton_8 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_8.setGeometry(QtCore.QRect(530, 190, 82, 17))
self.radioButton_8.setObjectName("radioButton_8")
self.buttonGroup_4 = QtWidgets.QButtonGroup(MainWindow)
self.buttonGroup_4.setObjectName("buttonGroup_4")
self.buttonGroup_4.addButton(self.radioButton_8)
self.radioButton_9 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_9.setGeometry(QtCore.QRect(530, 160, 82, 17))
self.radioButton_9.setObjectName("radioButton_9")
self.buttonGroup_3.addButton(self.radioButton_9)
self.radioButton_10 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_10.setGeometry(QtCore.QRect(620, 190, 82, 17))
self.radioButton_10.setObjectName("radioButton_10")
self.buttonGroup_4.addButton(self.radioButton_10)
self.radioButton_11 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_11.setGeometry(QtCore.QRect(620, 160, 82, 17))
self.radioButton_11.setObjectName("radioButton_11")
self.buttonGroup_3.addButton(self.radioButton_11)
self.radioButton_12 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_12.setGeometry(QtCore.QRect(430, 190, 82, 17))
self.radioButton_12.setObjectName("radioButton_12")
self.buttonGroup_4.addButton(self.radioButton_12)
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(410, 110, 151, 16))
self.label_2.setObjectName("label_2")
self.textBrowser_2 = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser_2.setGeometry(QtCore.QRect(390, 315, 81, 25))
self.textBrowser_2.setObjectName("textBrowser_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(220, 320, 47, 13))
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(360, 320, 47, 13))
self.label_4.setObjectName("label_4")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(480, 320, 47, 13))
self.label_5.setObjectName("label_5")
self.textBrowser_3 = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser_3.setGeometry(QtCore.QRect(500, 305, 141, 41))
self.textBrowser_3.setStyleSheet('font-size: 25px;')
self.textBrowser_3.setObjectName("textBrowser_3")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 742, 21))
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)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.radioButton.setText(_translate("MainWindow", "1"))
self.radioButton_2.setText(_translate("MainWindow", "2"))
self.radioButton_3.setText(_translate("MainWindow", "3"))
self.pushButton.setText(_translate("MainWindow", "Результат"))
self.radioButton_4.setText(_translate("MainWindow", "4"))
self.radioButton_5.setText(_translate("MainWindow", "5"))
self.radioButton_6.setText(_translate("MainWindow", "6"))
self.label.setText(_translate("MainWindow", "Коэффициент 1"))
self.radioButton_7.setText(_translate("MainWindow", "1"))
self.radioButton_8.setText(_translate("MainWindow", "5"))
self.radioButton_9.setText(_translate("MainWindow", "2"))
self.radioButton_10.setText(_translate("MainWindow", "6"))
self.radioButton_11.setText(_translate("MainWindow", "3"))
self.radioButton_12.setText(_translate("MainWindow", "4"))
self.label_2.setText(_translate("MainWindow", "Коэффициент 2"))
self.label_3.setText(_translate("MainWindow", "20 +"))
self.label_4.setText(_translate("MainWindow", "+"))
self.label_5.setText(_translate("MainWindow", "="))
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
bg_1 = self.buttonGroup.buttons()
bg_2 = self.buttonGroup_2.buttons()
bg_3 = self.buttonGroup_3.buttons()
bg_4 = self.buttonGroup_4.buttons()
self.list_bg = (bg_1, bg_2, bg_3, bg_4)
self.pushButton.clicked.connect(self.func_result)
def func_result(self):
_dict_active_rb = []
for i, rbs in enumerate(self.list_bg):
fl = False
for rb in rbs:
if rb.isChecked():
fl = True
_dict_active_rb.append(rb.text())
continue
if not fl:
msg = QtWidgets.QMessageBox.information(
self, 'Внимание',
'Выберите все необходимые rb для расчетов.')
return
print(f'{_dict_active_rb}')
rez_1 = int(_dict_active_rb[0]) * int(_dict_active_rb[1])
self.textBrowser.setPlainText(f'{rez_1}')
rez_2 = int(_dict_active_rb[2]) * int(_dict_active_rb[3])
self.textBrowser_2.setPlainText(f'{rez_2}')
self.textBrowser_3.setPlainText(f'{20 + rez_1 + rez_2}')
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec())

