-----------------------
请不要把word vba当成VB使用,补充问题即使在VB中运用也存在一定困难。当然在VB中可解决,但基于WORD对象中只怕难实现。
动态对话框是在程序运行时用 Qt Designer 的.ui 文件创建。不用 uic工具把.ui 文件变成等价的 c++代码,而是在程序时使用类 QUiLoader 加载.ui文件,例如下面的代码:
QUiLoader uiLoader
QFile file("sortdialog.ui")
QWidget *sortDialog = uiLoader.load(&file)
if (sortDialog) {
...
}
子控件可以用 QObject::findChild<T>()得到
QComboBox *primaryColumnCombo =
sortDialog->findChild<QComboBox *>("primaryColumnCombo")
if (primaryColumnCombo) { ...
}
findChild<T>()是模板成员函数,得到类型为 T 的给定名字的子控件的指针。由于编
译器的原因,用 MSVC6 是得不到的。如果使用的是 MSVC6,那么可以使用全局函数
qFindChild<T>()。
QUiLoader 类在一个单独的链接库中,如果在一个应用程序中使用了 QUiLoader,
必须在这个程序的.pro文件中添加下面这样的代码:
CONFIG += uitools
使用动态对话框不用重新编译程序就能够改变对话框的布局。
1. 你将图片的绘制写在paintEvent()函数中,并在其中写上设定大小的语句,这样你的布局每次改变,在调用paintEvent()函数时就能使其等比例缩放。2. 将绝对坐标转换为相对坐标。比如你正常情况下,整体宽度是600,你想把qlabel放在200处,那说明是它的1/3处,你就不要写成离原点固定的200,而是通过比例来计算,这样就应该能避免这个问题吧。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)