其次,还要写一个接口动态库,用来实现designer中调用我们自己的控件。这一步很关键。这个动态库中程序结构都是qt固定的。具体参见附录。
最后,编译写好的上面两个插件,要拷贝一些文件到相应目录下:
分别将主动态库和库文件拷贝到qt安装的bin和lib目录下;
将接口动态库和库文件拷贝到qt安装目录的plugins\designer目录下;
将主动态库的接口头文件拷贝到qt安装目录的include目录下;
这样,我们的写的控件就添加完成了。这时打开desinger就可以在工具条中看到我们写的控件了。我们就可以像其它控件一样使用这个控件了。
1、在Qt的设计师工具中创建一个新的UI文件,并添加所需的控件。2、将UI文件保存为.ui文件,以便之后可以使用Qt提供的UI文件编译器工具进行编译。
3、在项目中包含UI文件对应的头文件。
4、在代码中使用该头文件中的类来实例化UI控件。
// ----- 答案肯定是可以的 -----//// 先创建原先的界面,用布局进行管理
QWidget *widgetMain = new QWidget()
// 加入一个输入框和按钮
QLineEdit *lineEdit = new QLineEdit(widgetMain)
QPushButton *btn = new QPushButton(widgetMain)
// 用水平布局将这2个控件框起,并且置于界面顶部
QHBoxLayout *horLayout = new QHBoxLayout()
horLayout->addWidget(lineEdit, 4)
horLayout->addWidget(btn, 1) // 设置布局比例为4:1
// 然后添加一个全局布局控件
QVBoxLayout *verLayout = new QVBoxLayout(widgetMain)
verLayout->addLayout(horLayout)// 加入刚才的输入组,底部添加d簧
verLayout->addStretch()
// --------- 基本界面创建完成 -------------- //
// 关联处理动态创建
int nCnt = lineEdit->text().toInt() // 输入的个数
for (int i = 0 i < nCnt i++) {
QLabel *label = new QLabel(widgetMain)
// 插入之前的布局
label->setText(QString("动态创建label %1).arg(i + 1))
verLayout->insertWidget(1 + i, label)
}
// 大功告成
// 备注,以上代码纯手工,写法或其他错误请自行修改,仅作参考
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)