Fix resize events widgets

master3.3
Denis Spiridonov 13 years ago
parent 1ef6398dbd
commit 8d146d3247

@ -3,7 +3,7 @@
from PySide import QtGui, QtCore from PySide import QtGui, QtCore
from PySide.QtGui import QMessageBox from PySide.QtGui import QMessageBox
from DisplayMethod import DisplayMethod from DisplayMethod import DisplayMethod, DisplayMethodScroll
from mainframe import MainFrame from mainframe import MainFrame
from mainmenu import MainMenu from mainmenu import MainMenu
from helpwidget import HelpWgt from helpwidget import HelpWgt
@ -52,7 +52,6 @@ class MainWgt(QtGui.QMainWindow):
# верхнее правое # верхнее правое
self.main_frame = FrameConnection(self, self.ClientObj) self.main_frame = FrameConnection(self, self.ClientObj)
self.main_frame.resize(self.mainwidth,self.size_y - 100)
self.setCentralWidget(self.main_frame) self.setCentralWidget(self.main_frame)
@ -89,9 +88,7 @@ class MainWgt(QtGui.QMainWindow):
del (self.main_frame) del (self.main_frame)
except: except:
pass pass
self.main_frame = DisplayMethod(self, self.ClientObj) self.main_frame = DisplayMethodScroll(self, self.ClientObj)
self.main_frame.refresh(self.ClientObj.methods_list)
self.setCentralWidget(self.main_frame) self.setCentralWidget(self.main_frame)
@ -105,6 +102,7 @@ class MainWgt(QtGui.QMainWindow):
self.main_frame = ViewProc(self, self.ClientObj) self.main_frame = ViewProc(self, self.ClientObj)
self.setCentralWidget(self.main_frame) self.setCentralWidget(self.main_frame)
icon_visible(self, 'Display &Methods', True)
def view_session_info(self): def view_session_info(self):
self.SessionWgt = ViewSessionInfo(self, self.ClientObj.client) self.SessionWgt = ViewSessionInfo(self, self.ClientObj.client)

