Форум сайта python.su
У меня, наконец-то, кончилась запарка, и я спешу к данному обсуждению.
RodegastНа самом деле, меня интересует оба варианта. Есть случаи, когда надо передать данные из дочернего окна и не закрывать его.
> А у топикстартера оно не должно закрываться после нажатия кнопки “Жми”
Должно. Он просто это не сделал.
Rodegastну-ну…
что надо учится пользоваться дизайнером, а не пытаться “писать руками”
Офлайн
Kyrymимхо усложняешь задачу
На самом деле, меня интересует оба варианта. Есть случаи, когда надо передать данные из дочернего окна и не закрывать его.
from PyQt4.Qt import * def pressed(): label.setText(edit.text()) if __name__ == "__main__": app = QApplication([]) label = QLabel() label.resize(300,50) edit = QLineEdit() edit.returnPressed.connect(pressed) label.move(0,0) edit.move(0,100) label.show() edit.show() app.exec_()
Офлайн
RodegastЯ это и имел в виду, немного не правильно выразился.
Нет. Он создаёт просто окно и пытается использовать его как диалог.
KyrymЯ тоже по началу подумал, что меня интересуют оба варианта, но потом подумал, где мне может понадобиться из дочернего передавать в родителя информацию (сигнал) без закрытия первого и не смог себе представить такой задачи. Кто нибудь может сказать, где такое действие необходимо? чисто для примера.
меня интересует оба варианта.
Офлайн
MrViktorКонечно!
Кто нибудь может сказать, где такое действие необходимо?
Отредактировано Kyrym (Март 10, 2017 07:47:08)
Офлайн
vic57. Что означает данный код?
Что я понял:
- этот код вставляется в родительский файл;
- в поле вводим текст, жмём enter, сигнал запускает функцию pressed;
- функция вставляет текст в label.
А где связь с дочерним окном?
Офлайн
PEHDOMПервый и третий варианты не работают.
…
Офлайн
Kyrymзачем? у тебя нет ни наследования, ни общего лэйаута, только обмен данными между виджетами.
А где связь с дочерним окном
from PyQt4.Qt import * import sys class W(QWidget): def __init__(self,parent=None): QWidget.__init__(self) self.edit = QLineEdit() self.btn = QPushButton('Push') layout = QVBoxLayout(self) layout.addWidget(self.edit) layout.addWidget(self.btn) def btnClicked(): if w2.isVisible(): w2.hide() elif w2.isHidden(): w2.show() def editPressed(): w1.edit.setText(w2.edit.text()) def app_quit(): sys.exit() if __name__ == "__main__": app = QApplication([]) app.lastWindowClosed.connect(app_quit) w1 = W() w1.edit.setReadOnly(True) w2 = W() w2.btn.setEnabled(False) w1.btn.clicked.connect(btnClicked) w2.edit.returnPressed.connect(editPressed) w1.move(100,100) w1.show() app.exec_()
Отредактировано vic57 (Март 10, 2017 09:36:12)
Офлайн
KyrymИзвиняюсь, но я даже не представляю таких конверторов и калькуляторов. К примеру есть некая программа с главным окном (родитель), из нее вызываем конвертер (дочернее). В дочернем мы что-то конвертируем и возвращаем родителю, так? Но зачем оставлять открытым дочернее окно? Да и можно сделать наподобие QDateEdit, типа всплывающего калькулятора, как в 1С.
Это всякого рода расчётные программы (калькуляторы, конверторы).
Офлайн
MrViktor
где мне может понадобиться из дочернего передавать в родителя информацию (сигнал) без закрытия первого и не смог себе представить такой задачи. Кто нибудь может сказать, где такое действие необходимо? чисто для примера.
Kyrymпроверте внимательно может неправильно чтото скопировали , у меня все варианты работали.
Первый и третий варианты не работают.
[code python][/code]
Отредактировано PEHDOM (Март 10, 2017 10:01:00)
Офлайн
PEHDOMЯ думаю, что тут другое поведение, а именно рисунок - это данные (модель), холст и прочее это представления и делегаты. Дальше думаю не стоит продолжать, все таки немного не по теме.
Банально откройте в фотошопе любой рисунок, вызовите Изображение - корекция - яркость/контрасность
Офлайн