qt实现点击按钮增加输入框的功能

🙄

要求是:设计一个按钮,点一下,增加一栏输入框




👨‍💻

先用设计器写上可以写死的控件

然后思路就是:

输入框的控件是QLineEdit,那就创建QLineEdit数组,然后链接 + 按钮,再设置一下输入框+ 的位置就可以了

目前在设计器中没法设计某个控件的数组,只能在代码中自己写





上代码

// .h头文件

private:
	QLineEdit *x[200],*y[200];
	int x_spacing = 80;
	int y_spacing = 130;
	int i = 0;
	int lineedit_num = 5;

	QLabel *num[50];
	int label_num = 1;

private slots:
	void addlineedit();


// .cpp文件
navDebuggingTools::navDebuggingTools(QWidget *parent)
	: QMainWindow(parent)
{
	int tmp = i + 5;
	for (i; i < tmp; ++i) {
		x[i] = new QLineEdit(ui.scrollareawidget);
		x[i]->setGeometry(x_spacing, y_spacing, 51, 30);
		x[i]->show();

		y[i] = new QLineEdit(ui.scrollareawidget);
		y[i]->setGeometry(x_spacing+50, y_spacing, 51, 30);
		y[i]->show();

		x_spacing += 110;
		if (x_spacing > 520) x_spacing = 80;
	}

	num[label_num] = new QLabel(ui.scrollareawidget);
	num[label_num]->setGeometry(20, 130, 30, 30);
	num[label_num]->setText(QString::number(5));
	num[label_num]->show();		
	label_num ++;
	connect(ui.addlineedit_btn, &QPushButton::clicked, this, &navDebuggingTools::addlineedit);
}



void navDebuggingTools::addlineedit() {
	int t = i + 5;
	y_spacing += 50;
	for (i; i < t; ++i) {
		x[i] = new QLineEdit(ui.scrollareawidget);
		x[i]->setGeometry(x_spacing, y_spacing, 51, 30);
		x[i]->show();

		y[i] = new QLineEdit(ui.scrollareawidget);
		y[i]->setGeometry(x_spacing + 50, y_spacing, 51, 30);
		y[i]->show();

		x_spacing += 110;
		if (x_spacing > 520) x_spacing = 80;
	}
	lineedit_num += 5;

	num[label_num] = new QLabel(ui.scrollareawidget);
	num[label_num]->setGeometry(20, y_spacing, 30, 30);
	num[label_num]->setText(QString::number(lineedit_num));
	num[label_num]->show();
	label_num ++;

	ui.addlineedit_btn->move(640, y_spacing);
	if (lineedit_num == 100) ui.addlineedit_btn->hide();
}




😎

有一点要注意的是:

一开始是先写了第一栏输入框,并在左边写了个标签num[label_num]->setText(QString::number(5));,而忘了写num[label_num]->show(),所以在槽函数中,也忘了给labelshow(),但同样没写show()的标签,第一个显示出来了,其他的却没有显示。

最后把show()补上,才没问题。只是为什么会这样,我没找到原因

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值