Qt Designer'da, düzeninizde bir çizgi oluşturacak bir "Satır" widget'ını sürükleyebilirsiniz.Tasarımcı bir Çizgi widget'ı nasıl oluşturur?
Ama belgeyi ve üstbilgileri kontrol ettim, "Satır" üstbilgisini/parçacığını bulamadım, ne vardı?
Qt Designer'da, düzeninizde bir çizgi oluşturacak bir "Satır" widget'ını sürükleyebilirsiniz.Tasarımcı bir Çizgi widget'ı nasıl oluşturur?
Ama belgeyi ve üstbilgileri kontrol ettim, "Satır" üstbilgisini/parçacığını bulamadım, ne vardı?
Bir yatay/dikey çizgi widget'ı kastettiğinizi tahmin ediyorum: sadece gri bir arka plan rengine sahip basit bir QWidget ve yatay sabit yükseklik (1-3 piksel) ve genişleyen genişlik widget'idir, dikey genişlikli bir genişliktir yükseklik widget'ı.
Yatay örnek kod:
QWidget *horizontalLineWidget = new QWidget;
horizontalLineWidget->setFixedHeight(2);
horizontalLineWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
horizontalLineWidget->setStyleSheet(QString("background-color: #c0c0c0;"));
yüksekliğinde 3, batık gölge ve hattı ile bir QFrame olan UIC araç tarafından oluşturulan başlık incelersek Görebiliyorsun 1. eşit genişlik.
QFrame :: setFrameShape(). Bir satır almak için QFrame :: HLine veya QFrame :: VLine işlevinin argümanı olarak kullanın.
Qt 5.7 (kullanarak menüde kontrol edilebilir "Form/Kod Görüntüle ...") bir yatay Hattı için Qt Designer tarafından üretilen kod olarak// 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);
olduğunu :
QFrame *line;
line = new QFrame(Form);
line->setFrameShape(QFrame::HLine);
line->setFrameShadow(QFrame::Sunken);
Bu irade Qt Designer'da gördüğünüz satırları oluşturun.
Tam kod:
#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();
}
güncel cevaplar çalışma çözümlerini vermek görünmüyor, burada bütün cevapların bir karşılaştırma (bu çözüm ilk satırı) 'dir