Найти - Пользователи
Полная версия: При нажатии одной кнопки - отжать другие
Начало » Python для новичков » При нажатии одной кнопки - отжать другие
1
BCnuHy
Есть несколько Checkable кнопок. Требуется, чтобы при нажатии на одну кнопку, если вторая находится в состоянии “нажата” - она становилась “отжатой” и срабатывала её функция(в данном случае функции у обеих кнопок - передача текущего времени в консоль)
 import pandas as pd
import time
from PyQt5 import uic, QtCore, QtGui, QtWidgets, QtTest
#
class PySide2:
    pass
#
class Ui_MainWindow(object):
        # Функции нажатий на кнопку:
        # 1:
    def bt_1_push(self):
        qtime = time.time()
        qtime = str(qtime)
        print(qtime)
        # 2:
    def bt_2push(self):
        qtime = time.time()
        qtime = str(qtime)
        print(qtime)
#Создание главного окна:
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1200, 800) #1200, 800
        MainWindow.setToolTipDuration(-5)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
#
        #Создание кнопок:
#
        #Перерыв:
        self.bt_1 = QtWidgets.QPushButton(self.centralwidget)
        self.bt_1.setGeometry(QtCore.QRect(180, 120, 180, 70))
        font = QtGui.QFont()
        font.setPointSize(12)
        font.setBold(False)
        font.setWeight(50)
        self.bt_1.setFont(font)
        self.bt_1.setAutoFillBackground(False)
        self.bt_1.setCheckable(True)
        self.bt_1.setObjectName("bt_1")
#
        #В работу:
        self.bt_2 = QtWidgets.QPushButton(self.centralwidget)
        self.bt_2.setGeometry(QtCore.QRect(0, 40, 180, 70))
        font = QtGui.QFont()
        font.setPointSize(12)
        font.setBold(False)
        font.setWeight(50)
        self.bt_2.setFont(font)
        self.bt_2.setAutoFillBackground(False)
        self.bt_2.setCheckable(True)
        self.bt_2.setObjectName("bt_2")
#
        MainWindow.setCentralWidget(self.centralwidget)
#
        self.retranslateUi(MainWindow)
#Функции нажатия кнопок:
        #1:
        self.bt_1.pressed.connect(self.bt_1_push)
        self.bt_1.pressed.connect(self.bt_v_2.pressed) #вот здесь попытался соединить нажатие одной кнопки
 #с нажатием на другую. Программа работает и функции кнопок выполняются, но состояния кнопок не
 #меняется. То есть "отжатыми" они не становятся)
        #2:
        self.bt_2.pressed.connect(self.bt_2_push)
        self.bt_2.pressed.connect(self.bt_v_1.pressed)
py.user.next
Вообще, код, который ты меняешь, надо не менять, а подключать со стороны к своему коду (через наследование или агрегацию). А уже потом свой код можно менять. И вот в этом своём коде ты делаешь слот, который управляет несколькими чекбоксами сразу. А сигнал одного чекбокса подключается к этому слоту, в котором всё правильно и переключается в итоге. И необязательно делать один слот для всех чекбоксов, можно и для каждого чекбокса сделать один индивидуальный слот. Просто надо будет настроить их все одинаково.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB