今天原本想研究下qt多线程,结果在写了一个label 和 pushubutton后发现标签被遮住了,垂直布局也没用,代码如下:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
QLabel *label = new QLabel(this);
label->setText("0");
//label->setMinimumSize(100, 100);
int height = label->height();
QPushButton *btn = new QPushButton(this);
btn->setText("这是一个按钮");
btn->move(btn->pos().x(), btn->pos().y() + height);//不做的话, 按钮遮住label
QHBoxLayout *vBoxLayout = new QHBoxLayout(this);
vBoxLayout->addWidget(label, 1);
vBoxLayout->addWidget(btn, 9);
setLayout(vBoxLayout);
this->resize(200, 200);
}
垂直布局addwidget无效,
原因:按钮把标签部件遮住了
最后解决2个思路
- 设置label最小大小
label->setMinimumSize(100, 100);
- 使用move把按钮移动到label下
int height = label->height();
QPushButton *btn = new QPushButton(this);
btn->setText("这是一个按钮");
btn->move(btn->pos().x(), btn->pos().y() + height);
在尝试使用Qt进行多线程研究时,作者遇到了QLabel被QPushButton遮挡的问题。通过设置QLabel的最小大小和使用move方法调整QPushButton的位置,解决了布局问题。垂直布局的addWidget未生效,原因是按钮默认位置覆盖了标签。
3730

被折叠的 条评论
为什么被折叠?



