Модераторы: pythonwin, Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PyQt4-Модальные окна, Работа с оконами-скрыть и показать 
:(
    Опции темы
OzMod
Дата 8.7.2014, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 21.1.2014

Репутация: 1
Всего: 1



у меня Python 3.2.5...
Помогите как мне сделать , что бы когда у меня появляеться модальное окно что бы главное окно скрывалось а когда я закрываю модальное окно то главное окно опять появлялось...
Скрыть то у меня получаеться ( window.hide() а вот как показать после закрытия модального окна тут проблемка ) 
вот скрипт примера
Код

from PyQt4 import QtGui, QtCore
import sys

def Show_Modal_Window(): # Задаём функцию вывода окна в центре
    ModalWindow_center = QtGui.QWidget(window,QtCore.Qt.Window) # Создание модульного окна и привязка к главному окну
    ModalWindow_center.setWindowTitle('Модальное окно') # Текст в заголовке окна
    sizeX, sizeY = (483,480) # Задаём переменные размера окна
    posX, posY = (WinPos.width() - sizeX) // 2 ,(WinPos.height() - sizeY) // 2 # Высчитываем середину экрана
    ModalWindow_center.setGeometry(posX,posY,sizeX,sizeY) # setFixedSize(x,y- Фиксированный размер окна) resize Размер окна или setGeometry(x,y,Ширина,Высота)
    ModalWindow_center.setWindowFlags(QtCore.Qt.Window | QtCore.Qt.MSWindowsFixedSizeDialogHint) # Тип окна (Widget,Window,Dialog,Sheet,Drawer,Popup,Tool,ToolTip,SplashScreen,Desktop,SubWindow
    ModalWindow_center.setWindowModality(QtCore.Qt.WindowModal) # В этом методе указываются флаги конфигурации: QtCore.Qt.WindowModal -> окно является Модальным и NonModal -> окно не является Модальным
    ModalWindow_center.setAttribute(QtCore.Qt.WA_DeleteOnClose, True) # Удаляем объект окна при при закрытии окна
    #-----
    ModalWindow_center.setToolTip('Окно - Всплывающая подсказка') # Задаём всплывающую подсказку для окна
    ModalWindow_center.show() # Показать окно

app = QtGui.QApplication(sys.argv) # Принимает список параметров переданных командной строке
window = QtGui.QWidget() # Создание окна
window.setWindowTitle('Заголовок окна') # Текст в заголовке окна
WinPos = QtGui.QApplication.desktop() # Определение размера экрана
sizeX, sizeY = (300, 70) # Задаём переменные размера окна
posX, posY = (WinPos.width() - sizeX) // 2 ,(WinPos.height() - sizeY) // 2 # Высчитываем середину экрана
window.setGeometry(posX,posY,sizeX,sizeY) # setFixedSize(x,y- Фиксированный размер окна) resize Размер окна или setGeometry(x,y,Ширина,Высота)
window.setWindowFlags(QtCore.Qt.Dialog | QtCore.Qt.MSWindowsFixedSizeDialogHint) # Тип окна (Widget,Window,Dialog,Sheet,Drawer,Popup,Tool,ToolTip,SplashScreen,Desktop,SubWindow
#--Кнопки--
BtnWindow = QtGui.QPushButton('&Модальное окно')
#-----
vbox = QtGui.QVBoxLayout() # Задаём метод растагивания виджетов в нутри окна
vbox.addWidget(BtnWindow) # Привязываем кнопку к методу QVBoxLayout()
window.setLayout(vbox) # Привязка окна к методу QVBoxLayout()
#-----
QtCore.QObject.connect(BtnWindow, QtCore.SIGNAL("clicked()"), Show_Modal_Window) # Метод обработки нажатия
#----
window.show() # Показываем окно
sys.exit(app.exec_())

PM MAIL   Вверх
OzMod
Дата 11.7.2014, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 21.1.2014

Репутация: 1
Всего: 1



Всё сам до думался


[code=python]
from PyQt4 import QtGui, QtCore
import sys

def Show_Modal_Window(): # Задаём функцию вывода окна в центре
    ModalWindow_center = QtGui.QDialog(window,QtCore.Qt.Window) # Создание модульного окна и привязка к главному окну
    ModalWindow_center.setWindowTitle('Модальное окно') # Текст в заголовке окна
    ModalWindow_center.setWindowFlags(QtCore.Qt.Window | QtCore.Qt.MSWindowsFixedSizeDialogHint) # Тип окна (Widget,Window,Dialog,Sheet,Drawer,Popup,Tool,ToolTip,SplashScreen,Desktop,SubWindow
    ModalWindow_center.exec_() # Показать окно

def HideWindow():
    window.hide()
    Show_Modal_Window()
    window.show()

def RootwWindow():
    global window, app
    #app = QtGui.QApplication(sys.argv) # Принимает список параметров переданных командной строке
    window = QtGui.QWidget() # Создание окна
    window.setWindowTitle('Заголовок окна') # Текст в заголовке окна
    WinPos = QtGui.QApplication.desktop() # Определение размера экрана
    sizeX, sizeY = (300, 70) # Задаём переменные размера окна
    posX, posY = (WinPos.width() - sizeX) // 2 ,(WinPos.height() - sizeY) // 2 # Высчитываем середину экрана
    window.setGeometry(posX,posY,sizeX,sizeY) # setFixedSize(x,y- Фиксированный размер окна) resize Размер окна или setGeometry(x,y,Ширина,Высота)
    window.setWindowFlags(QtCore.Qt.Dialog | QtCore.Qt.MSWindowsFixedSizeDialogHint) # Тип окна (Widget,Window,Dialog,Sheet,Drawer,Popup,Tool,ToolTip,SplashScreen,Desktop,SubWindow
#--Кнопки--
    BtnWindow = QtGui.QPushButton('&Модальное окно')
#-----
    vbox = QtGui.QVBoxLayout() # Задаём метод растагивания виджетов в нутри окна
    vbox.addWidget(BtnWindow) # Привязываем кнопку к методу QVBoxLayout()
    window.setLayout(vbox) # Привязка окна к методу QVBoxLayout()
#-----
    QtCore.QObject.connect(BtnWindow, QtCore.SIGNAL("clicked()"), HideWindow) # Метод обработки нажатия

if __name__ == "__main__":
    global window, app
    app = QtGui.QApplication(sys.argv)
    RootwWindow()
    window.show() # Показываем окно
    sys.exit(app.exec_())
Код



Это сообщение отредактировал(а) OzMod - 11.7.2014, 09:44
PM MAIL   Вверх
Google
  Дата 23.10.2019, 00:29 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Разработка GUI | Следующая тема »


 




[ Время генерации скрипта: 0.0938 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.