Benzer bir şey yapmaya çalışıyorum. Bir sabit widget'ım (üstte) ve sabit olmayan bir widget'ım (alt) var. Kullanıcının splitter tutamacını normal olarak kullanabilmesini istiyorum, ancak sabit widget'a alan eklemek için pencerenin yeniden boyutlandırılmasını istemiyorum. Her iki widget'ta setSizePolicy kullanımı benim için işe yaramadı ve setStretchFactor'ı bir ya da her iki araçta da kullanmadı.
Splitter yeniden boyutlandırıldıktan sonra ayırıcıyı hareket ettirecek bir resizeEvent uygulayabilmem için alt sınıf QSplitter'i sonlandırdım. Bu kod varsayılmaktadır: Sadece iki tane araç var. Üst [0] yeniden boyutlandırılabilir ve alt [1] olmamalıdır.
MySplitter::resizeEvent(QResizeEvent *event) {
/* The first resizeEvent is -1 for height and width, because it was
invisible before. */
if (event->oldSize().height() != -1) {
int diff;
QList<int> previousSizes = sizes();
QSplitter::resizeEvent(event);
QList<int> newSizes = sizes();
/* The bottom widget is the fixed one, so find out if that is to
grow or shrink. */
diff = newSizes[1] - previousSizes[1];
if (diff > 0) {
/* Keep the bottom from growing by giving the size to the top. */
newSizes[0] += diff;
newSizes[1] -= diff;
}
else {
/* Steal size from the top to keep it from shrinking. */
newSizes[0] -= diff;
newSizes[1] += diff;
}
setSizes(newSizes);
}
else
QSplitter::resizeEvent(event);
}
: Burada
yazdım resizeEvent olduğunu