@ -26,6 +26,9 @@ class DisplayMethod(QtGui.QWidget):
self.groupbox_dict = {} self.groupbox_dict = {}
self.layout_dict = {} self.layout_dict = {}
# self.setStyleSheet("QWidget { background-color: #f2f2f2 }")
self.setStyleSheet("QWidget { background-color: #f0f0f0 }")
# transform a list into the dictionary {'group': [methods], ...} # transform a list into the dictionary {'group': [methods], ...}
guiMethods = {} guiMethods = {}
if type(results) == int: if type(results) == int:
@ -60,26 +63,44 @@ class DisplayMethod(QtGui.QWidget):
guiMethods[group][method_name + 1], \ guiMethods[group][method_name + 1], \
guiMethods[group][method_name + 2], \ guiMethods[group][method_name + 2], \
group, self) group, self)
Button.clicked.connect(self.onActivated)
self.button_list.append(Button)
self.layout_dict[group].addWidget(self.button_list[len(self.button_list) - 1])
for method_name in range (0, len(guiMethods[group]), 3):
Button = ButtonMenu(guiMethods[group][method_name],\
guiMethods[group][method_name + 1], \
guiMethods[group][method_name + 2], \
group, self)
Button.clicked.connect(self.onActivated) Button.clicked.connect(self.onActivated)
self.button_list.append(Button) self.button_list.append(Button)
self.layout_dict[group].addWidget(self.button_list[len(self.button_list) - 1]) self.layout_dict[group].addWidget(self.button_list[len(self.button_list) - 1])
self.layout_dict[group].setAlignment(QtCore.Qt.AlignLeft) self.layout_dict[group].setAlignment(QtCore.Qt.AlignLeft)
self.groupbox_dict[group].setLayout(self.layout_dict[group]) self.groupbox_dict[group].setLayout(self.layout_dict[group])
self.layout.addWidget(self.groupbox_dict[group]) self.layout.addWidget(self.groupbox_dict[group])
self.layout.setAlignment(QtCore.Qt.AlignTop) self.layout.setAlignment(QtCore.Qt.AlignTop)
self.setLayout(self.layout) self.setLayout(self.layout)
# self.setStyleSheet("QWidget { background-color: white }") self.resize(self.layout.sizeHint())
# print self.sizeHint()
# self.updateGeometry() # self.updateGeometry()
def refresh(self, results): def refresh(self):
self.ClientObj.MainWidget.results = results results = self.ClientObj.methods_list
self.initUI(results) self.initUI(results)
self.ClientObj.app.processEvents() self.ClientObj.app.processEvents()
def onActivated(self): def onActivated(self):
method_name = self.sender().objectName() method_name = self.sender().objectName()
step = 0 step = 0
@ -91,6 +112,52 @@ class DisplayMethod(QtGui.QWidget):
(int(self.ClientObj.sid), step) (int(self.ClientObj.sid), step)
self.ClientObj.MainWidget.main_frame_view(view, method_name) self.ClientObj.MainWidget.main_frame_view(view, method_name)
class DisplayMethodScroll (QtGui.QScrollArea):
def __init__(self, parent, ClientObj):
QtGui.QScrollArea.__init__(self, parent)
self.MainFrameWgt = DisplayMethod(self, ClientObj)
self.MainFrameWgt.refresh()
self.setWidget(self.MainFrameWgt)
# set resizable widget in ScrollArea
self.setWidgetResizable(True)
self.horizontalScrollBar().hide()
# def resizeEvent(self, resize_var):
# self.parent().set_wid (self.size().width())
#
# width_diff = 5 + self.verticalScrollBar().size().width() \
# if self.verticalScrollBar().isVisible() else 5
#
## import time
## time.sleep(5)
# for group in self.MainFrameWgt.groupbox_dict:
# print '\n\n'
# print self.MainFrameWgt.groupbox_dict[group].size()
# print self.MainFrameWgt.layout_dict[group].sizeHint()
# self.MainFrameWgt.groupbox_dict[group].resize \
# (self.MainFrameWgt.groupbox_dict[group].sizeHint())
#
# if self.size().width() > 30:
# if resize_var.size().height() > self.MainFrameWgt.sizeHint().height():
# print 11111111111, self.size()
#
## self.MainFrameWgt.resize(self.size().width()-width_diff, \
## self.size().height() - height_diff)
## self.MainFrameWgt.setFixedWidth(self.size().width()-width_diff)
# self.MainFrameWgt.setFixedHeight(self.size().height()-22)
## self.MainFrameWgt.setFixedHeight(self.MainFrameWgt.layout.sizeHint().height()-100)
## else:
## print 22222222222222, self.size()
## self.MainFrameWgt.setFixedWidth(self.size().width()-width_diff)
## self.MainFrameWgt.setFixedHeight(self.MainFrameWgt.layout.sizeHint().height()-100)
# self.MainFrameWgt.updateGeometry()
class FlowLayout(QtGui.QLayout): class FlowLayout(QtGui.QLayout):
def __init__(self, parent=None, margin=0, spacing=-1): def __init__(self, parent=None, margin=0, spacing=-1):
super(FlowLayout, self).__init__(parent) super(FlowLayout, self).__init__(parent)

@ -35,8 +35,11 @@ class MainFrameResWgt(QtGui.QWidget):
if self.work_layout.count() == 1: if self.work_layout.count() == 1:
self.title_lbl = LabelWordWrap(method_name) self.title_lbl = LabelWordWrap(method_name)
self.work_layout.addWidget(self.title_lbl) self.work_layout.addWidget(self.title_lbl)
# self.work_layout.setAlignment(QtCore.Qt.AlignTop)
self.setLayout(self.work_layout) self.setLayout(self.work_layout)
def initUI(self): def initUI(self):
if self.meth_result.type == "pid": if self.meth_result.type == "pid":
self.ClientObj.process_dict [self.meth_result.message]['layout'] = \ self.ClientObj.process_dict [self.meth_result.message]['layout'] = \
@ -219,6 +222,7 @@ def get_message(self, item, sid, pid):
get_Progress(self, sid, pid, item.id) get_Progress(self, sid, pid, item.id)
return 1 return 1
if case('error'): if case('error'):
# for i in range(20):
self.main_frame.MainFrameWgt.show_error(item.message) self.main_frame.MainFrameWgt.show_error(item.message)
if item.message == "403 Forbidden": if item.message == "403 Forbidden":
# show_msg(item.message, 'Access Denied') # show_msg(item.message, 'Access Denied')
@ -463,6 +467,7 @@ class MainFrameRes (QtGui.QScrollArea):
# self.MainFrameWgt.setMinimumWidth(self.width()-50) # self.MainFrameWgt.setMinimumWidth(self.width()-50)
self.setWidget(self.MainFrameWgt) self.setWidget(self.MainFrameWgt)
# self.setWidgetResizable(True)
def resizeEvent(self, resize_var): def resizeEvent(self, resize_var):
self.parent.set_wid (self.size().width()) self.parent.set_wid (self.size().width())

