本文主要是介绍QFiledialog添加控件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
欢迎关注公众号可以查看更多完整文章
一种方法(我使用的):
继承QWidget,按照自己的需要实现布局,将QFiledialog作为一个子控件,将需要添加的其他控件加入到界面。
另一种方法(担心Qt升级导致要重新修改代码,没有使用):
QFileDialog* f = new QFileDialog();f->setOption(QFileDialog::DontUseNativeDialog, true);QGridLayout *layout = static_cast<QGridLayout*>(f->layout());QList< QPair<QLayoutItem*, QList<int> > > moved_items;f->show();for (int i = 0; i < layout->count(); i++) {int row, column, rowSpan, columnSpan;layout->getItemPosition(i, &row, &column, &rowSpan, &columnSpan);if (row >= 2) {QList<int> list;list << (row + 1) << column << rowSpan << columnSpan;moved_items << qMakePair(layout->takeAt(i), list);i--; // takeAt has shifted the rest items}}for (int i = 0; i < moved_items.count(); i++) {layout->addItem(moved_items[i].first,moved_items[i].second[0],moved_items[i].second[1],moved_items[i].second[2],moved_items[i].second[3]);}QLineEdit *line = new QLineEdit();layout->addWidget(line, 2, 0, 1, 4);
这篇关于QFiledialog添加控件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!