निश्चित रूप से यह संभव है। वास्तव में, यह करना काफी आसान है। आपको अपने QDockWidget
में अन्य सभी चीज़ों के शीर्ष पर बैठे एक बच्चे विजेट को रखने की आवश्यकता है। ऐसा करने के लिए, यह आपके डॉकविड्ज में जो अंतिम बच्चा विजेट जोड़ता है वह होना चाहिए। उस विजेट को अपनी पृष्ठभूमि खींचना नहीं चाहिए, और फिर यह डॉकविड्ज के किसी भी बच्चे को आकर्षित कर सकता है। विजेट के आकार को मूल विजेट के आकार को ट्रैक करना होगा।
नीचे एक आत्मनिर्भर संकलित उदाहरण है।

// https://github.com/KubaO/stackoverflown/tree/master/questions/overlay-line-11034838
#include <QtGui>
#if QT_VERSION > QT_VERSION_CHECK(5,0,0)
#include <QtWidgets>
#endif
class Line : public QWidget {
void paintEvent(QPaintEvent *) override {
QPainter p{this};
p.setRenderHint(QPainter::Antialiasing);
p.drawLine(rect().topLeft(), rect().bottomRight());
}
public:
using QWidget::QWidget;
};
class Window : public QWidget {
QHBoxLayout layout{this};
QLabel left{"Left", this};
QLabel right{"Right", this};
Line line{this};
void resizeEvent(QResizeEvent *) override {
line.setGeometry(rect());
}
public:
Window(QWidget * parent = nullptr) : QWidget{parent} {
left.setFrameStyle(QFrame::Box | QFrame::Raised);
layout.addWidget(&left);
right.setFrameStyle(QFrame::Box | QFrame::Raised);
layout.addWidget(&right);
}
};
int main(int argc, char *argv[])
{
QApplication app{argc, argv};
Window w;
w.show();
return app.exec();
}
स्रोत
2012-06-15 03:32:51
गहराई क्रम में ड्राइंग ठीक है यही कारण है कि आप उनमें से शीर्ष पर रखा अतिरिक्त विगेट्स का उपयोग कर अंतर्निहित विगेट्स से अधिक आकर्षित करने के लिए अनुमति देता है। यह आसान है, यहां तक कि :) आईआईआरसी क्यूटी 4.1 में पेश किए गए नए विजेट प्रतिपादन मॉडल पर जाते हैं। –
@ क्यूबाओबर आप बिल्कुल सही हैं, लेकिन ओपी ने यही नहीं पूछा। ओपी ने पूछा कि क्या एक कंटेनर विजेट बाल विगेट्स पर पेंट कर सकता है - जवाब नहीं है। आपका समाधान एक संभावित कामकाज है, लेकिन इसमें निहित विगेट्स पर 'QDockWidget' व्युत्पन्न क्लास पेंटिंग शामिल नहीं है, यह ओपी के प्रश्न का उत्तर नहीं देता है। – cmannett85
यह एक समाधान प्रदान करता है। कंटेनर विजेट खुद को एक बच्चे विजेट जोड़ने के लिए स्वतंत्र है। निश्चित रूप से पेंटिंग कोड कंटेनर के 'पेंटएवेंट' में नहीं जाता है, लेकिन इसके बारे में कौन परवाह करता है। –