@ -48,6 +48,8 @@ class ViewProcClass(QtGui.QWidget):
# for clear memory after closed this window # for clear memory after closed this window
self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.layout.setAlignment(QtCore.Qt.AlignTop)
self.setLayout(self.layout) self.setLayout(self.layout)
self.show() self.show()
@ -76,8 +78,9 @@ class ViewProc (QtGui.QScrollArea):
# верхнее правое # верхнее правое
self.MainFrameWgt = ViewProcClass(self, ClientObj) self.MainFrameWgt = ViewProcClass(self, ClientObj)
self.setWidget(self.MainFrameWgt) self.setWidget(self.MainFrameWgt)
self.setWidgetResizable(True)
def resizeEvent(self, resize_var): # def resizeEvent(self, resize_var):
self.parent.set_wid (self.size().width()) # self.parent.set_wid (self.size().width())
if self.size().width() > 30: # if self.size().width() > 30:
self.MainFrameWgt.setFixedWidth(self.parent.mainwidth - 30) # self.MainFrameWgt.setFixedWidth(self.parent.mainwidth - 30)

@ -86,7 +86,7 @@ class FrameConnection(QtGui.QWidget):
self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.setLayout(grid) self.setLayout(grid)
self.setGeometry(0, 0, 150, 180) # self.setGeometry(0, 0, 150, 180)
self.show() self.show()
# establish a connection # establish a connection

@ -960,8 +960,9 @@ class MainFrame (QtGui.QScrollArea):
QtGui.QScrollArea.__init__(self) QtGui.QScrollArea.__init__(self)
self.MainFrameWgt = MFWgt(self, ClientObj, view, method_name) self.MainFrameWgt = MFWgt(self, ClientObj, view, method_name)
self.setWidget(self.MainFrameWgt) self.setWidget(self.MainFrameWgt)
self.setWidgetResizable(True)
def resizeEvent(self, resize_var): # def resizeEvent(self, resize_var):
self.parent.set_wid (self.size().width()) # self.parent.set_wid (self.size().width())
if self.size().width() > 30: # if self.size().width() > 30:
self.MainFrameWgt.setFixedWidth(self.parent.mainwidth - 30) # self.MainFrameWgt.setFixedWidth(self.parent.mainwidth - 30)

@ -33,22 +33,27 @@ class ButtonMenu(QtGui.QPushButton):
self.image_lbl.setPixmap(pm2) self.image_lbl.setPixmap(pm2)
self.image_lbl.setAlignment(QtCore.Qt.AlignCenter) self.image_lbl.setAlignment(QtCore.Qt.AlignCenter)
# add transparency
self.image_lbl.setAttribute(QtCore.Qt.WA_NoSystemBackground)
self.layout.addWidget(self.image_lbl) self.layout.addWidget(self.image_lbl)
# self.setFixedSize(96,96)
self.setFlat(True) self.setFlat(True)
# button_text = group.split('.')
# print "##################", group
# button_text = button_text[len(button_text) - 1]
self.lbl = QtGui.QLabel(label, self) self.lbl = LabelWordWrap(label, self)
self.lbl.setAlignment(QtCore.Qt.AlignCenter) self.lbl.setAlignment(QtCore.Qt.AlignCenter)
# add transparency
self.lbl.setAttribute(QtCore.Qt.WA_NoSystemBackground)
self.layout.addWidget(self.lbl) self.layout.addWidget(self.lbl)
if self.layout.sizeHint().width() > 96: # if self.layout.sizeHint().width() > 96:
self.setFixedSize(self.layout.sizeHint().width(),96) # self.setFixedSize(self.layout.sizeHint().width(),96)
else: # else:
self.setFixedSize(96,96) self.setFixedSize(96,108)
self.setObjectName(name) self.setObjectName(name)
# for clear memory after closed this window # for clear memory after closed this window
self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
@ -587,6 +592,7 @@ def https_server(client, signaling, ClientObj):
ClientObj.MainWidget.resize \ ClientObj.MainWidget.resize \
(ClientObj.MainWidget.size_x, ClientObj.MainWidget.size_y) (ClientObj.MainWidget.size_x, ClientObj.MainWidget.size_y)
# ClientObj.MainWidget.topleft.menu.refresh(ClientObj.methods_list) # ClientObj.MainWidget.topleft.menu.refresh(ClientObj.methods_list)
# get_entire_frame(client) # get_entire_frame(client)

Loading…
Cancel
Save