gpt4 book ai didi

c++ - 为什么我的角落小部件没有显示在 QTabWidget 中?

转载 作者:行者123 更新时间:2023-12-04 08:27:49 25 4
gpt4 key购买 nike

我有一个 QTabWidget,我想要 两个右上角的按钮。
我使用此代码将垂直布局添加为角小部件并为其添加两个按钮:

QWidget* cornerWidget = new QWidget();
QVBoxLayout* vbox = new QVBoxLayout();
QPushButton* button1 = new QPushButton("Button 1");
QPushButton* button2 = new QPushButton("Button 2");

vbox->addWidget(button1);
vbox->addWidget(button2);

ui->myTabWidget->setCornerWidget(cornerWidget);
cornerWidget->setLayout(vbox);
cornerWidget->show();
但是,当我运行我的程序时,右上角根本没有显示任何小部件。
如果我使用这个简化的代码只添加一个按钮,它可以完美运行并显示我的按钮:
QPushButton* button1 = new QPushButton("Button 1")
ui->myTabWidget->setCornerWidget(button1);

最佳答案

原因
角落小部件的位置受到限制。您使用垂直布局,其内容边距将按钮向下移动,使其看不见。
解决方案
使用水平布局并将内容边距设置为 0 .
例子
这是我为您编写的示例,用于演示如何实现建议的解决方案:

auto *cornerWidget = new QWidget(this);
auto *hbox = new QHBoxLayout(cornerWidget);
auto *button1 = new QPushButton(tr("Button 1"), this);
auto *button2 = new QPushButton(tr("Button 2"), this);

hbox->addWidget(button1);
hbox->addWidget(button2);
hbox->setContentsMargins(0, 0, 0, 0);

ui->myTabWidget->setCornerWidget(cornerWidget);
结果
给定的示例产生以下结果:
Application window

关于c++ - 为什么我的角落小部件没有显示在 QTabWidget 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65180078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com