0

ラベルと QLineEdit の間のスペースを減らしたい (QLabel は QLineEdit の上にあります)。どうすれば達成できますか?コードでは、アイテムを作成していますが、後でいくつかのレイアウトに入れました。

QLabel* lgamma = new QLabel("Gamma");
gamma = new QLineEdit();
QLabel* lmin_linie = new QLabel(QString::fromUtf8("Min. il. zmian linii"));
min_lin = new QLineEdit();
// ...
QLabel* lmax_kursy = new QLabel(QString::fromUtf8("Max zm. il. kursów"));
max_kursy = new QLineEdit();
QGridLayout *lay = new QGridLayout(this);
QVBoxLayout *box1 = new QVBoxLayout();
QVBoxLayout *box2 = new QVBoxLayout();
// ...
QVBoxLayout *box12 = new QVBoxLayout();
box1->addWidget(lmin_linie);
box1->addWidget(min_lin);
box2->addWidget(lmax_lin);
box2->addWidget(max_lin);
// ...
box12->addWidget(literacje);
box12->addWidget(iteracje);
verticalColumn1->addLayout(box1);
verticalColumn1->addLayout(box2);
// ...
verticalColumn3->addLayout(box12);

start = new QPushButton("Start", this);
QHBoxLayout *corn = new QHBoxLayout();
corn->addLayout(verticalColumn1);
corn->addLayout(verticalColumn2);
corn->addLayout(verticalColumn3);
QVBoxLayout *rup = new QVBoxLayout();
rup->addLayout(corn);
rup->addWidget(start);

ここに画像の説明を入力

4

2 に答える 2

5

レイアウトにスペーサーを追加するだけです。

QSpacerItem *spacer = new QSpacerItem(1, 50, QSizePolicy::Ignored, QSizePolicy::Expanding);
box1.addItem(spacer); 

args またはQSpacerItemQSizePolicy::Preferredを必要に応じて調整しますQSizePolicy::Expanding。そんなGUIをQtデザイナーで手軽に実現してみませんか?

于 2013-01-16T22:26:02.467 に答える
1

QLabelとQLineEditの境界線を設定してみてください。

lmax_kursy->setStyleSheet("border-width:0px");
max_kursy->setStyleSheet("border-width:0px");

またはレイアウトに間隔を設定します。まず、間隔の現在の値を確認します。

box1->spacing();

0の場合は、-2のように負の値を設定してみてください。

box1->setSpacing(-2);       // or 0 or something else
于 2013-01-16T22:22:53.680 に答える