VS对Qt实现控件提升,并解决头文件Include方式不正确的问题-下面的代码中:

时间:2024-10-09 07:56:57

TGraphicsView:自定义控件,需要插入到界面中

ui->graphicsView:在Ui设计师界面里,用来查看布局效果的原始控件,需要被替换

方式:查看ui.h的头文件,找到布局对象。然后在调用函数内重新编写部分代码,使用布局对象找到graphicsView的位置索引,使用insertWidget将TGraphicsView实例化的控件插入即可。

	graphicsView_Ui = new TGraphicsView(this);
	int index=ui->horizontalLayout_2->indexOf(ui->graphicsView);
	ui->horizontalLayout_2->insertWidget(index, graphicsView_Ui);
	ui->horizontalLayout_2->removeWidget(ui->graphicsView);
	ui->graphicsView->deleteLater();
	ui->horizontalLayout_2->setStretch(0, 3);
	ui->horizontalLayout_2->setStretch(1, 1);

	lab_Image1 = new TQLabel(this);
	lab_Image2 = new TQLabel(this);
	lab_Image3 = new TQLabel(this);

	index = ui->verticalLayout->indexOf(ui->lab_Image1);
	ui->verticalLayout->insertWidget(index, lab_Image3);
	ui->verticalLayout->insertWidget(index, lab_Image2);
	ui->verticalLayout->insertWidget(index, lab_Image1);
	ui->horizontalLayout_2->removeWidget(ui->lab_Image1);
	ui->horizontalLayout_2->removeWidget(ui->lab_Image2);
	ui->horizontalLayout_2->removeWidget(ui->lab_Image3);
	ui->lab_Image1->deleteLater();
	ui->lab_Image2->deleteLater();
	ui->lab_Image3->deleteLater();
	ui->verticalLayout->setStretch(0, 1);
	ui->verticalLayout->setStretch(1, 2);
	ui->verticalLayout->setStretch(2, 2);
	ui->verticalLayout->setStretch(3, 2);

三、效果展示

        图片展示区里面的控件使用此方法加入到界面中的,有放大和缩小的效果,反复编译也不需要修改头文件了,