
><
06.04.2017
14:24:43
Дратути , начал делать оконное приложение с несколькими формами через pyQt5 и уже несколько часов пытаюсь найти в гугле ответ, но ответа не нашел. так вот , я имею 2 *.py документа внутри которых прописан интерфейс форм . И при нажатии на кнопку 1 формы , должна открыться 2 форма. На c# это изи делалось , а тут не могу найти правильную функцию show и ее правописание.

Проксимов
06.04.2017
14:25:27

><
06.04.2017
14:26:10
Зачем тебе 2 py файла?
ну в Qt disigner делал формы по отдельности и потом перегнал из ui в py и получилось несколько файлов

b0g3r
06.04.2017
14:37:35
Насколько я помню - нужно для начала отнаследоваться от перегнанных в .py классов

Google

Sergey
06.04.2017
14:37:38
а нельзя проимпортировать и вызвать напрямую?

b0g3r
06.04.2017
14:37:39
И в них уже определить логику
сделать connect какой-нибудь функции к какой-нибудь кнопке

><
06.04.2017
14:38:16

b0g3r
06.04.2017
14:38:27
в функции вызвать вторую форму

Sergey
06.04.2017
14:38:47
import 2,py
Class 1 {
2().form;
}
ой, да

b0g3r
06.04.2017
14:38:57
Что здесь происходит вообще

Sergey
06.04.2017
14:39:00
в функции.

b0g3r
06.04.2017
14:39:08
Это какой язык?)

53r63rn4r
06.04.2017
14:39:32
Какие же джангисты ленивые

Sergey
06.04.2017
14:39:39
import 2.py
class 1 {
def a():
2().blabla
}

Google

Проксимов
06.04.2017
14:40:33
Что ито
Нет не похож

b0g3r
06.04.2017
14:40:46

Sergey
06.04.2017
14:40:47
Почему?

b0g3r
06.04.2017
14:40:54
Вот вообще
имя состоящее из цифры - невалидное

Проксимов
06.04.2017
14:41:07
Смешать скобочки и форматирование
Гениально мать его

b0g3r
06.04.2017
14:41:17
при импорте .py не указывается

Sergey
06.04.2017
14:41:19
а, фак)
Да, переглючило
ща поправлю

b0g3r
06.04.2017
14:41:32
ну и скобочки и отступы)

Sergey
06.04.2017
14:41:51
тут как-то тяжко с отступами

Проксимов
06.04.2017
14:42:25
Очень сложно

Sergey
06.04.2017
14:42:33
import 2
class 1:
def a(self):
2().blabla

Проксимов
06.04.2017
14:43:00
Сказали же что цифра-не валидное имя переменной

Sergey
06.04.2017
14:43:00
http://s5.pikabu.ru/post_img/big/2015/04/23/8/1429794583_343353562.png
Это 1 и 2 файл
можно вместо 1 и 2 -> first second

Google

Проксимов
06.04.2017
14:43:38
Ууу

53r63rn4r
06.04.2017
14:43:53
Он на пальцах просто рассказал, не придирайся(я тоже так подумал сначала, но потом перечитал выше сообщения)

Sergey
06.04.2017
14:45:29
ну а как еще?
есть два файла: 1 и 2. В первом надо вызвать функцию второго.
импортируем второй
import 2
В классе первом
class 1:
создаем фукнцию, где будет вызываться функция (ы) из второго файла
def a(self):
2().blabla

b0g3r
06.04.2017
14:45:48
а зачем вообще класс здесь?)

Sergey
06.04.2017
14:45:49
Или мне надо валидный код написать, используя его названия которые он не указал?

b0g3r
06.04.2017
14:46:15
сергей, проблема здесь не в вызове функции из другого файла
а проблема вообще такая довольно объемная - pyqt5, ui-файлы, pyuic генерация

53r63rn4r
06.04.2017
14:46:55
:D Помню ебался с pyqt

Sergey
06.04.2017
14:47:35
Так я сделал предположение. Разве нельзя вызвать напрямую? Наверняка есть конструктор, который все собирает?

Маришка
06.04.2017
14:47:57

b0g3r
06.04.2017
14:48:06

