qt怎么在qframe内动态创建按钮

2024-12-01 02:45:54
推荐回答(1个)
回答1:

动态对话框是在程序运行时用 Qt Designer 的.ui 文件创建。不用 uic工具把.ui 文件变成
等价的 c++代码,而是在程序时使用类 QUiLoader 加载.ui文件,例如下面的代码:
QUiLoader uiLoader;
QFile file("sortdialog.ui");
QWidget *sortDialog = uiLoader.load(&file);
if (sortDialog) {
...
}
子控件可以用 QObject::findChild()得到
QComboBox *primaryColumnCombo =
sortDialog->findChild("primaryColumnCombo");
if (primaryColumnCombo) { ...
}
findChild()是模板成员函数,得到类型为 T 的给定名字的子控件的指针。由于编
译器的原因,用 MSVC6 是得不到的。如果使用的是 MSVC6,那么可以使用全局函数
qFindChild()。
QUiLoader 类在一个单独的链接库中,如果在一个应用程序中使用了 QUiLoader,
必须在这个程序的.pro文件中添加下面这样的代码:
CONFIG += uitools
使用动态对话框不用重新编译程序就能够改变对话框的布局。