Kể từ khi QSplitterHandle (đó là những gì hầu hết mọi người nghĩ đến là 'splitter') có nguồn gốc từ QWidget, bạn có thể thêm các widget khác để nó . Dưới đây là những gì tôi đã làm để giải quyết vấn đề chính xác này trong quá khứ:
// Now add the line to the splitter handle
// Note: index 0 handle is always hidden, index 1 is between the two widgets
QSplitterHandle *handle = pSplitter->handle(1);
QVBoxLayout *layout = new QVBoxLayout(handle);
layout->setSpacing(0);
layout->setMargin(0);
QFrame *line = new QFrame(handle);
line->setFrameShape(QFrame::HLine);
line->setFrameShadow(QFrame::Sunken);
layout->addWidget(line);
Điều này thêm một dòng bị chìm vào tay cầm bộ chia. Bạn có thể, tất nhiên, chọn một phong cách cho khung line
hoặc sử dụng một cái gì đó hoàn toàn khác nhau như các widget bạn thêm vào xử lý splitter.
Nguồn
2010-04-01 21:56:02
Cảm ơn bạn rất nhiều :)! – Narek
Điều này thật tuyệt vời. Tôi sẽ chỉ thêm rằng tôi thích một QHBoxLayout vì sau đó tôi có thể gán một 'maxWidth' (cho splitter ngang) vào đường ngang. – Phlucious
Được thăng hạng bởi vì nó hoạt động, nhưng nó thực sự cảm thấy giống như một cách giải quyết vụng về cho một lỗi Qt ... –