Qt Designer에서 레이아웃에 선을 생성하는 "선"위젯을 드래그 할 수 있습니다.디자이너는 어떻게 Line 위젯을 만들 수 있습니까?
하지만 문서와 헤더를 확인한 결과 "Line"헤더/위젯을 찾지 못했습니다. 무엇 이었습니까?
Qt Designer에서 레이아웃에 선을 생성하는 "선"위젯을 드래그 할 수 있습니다.디자이너는 어떻게 Line 위젯을 만들 수 있습니까?
하지만 문서와 헤더를 확인한 결과 "Line"헤더/위젯을 찾지 못했습니다. 무엇 이었습니까?
너는 수평선/수직선 위젯을 의미하는 것 같아요 : 회색 배경색을 가진 단순한 QWidget이고 수평선은 고정 높이 (1-3 픽셀)이고 확장 너비 위젯입니다, 수직선은 확장 너비 확장입니다 높이 위젯.
가로 예 번호 :
QWidget *horizontalLineWidget = new QWidget;
horizontalLineWidget->setFixedHeight(2);
horizontalLineWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
horizontalLineWidget->setStyleSheet(QString("background-color: #c0c0c0;"));
그것은 높이 3 오목 그림자 광고와 QFrame 인은 UIC 툴에 의해 생성 된 헤더를 조사하는 경우는 그것을 볼 수 1. 동일한 폭.
체크 아웃 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);
입니다 :
QFrame *line;
line = new QFrame(Form);
line->setFrameShape(QFrame::HLine);
line->setFrameShadow(QFrame::Sunken);
이 의지 Qt Designer에 표시되는 선을 만듭니다.
전체 코드 :
#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();
}
현재 답변이 작동 솔루션을 제공하지 않는 것, 여기에 모든 대답의 비교 (이 솔루션은 첫 번째 라인이다)이다