Fix for popups not closing... CButton in general was broken!

This commit is contained in:
MikeTheWatchGuy 2018-11-11 14:42:44 -05:00
parent b72b98e87b
commit 51deed0ea4
1 changed files with 37 additions and 5 deletions

View File

@ -4,6 +4,7 @@ import types
import datetime import datetime
import textwrap import textwrap
import pickle import pickle
import base64
import calendar import calendar
from PySide2.QtWidgets import QApplication, QLabel, QWidget, QLineEdit, QComboBox, QFormLayout, QVBoxLayout, \ from PySide2.QtWidgets import QApplication, QLabel, QWidget, QLineEdit, QComboBox, QFormLayout, QVBoxLayout, \
QHBoxLayout, QListWidget, QDial, QTableWidget QHBoxLayout, QListWidget, QDial, QTableWidget
@ -11,7 +12,7 @@ from PySide2.QtWidgets import QSlider, QCheckBox, QRadioButton, QSpinBox, QPushB
from PySide2.QtWidgets import QSpacerItem, QFrame, QGroupBox, QTextBrowser, QPlainTextEdit, QButtonGroup, QFileDialog, QTableWidget from PySide2.QtWidgets import QSpacerItem, QFrame, QGroupBox, QTextBrowser, QPlainTextEdit, QButtonGroup, QFileDialog, QTableWidget
# from PySide2.QtWidgets import # from PySide2.QtWidgets import
from PySide2.QtWidgets import QTableWidgetItem, QGraphicsView, QGraphicsScene, QGraphicsItemGroup from PySide2.QtWidgets import QTableWidgetItem, QGraphicsView, QGraphicsScene, QGraphicsItemGroup
from PySide2.QtGui import QPainter, QPixmap, QPen, QColor, QBrush, QPainterPath, QFont from PySide2.QtGui import QPainter, QPixmap, QPen, QColor, QBrush, QPainterPath, QFont, QImage
from PySide2.QtCore import Qt,QProcess, QEvent from PySide2.QtCore import Qt,QProcess, QEvent
import PySide2.QtGui as QtGui import PySide2.QtGui as QtGui
import PySide2.QtCore as QtCore import PySide2.QtCore as QtCore
@ -1300,6 +1301,7 @@ class Button(Element):
self.ParentForm._Close() self.ParentForm._Close()
if self.ParentForm.CurrentlyRunningMainloop: if self.ParentForm.CurrentlyRunningMainloop:
self.ParentForm.QTApplication.exit() # Exit the mainloop self.ParentForm.QTApplication.exit() # Exit the mainloop
self.ParentForm.QTWindow.close()
if self.ParentForm.NonBlocking: if self.ParentForm.NonBlocking:
# TODO DESTROY WIN # TODO DESTROY WIN
_my_windows.Decrement() _my_windows.Decrement()
@ -1315,7 +1317,7 @@ class Button(Element):
self.ParentForm.QTApplication.exit() self.ParentForm.QTApplication.exit()
elif self.BType == BUTTON_TYPE_CLOSES_WIN_ONLY: # special kind of button that does not exit main loop elif self.BType == BUTTON_TYPE_CLOSES_WIN_ONLY: # special kind of button that does not exit main loop
self.ParentForm._Close() self.ParentForm._Close()
# if self.ParentForm.NonBlocking: self.ParentForm.QTWindow.close()
if self.ParentForm.CurrentlyRunningMainloop: # if this window is running the mainloop, kick out if self.ParentForm.CurrentlyRunningMainloop: # if this window is running the mainloop, kick out
self.ParentForm.QTApplication.exit() self.ParentForm.QTApplication.exit()
_my_windows.Decrement() _my_windows.Decrement()
@ -1447,7 +1449,15 @@ class Image(Element):
if filename is not None: if filename is not None:
pass pass
elif data is not None: elif data is not None:
pass ba = QtCore.QByteArray.fromBase64(data)
image = QImage()
image.loadFromData(ba)
pixmap = QPixmap()
pixmap.fromImage(image)
w = image.width()
h = image.height()
self.QT_QLabel.setGeometry(QtCore.QRect(0, 0, w, h))
self.QT_QLabel.setPixmap(pixmap)
else: else:
return return
@ -4068,7 +4078,28 @@ def PackFormIntoFrame(window, containing_frame, toplevel_win):
qt_row_layout.addWidget(element.QT_TextBrowser) qt_row_layout.addWidget(element.QT_TextBrowser)
# ------------------------- IMAGE element ------------------------- # # ------------------------- IMAGE element ------------------------- #
elif element_type == ELEM_TYPE_IMAGE: elif element_type == ELEM_TYPE_IMAGE:
pass if element.Filename:
qlabel = QLabel()
qlabel.setText('')
w = QtGui.QPixmap(element.Filename).width()
h = QtGui.QPixmap(element.Filename).height()
qlabel.setGeometry(QtCore.QRect(0, 0, w, h))
qlabel.setPixmap(QtGui.QPixmap(element.Filename))
elif element.Data:
qlabel = QLabel()
qlabel.setText('')
ba = QtCore.QByteArray.fromBase64(element.Data)
image = QImage()
image.loadFromData(ba)
pixmap = QPixmap()
pixmap.fromImage(image)
w = image.width()
h = image.height()
qlabel.setGeometry(QtCore.QRect(0, 0, w, h))
qlabel.setPixmap(pixmap)
element.QT_QLabel = qlabel
qt_row_layout.addWidget(element.QT_QLabel)
# ------------------------- Canvas element ------------------------- # # ------------------------- Canvas element ------------------------- #
elif element_type == ELEM_TYPE_CANVAS: elif element_type == ELEM_TYPE_CANVAS:
width, height = element_size width, height = element_size
@ -5840,13 +5871,14 @@ def PopupGetFile(message, default_path='', default_extension='', save_as=False,
layout = [[Text(message, auto_size_text=True, text_color=text_color, background_color=background_color)], layout = [[Text(message, auto_size_text=True, text_color=text_color, background_color=background_color)],
[InputText(default_text=default_path, size=size), browse_button], [InputText(default_text=default_path, size=size), browse_button],
[CloseButton('Ok', size=(60, 20), bind_return_key=True), CloseButton('Cancel', size=(60, 20))]] [CButton('Ok', size=(60, 20), bind_return_key=True), CButton('Cancel', size=(60, 20))]]
window = Window(title=message, icon=icon, auto_size_text=True, button_color=button_color, font=font, window = Window(title=message, icon=icon, auto_size_text=True, button_color=button_color, font=font,
background_color=background_color, background_color=background_color,
no_titlebar=no_titlebar, grab_anywhere=grab_anywhere, keep_on_top=keep_on_top, location=location) no_titlebar=no_titlebar, grab_anywhere=grab_anywhere, keep_on_top=keep_on_top, location=location)
(button, input_values) = window.Layout(layout).Read() (button, input_values) = window.Layout(layout).Read()
# window.Close()
if button != 'Ok': if button != 'Ok':
return None return None
else: else: