Найти - Пользователи
Полная версия: Взаимоотношения диалоговых окон
Начало » GUI » Взаимоотношения диалоговых окон
1
g-kit
добрый день!

я что-то пропустил из работы диалоговых окон…

имеется главное окно приложения с несколькими таблицами с моделями. Из главного окна вызывается диалог №1, а из него еще один диалог №2, который должен кое-что спросить и кое-что отправить модели связанной с главным окном. Вопрос: может ли диалог №2 работать напрямую с главным окном минуя промежуточный диалог №1? Могу ли я parent"ом подсунуть диалогу №2 окружение главного окна?

Спасибо,
-вадим
4kpt_II
Чем пользуетесь?
g-kit
pyqt
4kpt_II
Это не ко мне…
Тут я не в теме
g-kit
Окна диалогов модальные - т.е. блокируют родительские окна, соответственно, я не могу обратиться к таблице “через голову” диалога №1…

Передать эти данные посредством скрытых полей (например QLineEdit) - нельзя т.к. нет скрытых полей в диалоге…

Прервать на время цикл диалога №1 и возобновить после? Или сохранять данные во временном файле (не очень хочется)…

Как в принципе решаются такие задачи независимо от платформы? Что-то никак не могу ответ…
vrabey
g-kit
Окна диалогов модальные - т.е. блокируют родительские окна, соответственно, я не могу обратиться к таблице “через голову” диалога №1
from PyQt4 import QtGui, QtCore
import os
import sys
class WIDGET(QtGui.QWidget):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.resize(300, 100)
        
        but = QtGui.QPushButton(self)
        but.clicked.connect(self.dialog1) 
        
    def dialog1(self):
        dial1 = QtGui.QDialog(self)
        dial1.resize(130, 30)
        dial1.setWindowTitle("dialog1") 
        but = QtGui.QPushButton(dial1)
        but.clicked.connect(self.dialog2)
        dial1.exec_()
    def dialog2(self):
        dial2 = QtGui.QDialog(self)
        dial2.resize(150, 50)
        dial2.setWindowTitle("Dialog2")
        but = QtGui.QPushButton(dial2)
        but.clicked.connect(self.act)
        dial2.exec_()
    def act(self):
        self.setStyleSheet('background-color: {0};'.format('#A1EBF8'))        
app = QtGui.QApplication(sys.argv)
main = WIDGET()
main.show()
sys.exit(app.exec_())
второе диалоговое окно обращается к основному или я не понял вопрос?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB