2012-04-07 16 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

はUICツールによって生成されたヘッダを調べる場合は、それを見ることができ、高さ3、沈没影と1 に等しい線幅QFrameあります。

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

現在の答えが働いて解決策を与えていないようだ、ここですべての答えの比較(このソリューションは、最初の行である)であります

関連する問題