私は初心者で、Mac で iTunes の情報ダイアログのようなフォーム ウィジェットを作成できないかと考えています。
私は使用してみました:
- QGroupBox: フレームを取り除く方法が見つかりません。
- 独自のウィジェットの作成: QVBoxLayout を使用してラベルと QLineEdit ウィジェットの間の間隔を修正する方法が見つかりません (実際には、マージンと間隔の違いをよく理解していません)。
- QFormLayout: setrowWrapPolicy::WrapAllRows を使用した後、QLabel のサイズを縮小する方法が見つかりません
また、私は(まだ)QtDesignerに慣れていないので、(今のところ)使用したくありません
前もって感謝します
編集:プログラムのいくつかの精度。Mac OS X Mountain Lion で Qt 4.8.1 および 5.0 で QtCreator 2.6.1 を使用しています。
編集2:これがコードです。
QWidget のサブクラス:
MCLineEdit::MCLineEdit(const QString &header)
{
m_lineEdit = new QLineEdit;
m_lineTitle = new QLabel(header);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(m_lineTitle);
layout->addWidget(m_lineEdit);
layout->setSpacing(0);
setLayout(layout);
}
ウィジェットを表示するには
myView::myView(QWidget *parent) :
QWidget(parent)
{
setFixedSize(600, 500);
MCLineEdit *lineEdit1 = new MCLineEdit("Test 1");
MCLineEdit *lineEdit2 = new MCLineEdit("Test 2");
MCLineEdit *lineEdit3 = new MCLineEdit("Test 3");
MCLineEdit *lineEdit4 = new MCLineEdit("Test 4");
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(lineEdit1);
mainLayout->addWidget(lineEdit2);
mainLayout->addWidget(lineEdit3);
mainLayout->addWidget(lineEdit4);
mainLayout->setSpacing(0);
setLayout(mainLayout);
}