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;"));
はUICツールによって生成されたヘッダを調べる場合は、それを見ることができ、高さ3、沈没影と1 に等しい線幅QFrameあります。
チェックアウト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();
}
現在の答えが働いて解決策を与えていないようだ、ここですべての答えの比較(このソリューションは、最初の行である)であります