gpt4 book ai didi

c++ - Qt - 如何让 QPushButton 在两个 QVBoxLayouts 之间改变

转载 作者:行者123 更新时间:2023-11-30 03:01:47 25 4
gpt4 key购买 nike

所以我有一个名为“vboxmain”的主布局。并且该程序有两种状态:二十一点和扑克。对于两者,我都有一个按钮。在这个 vboxmain 中,我有一个上半部分,它涵盖了大部分程序,并且对于两个游戏都是相同的,但我还有一个底部部分,它应该显示两个游戏的不同部分。例如,扑克游戏应该包含五个 QCheckBoxes 和一个按钮。至于二十一点游戏,我只需要两个按钮。我将这两个底部布局创建为 QVBoxLayouts。所以现在我有:

BlackjackiValikud = new QVBoxLayout; //for blackjack
Pokkerivalikud = new QVBoxLayout; //for poker

我尝试创建两个这样的按钮操作:

void mainwindow::BlackJack_clicked(){
vboxmain->removeItem(Pokkerivalikud);
vboxmain->addItem(BlackjackiValikud);
}

void mainwindow::Poker_clicked(){
vboxmain->removeItem(BlackjackiValikud);
vboxmain->addItem(Pokkerivalikud);
}

按钮是这样连接的:

connect(BlackjackButton, SIGNAL(clicked()), this, SLOT(BlackJack_clicked()));
connect(PokerButton, SIGNAL(clicked()), this, SLOT(Poker_clicked()));

但目前它不起作用,我想不出办法来做到这一点,所以我正在寻求帮助。这可能也不是最好的方法,但我不知道任何其他方法。因此,我可以使用一些帮助来了解如何使用任何解决方案进行这项工作 - 这样我就可以使用这两个按钮根据需要更改 vboxmain 的底部。

我对解决方案持开放态度。

最佳答案

你说它不起作用是什么意思?

您必须确保在添加它们时布局已启用(通过 QLayout::setEnabled ( bool enable))或小部件可见(通过 QWidget::show( ))。一般来说,您必须手动制作可见的项目,这些项目被添加到已经可见的小部件中......

另一种方法是使用 QStackedLayout显示。您有一个用于扑克牌 View 的小部件 poker 和一个用于 black jack View 的小部件 blackjack。在按下按钮时,您可以使用

void QStackedLayout::setCurrentIndex ( int index )
void QStackedLayout::setCurrentWidget ( QWidget * widget )

关于c++ - Qt - 如何让 QPushButton 在两个 QVBoxLayouts 之间改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10760782/

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