Qt was generating warning messages about couldn't set layout
on the MotifEditor while one was already set. It turns out you
need to delete the default layout before calling setLayout().
assert (m != 0);
const set<Sequence> &motif = analysis->motifs();
vector<Sequence> motif_seq(motif.begin(), motif.end());
assert (m != 0);
const set<Sequence> &motif = analysis->motifs();
vector<Sequence> motif_seq(motif.begin(), motif.end());
-
- applyButton->setFocusPolicy(Qt::StrongFocus);
- connect(applyButton, SIGNAL(clicked()), this, SLOT(updateAnalysisMotifs()));
- button_layout->addStretch();
- button_layout->addWidget(applyButton);
-
- table->setItemDelegate(delegate);
-
- editor_layout->addWidget(table);
- editor_layout->addLayout(button_layout);
- setLayout(editor_layout);
updateTitle();
updateModel();
updateTitle();
updateModel();
void MotifEditor::setupWidgets()
{
void MotifEditor::setupWidgets()
{
- editor_layout = new QVBoxLayout(this);
- button_layout = new QHBoxLayout(this);
- table = new QTableView(this);
+ editor_layout = new QVBoxLayout;
+ button_layout = new QHBoxLayout;
+ // remove default layout (very safely)
+ if (layout()) delete layout();
+
+ table = new QTableView;
delegate = new MotifEditorDelegate(this);
applyButton = new QPushButton("apply");
delegate = new MotifEditorDelegate(this);
applyButton = new QPushButton("apply");
+
+ applyButton->setFocusPolicy(Qt::StrongFocus);
+ connect(applyButton, SIGNAL(clicked()), this, SLOT(updateAnalysisMotifs()));
+ button_layout->addStretch();
+ button_layout->addWidget(applyButton);
+
+ table->setItemDelegate(delegate);
+
+ editor_layout->addWidget(table);
+ editor_layout->addLayout(button_layout);
+ setLayout(editor_layout);
}
void MotifEditor::updateModel()
}
void MotifEditor::updateModel()