Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
1 / 1 / 2
Регистрация: 03.04.2013
Сообщений: 48

При выводе окна формы не срабатывает активация кнопки

08.05.2018, 10:08. Показов 1744. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Не получается сделать активной кнопку при загрузке основного окна формы если выполняется определенное условие. Само условие отрабатывается но кнопка все равно не активна.

Сама форма:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# -*- coding: utf-8 -*-
 
# Form implementation generated from reading ui file 'test_form.ui'
#
# Created by: PyQt5 UI code generator 5.5.1
#
# WARNING! All changes made in this file will be lost!
 
from PyQt5 import QtCore, QtGui, QtWidgets
 
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(192, 236)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setEnabled(False)
        self.pushButton.setGeometry(QtCore.QRect(60, 100, 88, 28))
        self.pushButton.setObjectName("pushButton")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(60, 40, 111, 51))
        self.label.setObjectName("label")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(60, 150, 88, 28))
        self.pushButton_2.setObjectName("pushButton_2")
        MainWindow.setCentralWidget(self.centralwidget)
 
        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
 
    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "PushButton"))
        self.label.setText(_translate("MainWindow", "TextLabel"))
        self.pushButton_2.setText(_translate("MainWindow", "Ok"))
Сама программа
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/python3.5
# -*- coding: utf-8 -*-
 
import sys  # sys нужен для передачи argv в QApplication
 
from PyQt5 import QtWidgets
from slot import May_Slots
 
import gui, os
 
 
class MainWindow(May_Slots):
    def __init__(self, form):
        self.setupUi(form)
        self.connect_slots()
 
    def connect_slots(self):
        self.pushButton_2.clicked.connect(self.set_But2)
        return None
 
 
class ExampleApp(QtWidgets.QMainWindow, gui.Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
 
def main():
    app = QtWidgets.QApplication(sys.argv)
    window = ExampleApp()
    ui = MainWindow(window)
    window.show()
 
    k = 100
    if k == 100:   #проверка условия на активацию кнопки
        print('test')
        window.pushButton.setEnabled(True)  #<===== не срабатывает!!!!!!!!!
 
    sys.exit(app.exec_())
 
 
if __name__ == '__main__':
    main()
Вынесенные отдельно обработчики кнопок
Python
1
2
3
4
5
6
7
8
9
#!/usr/bin/python3.5
# -*- coding: utf-8 -*-
 
from gui import Ui_MainWindow
 
class May_Slots(Ui_MainWindow):
 
    def set_But2(self):
        self.pushButton.setEnabled(True)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.05.2018, 10:08
Ответы с готовыми решениями:

Активация растягивания окна при наведении на край кнопки
Здравствуйте, подскажите, пожалуйста, есть ли более человеческий способ реализации данной идеи: имеется кнопка Close в TitleBar, стиль окна...

Активация окна при нажатии левой кнопки мыши
Учу python по книге. Предоставили код для простой игры &quot;Прыг-скок&quot;, где мяч отскакивает от платформы. В первом упражнении требуется...

Активация кнопки при попытке редактирования формы
Прошу помочь, сам новичок в языке java script, буду благодарен за помощь:) есть форма, на ней 4 элемента textarea и один элемент select и...

2
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
08.05.2018, 10:23
Как-то вы тут наворотили много чего, вот так сработает, но нужно упростить

Python
1
2
3
4
5
6
7
8
9
10
11
12
def main():
    app = QtWidgets.QApplication(sys.argv)
    window = ExampleApp()
    ui = MainWindow(window)
    window.show()
 
    k = 100
    if k == 100:   #проверка условия на активацию кнопки
        print('test')
        ui.pushButton.setEnabled(True)  #<===== не срабатывает!!!!!!!!!
 
    sys.exit(app.exec_())
1
1 / 1 / 2
Регистрация: 03.04.2013
Сообщений: 48
08.05.2018, 10:49  [ТС]
Спасибо.
Это не я, с хабра вроде такой пример стянул чтоб коннекторы вынесены были отдельно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.05.2018, 10:49
Помогаю со студенческими работами здесь

При открытии дочернего окна, отображаются формы и кнопки с основного окна; как исправить?
при открытии дочернего окна, отображаются формы и кнопки с основного окна, как можно исправить? ...

Активация кнопки окна регистрации
Добрый. Есть окно с формой регистрации пользователя, которая состоит из ряда TextBox'ов, для каждого из которых я предусмотрел валидацию: ...

Активация кнопки, верхняя панель окна
Учусь работать с делфи. Понемногу разбираюсь. Собрал небольшую программку.. Теперь вопрос: как сделать так, чтобы кнопка Close Или...

Активация окна формы
Уважаемые знатоки! Подскажите как активировать окно формы после завершения исполнения по нажатию кнопки. Дело в том, что при открытии...

Открытие нового окна формы при нажатии кнопки
Подскажите пожалуйста, как реализовать открытие нового окна формы, при нажатии кнопки на предыдущей форме?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 31.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru