Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 24, 2023 23:09:26

BCnuHy
Зарегистрирован: 2022-11-30
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

кнопки - переключатели

В программе есть несколько зажимаемых кнопок setCheckable(True).
как сделать так, чтобы при нажатии одной - отжималась другая?
Попробовал через

 self.bt_v_rabotu.pressed.connect(self.bt_pereriv.setEnabled(False))
, но ничего не выходит
 import time
import tkinter
import pandas as pd
from PyQt5 import uic, QtCore, QtGui, QtWidgets, QtTest
class PySide2:
    pass
class Ui_MainWindow(object):
#Создание главного окна:
    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_pereriv = QtWidgets.QPushButton(self.centralwidget)
        self.bt_pereriv.setGeometry(QtCore.QRect(180, 120, 180, 70))
        font = QtGui.QFont()
        font.setPointSize(12)
        font.setBold(False)
        font.setWeight(50)
        self.bt_pereriv.setFont(font)
        self.bt_pereriv.setAutoFillBackground(False)
        self.bt_pereriv.setCheckable(True)
        self.bt_pereriv.setObjectName("bt_pereriv")
        #В работу:
        self.bt_v_rabotu = QtWidgets.QPushButton(self.centralwidget)
        self.bt_v_rabotu.setGeometry(QtCore.QRect(0, 40, 180, 70))
        font = QtGui.QFont()
        font.setPointSize(12)
        font.setBold(False)
        font.setWeight(50)
        self.bt_v_rabotu.setFont(font)
        self.bt_v_rabotu.setAutoFillBackground(False)
        self.bt_v_rabotu.setCheckable(True)
        self.bt_v_rabotu.setObjectName("bt_v_rabotu")
#Поля:
        #Задача
        self.label_zadacha_name = QtWidgets.QLabel(self.centralwidget)
        self.label_zadacha_name.setGeometry(QtCore.QRect(60, 0, 151, 16))
        self.label_zadacha_name.setObjectName("label_zadacha_name")
  MainWindow.setCentralWidget(self.centralwidget)
    #Нажатие кнопок:
       
        self.retranslateUi(MainWindow)
        #Перерыв:
        self.bt_pereriv.pressed.connect(self.label_zadacha_name.clear)  # type: ignore
        self.bt_pereriv.pressed.connect(lambda: self.label_zadacha_name.setText("Перерыв"))
        #В работу:
        self.bt_v_rabotu.pressed.connect(self.label_zadacha_name.clear)  # type: ignore
        self.bt_v_rabotu.pressed.connect(lambda: self.label_zadacha_name.setText("В работе")
        self.bt_v_rabotu.pressed.connect(self.bt_pereriv.setEnabled(False)) # <---- вот здесь

Отредактировано BCnuHy (Янв. 24, 2023 23:12:38)

Офлайн

#2 Янв. 26, 2023 15:31:03

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2749
Репутация: +  184  -
Профиль   Отправить e-mail  

кнопки - переключатели

См. вложение



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Прикреплённый файлы:
attachment booton.ui (2,5 KБ)

Офлайн

#3 Янв. 27, 2023 07:30:57

BCnuHy
Зарегистрирован: 2022-11-30
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

кнопки - переключатели

Rodegast
См. вложение
Спасибо огромное) в создании кнопок просто не хватало этих строк:
 self.bt_pereriv.setAutoExclusive(True)
 self.bt_v_rabotu.setAutoExclusive(True)

Отредактировано BCnuHy (Янв. 27, 2023 07:31:17)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version