在我的Qt桌面应用程序中,我需要一个对话框供用户输入一些数据。所以我选择:新文件| Qt |设计器表单类,然后是对话框,按钮底部并适当地命名。
在新对话框的构造函数中,我创建了一些标签和线条编辑,并将它们添加到网格布局中。像这样:
ui->setupUi(this);
partNoLabel = new QLabel(tr("&Part No:"));
partDescLabel = new QLabel(tr("&Description:"));
partNoLineEdit = new QLineEdit();
partDescLineEdit = new QLineEdit();
partNoLabel->setBuddy(partNoLineEdit);
partDescLabel->setBuddy(partDescLineEdit);
supplierLabel = new QLabel(tr("Supplier"));
supPartNoLabel = new QLabel(tr("Part No"));
supplierLineEdit = new QLineEdit();
supPartNoLineEdit = new QLineEdit();
supplierLabel->setBuddy(supplierLineEdit);
supPartNoLabel->setBuddy(supPartNoLineEdit);
QGridLayout *dlgLayout = new QGridLayout;
dlgLayout->addWidget(partNoLabel, 0, 0);
dlgLayout->addWidget(partNoLineEdit, 0, 1);
dlgLayout->addWidget(partDescLabel, 1, 0);
dlgLayout->addWidget(partDescLineEdit, 1, 1);
dlgLayout->addWidget(supplierLabel, 2, 0);
dlgLayout->addWidget(supplierLineEdit, 2, 1);
dlgLayout->addWidget(supPartNoLabel, 3, 0);
dlgLayout->addWidget(supPartNoLineEdit, 3, 1);
setLayout(dlgLayout);
setWindowTitle("New part");
虽然显示了 - 但看起来很糟糕:
当调整大小时,看起来更糟:
这显然是不可接受的,我该如何解决这个问题,或者我该怎么做呢?
修正版:
我遵循了GáborAngyal的建议并手动完成,删除并在代码中添加了一个按钮框。我还改为使用本文所述的FormLayout:http://doc.qt.digia.com/qq/qq25-formlayout.html
结果表格如下:
仍然需要一两个调整,但至少按钮位于正确的位置:D。
答案 0 :(得分:2)
问题是你手动创建了一个布局,但确实为它添加了按钮框。我建议您使用设计器创建整个表单,或者手动完成所有操作,但不要混用两者。
有设计师
<强>手册强>