Fix resize events widgets

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

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

@ -26,6 +26,9 @@ class DisplayMethod(QtGui.QWidget):
self.groupbox_dict = {}
self.layout_dict = {}
# self.setStyleSheet("QWidget { background-color: #f2f2f2 }")
self.setStyleSheet("QWidget { background-color: #f0f0f0 }")
# transform a list into the dictionary {'group': [methods], ...}
guiMethods = {}
if type(results) == int:
@ -60,26 +63,44 @@ class DisplayMethod(QtGui.QWidget):
guiMethods[group][method_name + 1], \
guiMethods[group][method_name + 2], \
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)
self.button_list.append(Button)
self.layout_dict[group].addWidget(self.button_list[len(self.button_list) - 1])
self.layout_dict[group].setAlignment(QtCore.Qt.AlignLeft)
self.groupbox_dict[group].setLayout(self.layout_dict[group])
self.layout.addWidget(self.groupbox_dict[group])
self.layout.setAlignment(QtCore.Qt.AlignTop)
self.setLayout(self.layout)
# self.setStyleSheet("QWidget { background-color: white }")
self.resize(self.layout.sizeHint())
# print self.sizeHint()
# self.updateGeometry()
def refresh(self, results):
self.ClientObj.MainWidget.results = results
def refresh(self):
results = self.ClientObj.methods_list
self.initUI(results)
self.ClientObj.app.processEvents()
def onActivated(self):
method_name = self.sender().objectName()
step = 0
@ -91,6 +112,52 @@ class DisplayMethod(QtGui.QWidget):
(int(self.ClientObj.sid), step)
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):
def __init__(self, parent=None, margin=0, spacing=-1):
super(FlowLayout, self).__init__(parent)

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

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

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

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

@ -33,22 +33,27 @@ class ButtonMenu(QtGui.QPushButton):
self.image_lbl.setPixmap(pm2)
self.image_lbl.setAlignment(QtCore.Qt.AlignCenter)
# add transparency
self.image_lbl.setAttribute(QtCore.Qt.WA_NoSystemBackground)
self.layout.addWidget(self.image_lbl)
# self.setFixedSize(96,96)
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)
# add transparency
self.lbl.setAttribute(QtCore.Qt.WA_NoSystemBackground)
self.layout.addWidget(self.lbl)
if self.layout.sizeHint().width() > 96:
self.setFixedSize(self.layout.sizeHint().width(),96)
else:
self.setFixedSize(96,96)
# if self.layout.sizeHint().width() > 96:
# self.setFixedSize(self.layout.sizeHint().width(),96)
# else:
self.setFixedSize(96,108)
self.setObjectName(name)
# for clear memory after closed this window
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
@ -587,6 +592,7 @@ def https_server(client, signaling, ClientObj):
ClientObj.MainWidget.resize \
(ClientObj.MainWidget.size_x, ClientObj.MainWidget.size_y)
# ClientObj.MainWidget.topleft.menu.refresh(ClientObj.methods_list)
# get_entire_frame(client)

Loading…
Cancel
Save