Δημοσιεύτηκε: 22 Δεκ 2011, 18:10
Παραθέτω ένα μικρό παράδειγμα για να εξηγήσω το πρόβλημα που αντιμετωπίζω:
Με την εκτέλεση της method όταν πατιέται το moreButton και το frame "κρύβεται" περιμένω η φόρμα να ξαναπάρει το αρχικό της μέγεθος. Αυτό όμως δεν συμβαίνει.
Αν πατήσω το visibleButton που εκτελεί ακριβώς την ίδια μέθοδο το resize γίνεται σωστά!
Επίσης αν αλλάξω την method σε:
τότε το resize γίνεται κανονικά και από το moreButton!!!
Καμία ιδέα για το τι μπορεί να φταίει;
Edit: Διόρθωσα τον κώδικα. Κατά λάθος είχα αφήσει self.resize(630, 350) στην method.
- Κώδικας: Επιλογή όλων
#!/usr/bin/python2
import sys
from PyQt4.QtGui import (QApplication, QHBoxLayout, QVBoxLayout, QDialog,
QFrame, QPushButton, QComboBox)
class Form(QDialog):
def __init__(self, parent=None):
super(Form, self).__init__(parent)
moreButton = QPushButton('moreButton')
moreButton.setCheckable(True)
resizeButton = QPushButton('Resize')
button = QPushButton('button')
combo = QComboBox()
combo.addItems(['item1', 'item2'])
layout1 = QHBoxLayout()
layout1.addWidget(moreButton)
layout1.addWidget(resizeButton)
layout2 = QHBoxLayout()
layout2.addWidget(combo)
layout2.addWidget(button)
self.frame = QFrame()
self.frame.setLayout(layout2)
self.frame.hide()
layout3 = QVBoxLayout()
layout3.addLayout(layout1)
layout3.addWidget(self.frame)
moreButton.toggled.connect(self.frame.setVisible)
moreButton.clicked.connect(self.method)
resizeButton.clicked.connect(self.method)
self.setLayout(layout3)
self.resize(630, 50)
def method(self):
if self.frame.isVisible():
self.resize(630, 150)
else:
self.resize(630, 50)
app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()
Με την εκτέλεση της method όταν πατιέται το moreButton και το frame "κρύβεται" περιμένω η φόρμα να ξαναπάρει το αρχικό της μέγεθος. Αυτό όμως δεν συμβαίνει.
Αν πατήσω το visibleButton που εκτελεί ακριβώς την ίδια μέθοδο το resize γίνεται σωστά!
Επίσης αν αλλάξω την method σε:
- Κώδικας: Επιλογή όλων
def method(self):
if self.frame.isVisible():
self.resize(630, 150)
else:
self.resize(630, 350)
τότε το resize γίνεται κανονικά και από το moreButton!!!
Καμία ιδέα για το τι μπορεί να φταίει;
Edit: Διόρθωσα τον κώδικα. Κατά λάθος είχα αφήσει self.resize(630, 350) στην method.