Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2019, 10:42   #1
pigeon890
Пользователь
 
Регистрация: 24.01.2019
Сообщений: 19
Вопрос Gui PyQt5 - как сделать часть интерфейса появляющейся в MainWindow после нажатия кнопки

Привет сообществу!
Ломаю мозг и зубы об графику для консольного приложения с использованием PyQt5, не могу понять элементарную вещь. Просветите, как сделать часть интерфейса появляющейся в MainWindow после нажатия кнопки. Если можно, лучше объяснить, а не скидывать готовое решение.
Заранее спасибо.

Hi folks
PyQt5 is really a stumbling block for me. I'm trying to make one part of interface appear in MainWindow as user clicks a button, but anything goes wrong. Could you help me? It would be better to explain how to do it than just sending ready-to-use code, if it's possible.
Thanks beforehand.
Вялые питоны: лень, смекалка, пофигизм!
pigeon890 вне форума Ответить с цитированием
Старый 29.01.2019, 10:46   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

setVisible
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 29.01.2019, 15:13   #3
pigeon890
Пользователь
 
Регистрация: 24.01.2019
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
setVisible
Couldn't you explain this a little further, please? It seems that I still do not understand how to do it.
Код:
import os
from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget, QPushButton, QMainWindow, QLineEdit
from PyQt5.QtGui import QIcon
class main_window (QMainWindow):
    
    def __init__(self):
        
        
        super().__init__()
        self.initUI ()
        self.line_edit ()
        
        
    def initUI (self):
        
        
        scr_width = int(QDesktopWidget().availableGeometry().width())
        scr_height = int(QDesktopWidget().availableGeometry().height())
        self.setGeometry (0,0, scr_width, scr_height)
        self.setWindowTitle ('LibList')
        self.setWindowIcon(QIcon('icon.png'))
        
        
        button_give = QPushButton ('Выдать классу', self)
        button_give.resize (400, 200)
        button_give.move (scr_width - 420, 20)
        button_give.clicked.connect(self.button_clicked)
        
        
        button_search = QPushButton ('Найти файл', self)
        button_search.resize (400, 200)
        button_search.move (scr_width - 420, 240)
        button_search.clicked.connect(self.button_clicked)
        
        
        button_redact = QPushButton ('Отредактировать файл', self)
        button_redact.resize (400, 200)
        button_redact.move (scr_width - 420, 460)
        button_redact.clicked.connect(self.button_clicked)
        
        
        button_end = QPushButton ('Закончить работу', self)
        button_end.resize (400, 200)
        button_end.move (scr_width - 420, 680)
        button_end.clicked.connect(self.button_clicked)
        
        self.show ()
        
    def line_edit (self):
        
        line_edit_class_num = QLineEdit (self)
        line_edit_class_num.setPlaceholderText ('Введите цифру класса*')
        line_edit_class_num.move (20, 20)
        line_edit_class_num.resize (380, 40)
        
        
        line_edit_class_let = QLineEdit (self)
        line_edit_class_let.setPlaceholderText ('Введите букву класса*')
        line_edit_class_let.move (20, 80)
        line_edit_class_let.resize (380, 40)
        
        
        line_edit_class_pup = QLineEdit (self)
        line_edit_class_pup.setPlaceholderText ('Введите количество обучающихся в классе*')
        line_edit_class_pup.move (20, 140)
        line_edit_class_pup.resize (380, 40)
        
        
        line_edit_class_tut = QLineEdit (self)
        line_edit_class_tut.setPlaceholderText ('Введите имя классного руководителя*')
        line_edit_class_tut.move (20, 200)
        line_edit_class_tut.resize (380, 40)
        
        
        line_edit_class_prof = QLineEdit (self)
        line_edit_class_prof.setPlaceholderText ('Введите профиль/профили класса')
        line_edit_class_prof.move (20, 260)
        line_edit_class_prof.resize (380, 40)
        
        self.hide ()
        
        
    def button_clicked (self):
        
        sender = self.sender()
        self.statusBar().showMessage(sender.text() + ' was pressed')
        if sender.text() == 'Выдать классу':
            self.statusBar().showMessage('1 was pressed')
            self.line_edit_class_num.setVisible (isVisible)
            self.line_edit_class_let.setVisible (isVisible)
            self.line_edit_class_pup.setVisible (isVisible)
            self.line_edit_class_tut.setVisible (isVisible)
            self.line_edit_class_prof.setVisible (isVisible)
        elif sender.text() == 'Найти файл':
            self.statusBar().showMessage('2 was pressed')
        else:
            if sender.text() == 'Отредактировать файл':
                self.statusBar().showMessage('3 was pressed')
            else:
                self.statusBar().showMessage('4 was pressed')


app = QApplication(sys.argv)
mw = main_window ()
sys.exit(app.exec_())
Вялые питоны: лень, смекалка, пофигизм!
pigeon890 вне форума Ответить с цитированием
Старый 29.01.2019, 15:33   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

It depends on what you are trying to achieve.
It's just a function that shows or hides an element, so call it with True or False when appropriate.
You can call it inside your initUI() to hide something initially.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 30.01.2019, 10:15   #5
pigeon890
Пользователь
 
Регистрация: 24.01.2019
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
call it with True or False
Thank you a lot. I was calling it with true without setting true = True, acted a fool.
Вялые питоны: лень, смекалка, пофигизм!
pigeon890 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выпадающий календарь после нажатия кнопки lloudb HTML и CSS 1 08.01.2018 14:16
Как сделать,чтобы после нажатия на кнопку открывалась ранее сделанная форма? Мой повелитель C# (си шарп) 2 04.07.2016 23:53
AJAX. Перестают отрабатывать нажатия на кнопки, после динамической перезагрузки этих кнопок. alextrof94 JavaScript, Ajax 4 03.09.2013 04:39
действия после нажатия кнопки, select ubun JavaScript, Ajax 4 04.01.2012 00:45
Как сделать, чтобы после нажатия кнопки выводилось нужное мне окно? phantasmagoria Помощь студентам 5 28.04.2011 23:43