Как-то давно делал такую вещь наследованием и добавлением в layout дополнительной опции:
C++ (Qt)
FileDialogWithCodingChoice::FileDialogWithCodingChoice(QWidget *parent, const QString &caption, const QString &dir, const QString &filter) :
QFileDialog(parent,caption,dir,filter)
{
QGridLayout * grid = qobject_cast<QGridLayout*>(layout());
if(!grid)
return;
QStringList codecsAvailable;
codecsAvailable << "UTF-8"<< "KOI8-R" << "CP1251";
QLabel * lab_text= new QLabel(tr("Кодировка"),this);
comboBoxСodings = new QComboBox(this);
comboBoxСodings->addItems(codecsAvailable);
comboBoxСodings->setCurrentIndex(comboBoxСodings->findText(defaultCodecName));
int row = grid->rowCount();
grid->addWidget(lab_text,row,0);
grid->addWidget(comboBoxСodings,row,1);
}