2012-04-07 6 views

답변

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 인은 UIC 툴에 의해 생성 된 헤더를 조사하는 경우는 그것을 볼 수 1. 동일한 폭.

3

체크 아웃 QFrame :: setFrameShape(). 라인을 얻으려면 함수의 인수로 QFrame :: HLine 또는 QFrame :: VLine 중 하나를 사용하십시오.

는 Qt는 5.7 (사용 메뉴에서 확인할 수 있습니다 "폼/코드보기를 ...") 수평선을위한 Qt는 디자이너에 의해 생성 된 코드에서
// 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

입니다 :

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

이 의지 Qt Designer에 표시되는 선을 만듭니다.

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(); 
} 

현재 답변이 작동 솔루션을 제공하지 않는 것, 여기에 모든 대답의 비교 (이 솔루션은 첫 번째 라인이다)이다