2012-04-07 18 views
6

क्यूटी डिजाइनर में, आप एक "रेखा" विजेट खींच सकते हैं, जो आपके लेआउट में एक लाइन बनाएगा।डिजाइनर एक लाइन विजेट कैसे बनाता है?

लेकिन मैंने दस्तावेज़ और शीर्षलेखों की जांच की, मुझे "लाइन" हेडर/विजेट नहीं मिला, यह क्या था?

उत्तर

7

मुझे लगता है कि आपका मतलब एक क्षैतिज/लंबवत रेखा विजेट है: यह एक भूरे रंग के पृष्ठभूमि रंग के साथ बस एक साधारण QWidget है और क्षैतिज एक निश्चित ऊंचाई (1-3 पिक्सेल) है और चौड़ाई विजेट का विस्तार है, लंबवत एक निश्चित चौड़ाई विस्तार है ऊंचाई विजेट।

क्षैतिज उदाहरण कोड:

QWidget *horizontalLineWidget = new QWidget; 
horizontalLineWidget->setFixedHeight(2); 
horizontalLineWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); 
horizontalLineWidget->setStyleSheet(QString("background-color: #c0c0c0;")); 
3

यह ऊंचाई 3, धँसा छाया और लाइन के साथ एक QFrame है 1. के बराबर चौड़ाई आप इसे देख सकते हैं यूआईसी उपकरण द्वारा उत्पन्न हैडर जांच करते हैं।

3

बाहर चेक QFrame :: setFrameShape()। एक पंक्ति पाने के लिए, QFrame :: HLine या QFrame :: VLine समारोह के तर्क के रूप में उपयोग या तो।

// Create a horizontal line by creating a frame and setting its shape to QFrame::HLine: 
QFrame* hFrame = new QFrame; 
hFrame->setFrameShape(QFrame::HLine); 

// Create a vertical line by creating a frame and setting its shape to QFrame::VLine: 
QFrame* vFrame = new QFrame; 
vFrame->setFrameShape(QFrame::VLine); 
6

क्यूटी 5.7 एक क्षैतिज रेखा (जो उपयोग करके मेनू में जाँच की जा सकती "प्रपत्र/कोड देखें ...") के लिए क्यूटी डिजाइनर द्वारा बनाया गया कोड में है:

QFrame *line; 
line = new QFrame(Form); 
line->setFrameShape(QFrame::HLine); 
line->setFrameShadow(QFrame::Sunken); 

हो जाएगा ताकि क्यूटी डिजाइनर में जो लाइनें आप देखते हैं उन्हें बनाएं।

Horizontal lines in Qt

पूर्ण कोड:

#include <QtWidgets> 

int main(int argc, char **argv) 
{ 
    QApplication app(argc, argv); 

    QWidget widget; 
    auto layout = new QVBoxLayout; 
    widget.setLayout(layout); 
    widget.resize(200, 200); 

    auto lineA = new QFrame; 
    lineA->setFrameShape(QFrame::HLine); 
    lineA->setFrameShadow(QFrame::Sunken); 
    layout->addWidget(lineA); 

    QWidget *lineB = new QWidget; 
    lineB->setFixedHeight(2); 
    lineB->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); 
    lineB->setStyleSheet(QString("background-color: #c0c0c0;")); 
    layout->addWidget(lineB); 

    auto lineC = new QFrame; 
    lineC->setFixedHeight(3); 
    lineC->setFrameShadow(QFrame::Sunken); 
    lineC->setLineWidth(1); 
    layout->addWidget(lineC); 

    QFrame* lineD = new QFrame; 
    lineD->setFrameShape(QFrame::HLine); 
    layout->addWidget(lineD); 

    widget.show(); 
    return app.exec(); 
} 

वर्तमान जवाब काम कर समाधान देने के लिए नहीं है, यहाँ (इस समाधान पहली पंक्ति है) सभी प्रश्नों के उत्तर की तुलना है

संबंधित मुद्दे