为什么这段代码"class _class :public QWidget { QPushButton arr[5] = { QPushButton{"SIGNAL/SLOT"} , QPushButton{"函数地址"} , QPushButton{"UI DESIGNER-转到槽"} , QPushButton{"UI DESIGNER-信号槽编辑器"} , QPushButton{"lambda表达式"} }; public: _class() { this->show(); QHBoxLayout layout{}; layout.setDirection(QHBoxLayout::Direction::Down); for (int i = 0; i < 5; ++i) { arr[i].setMinimumSize(50, 20); layout.addWidget(&arr[i],i,Qt::AlignCenter); } this->setLayout(&layout); connect(&arr[0], SIGNAL(clicked()), this, SLOT(showMaximized())); } };"的按钮控件会重叠在一起,如果不希望他们重叠那么应该怎么更改,请提供对应代码
时间: 2024-03-24 10:41:38 浏览: 60
PyQt5按钮点击事件 给按钮绑定事件调用自定义函数 QPushButton
5星 · 资源好评率100%
这段代码中的按钮控件会重叠在一起是因为在添加按钮控件到水平布局中时,没有指定按钮控件在布局中的位置。要想避免按钮控件重叠,可以使用 `addWidget()` 方法的第二个参数来指定按钮控件在布局中的位置。以下是修改后的代码:
```
class _class : public QWidget {
QPushButton arr[5] = {
QPushButton{"SIGNAL/SLOT"},
QPushButton{"函数地址"},
QPushButton{"UI DESIGNER-转到槽"},
QPushButton{"UI DESIGNER-信号槽编辑器"},
QPushButton{"lambda表达式"}
};
public:
_class() {
this->show();
QHBoxLayout layout{};
layout.setDirection(QHBoxLayout::Direction::Down);
for (int i = 0; i < 5; ++i) {
arr[i].setMinimumSize(50, 20);
layout.addWidget(&arr[i], 0, Qt::AlignCenter); // 修改这里
}
this->setLayout(&layout);
connect(&arr[0], SIGNAL(clicked()), this, SLOT(showMaximized()));
}
};
```
在 `addWidget()` 方法中,第二个参数指定按钮控件在布局中的行号,这里设置为了 0,表示所有按钮控件都在第 0 行。如果需要更多的行,可以使用 `addWidget()` 方法的第三个参数来指定列号。
阅读全文