Sergey
06.04.2017
14:48:10
Ну да да, слегка подзабыл все

b0g3r
06.04.2017
14:48:37
в решении абстрактной проблемы это ещё могло как-то направить на путь истинный, но в данной ситуации это навредит
потому что решение в данном случае вообще не тривиальное

Nick
06.04.2017
14:49:01
тут у меня задачка в учебнике питона, но ответ который я получаю при написании в компе отличается от книжного:
avaliable_toppings = ['mushrooms', 'olives', 'green peppers', 'extra cheese']
requested_toppings = ['mushrooms', 'french fries' 'extra cheese']
for requested_topping in requested_toppings:
if requested_topping in avaliable_toppings:
print("adding " + requested_topping + ".")
else:
print("sorry")
ответ:
adding mushrooms.
sorry
А должен быть:
adding mushrooms.
sorry
adding extra cheese
в чем проблем?

Google

b0g3r
06.04.2017
14:50:37
у тебя получается
'french fries' 'extra cheese'
строки следующие друг за другом складываются

Nick
06.04.2017
14:51:05
да, глупо. Спасибо
еще один вопрос есть

b0g3r
06.04.2017
14:51:21
и получается
['mushrooms', 'french friesextra cheese']
нужно сначала перегнать с помощью pyuic5 файлы .ui в файлы .py
Внутри будет авто-сгенерированный код, который представляет из себя каркас модельки
Нужно создать файл реальной формы, куда импортировать каркас и от него отнаследоваться:
from forms import Ui_MainWindow
class MainWindow(Ui_MainWindow):
# и определить метод init
def __init__(self):
# внутри которого вызвать инит каркаса
super().init()
self.window = QMainWindow()
# и установить каркас на окно:
self.setupUi(self.window)
точно также нужно поступить и со второй формой - импортировать каркас и отнаследоваться от него
ещё должен быть файл, который будет создавать QApplication, и вызывать реальную форму
а логику обработки кнопки прописать в функциях внутри реальных форм и сделать connect на нужные кнопки

><
06.04.2017
14:55:17
thx , сейчас буду траить

Проксимов
06.04.2017
14:58:32

b0g3r
06.04.2017
14:59:00
поэтому мне и не очень нравится предложение импортить что-то куда-то и что-то вызывать

Qwizzy
06.04.2017
15:43:15
Привет. Подскажите, плз, можно ли через argparse провалидировать регуляркой значение параметра?
И, соответственно, падать с ошибкой если валидация не проходит

Igor
06.04.2017
15:43:50
там нет такой валидации вроде
можно валидировать уже в своем коде
получая содержимое аргумента и выкидывая эксепшн какой-нибудь
или завершая программу а-ля sys.exit(1)

Google

Qwizzy
06.04.2017
15:45:45
т.е что-то типа
if not re.match(pattern, args.param):
print("error")
?

Igor
06.04.2017
15:45:56
ага

Qwizzy
06.04.2017
15:46:05
Хм, окей. Спасибо

Cyber
06.04.2017
17:24:27
всем ку, подскажите где находится путь в папке на виды ошибок sentax,name и т.д
syntax*
норм шутник, подправлю. все что в терминалах выводятся ошибки, где сами их папки находятся для изменений кода
самих ошибок, например SyntzxError подменить на другое описание и т.д.

sairusvirus
06.04.2017
17:29:50
а через try
через исключения

Cyber
06.04.2017
17:30:54
можно пожалуйста подробней?

sairusvirus
06.04.2017
17:32:05
try: выполняем код какой нибудь

Tony
06.04.2017
17:32:23
Эксепт
Угадал?

sairusvirus
06.04.2017
17:32:33
если код с ошибкой то except

Tony
06.04.2017
17:32:40
Да!
Ееее

sairusvirus
06.04.2017
17:32:49
и в except пишешь хуйню какую хочешь

Spacehug
06.04.2017
17:33:07
Ему нужно знать где лежит код со строками "Тырыпыр on line 10:", насколько я понял

sairusvirus
06.04.2017
17:33:08
типа print('Ошибка жестокая')
Эта группа больше не существует