gpt4 book ai didi

python - 如何使用pyqt4隐藏水平框

转载 作者:行者123 更新时间:2023-12-01 01:13:06 25 4
gpt4 key购买 nike

在我的示例程序中,我想隐藏 hbox。但是我找不到任何方法在 pyqt4 中隐藏 hbox。任何人都可以帮助我如何隐藏水平框。提前谢谢您。

下面是我的代码:

import sys
from PyQt4 import QtGui
global payments
payments = False
class Example(QtGui.QWidget):

def __init__(self):
super(Example, self).__init__()

self.initUI()

def initUI(self):
self.grid = QtGui.QGridLayout()
self.hbox = QtGui.QHBoxLayout()

self.cash = QtGui.QPushButton("cash")
self.card = QtGui.QPushButton("card")
self.wallet = QtGui.QPushButton("wallet")
self.hbox.addWidget(self.cash)
self.hbox.addWidget(self.card)
self.hbox.addWidget(self.wallet)
self.paybtn = QtGui.QPushButton("pay")
self.paybtn.clicked.connect(self.show_payments)
self.grid.addWidget(self.paybtn,1,0)
self.setLayout(self.grid)

self.setGeometry(300, 300, 500,500)
self.show()

def show_payments(self):
global payments
payments = not payments
print payments
if payments:
self.paybtn.setText('Edit Order')
self.grid.addLayout(self.hbox,0,0)

else:
self.paybtn.setText('Pay')
#here i want to hide the self.hbox


def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())


if __name__ == '__main__':
main()

最佳答案

布局的功能是管理其他小部件的位置和大小,您的任务不是隐藏。相反,您必须创建一个小部件,其中水平盒带有按钮,并且该小部件将其设置在网格布局中,因此只需隐藏或显示新小部件。

class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()

def initUI(self):
self.setGeometry(300, 300, 500,500)

grid = QtGui.QGridLayout(self)
self.foo_widget = QtGui.QWidget(visible=False)
self.foo_widget.setSizePolicy(QtGui.QSizePolicy.Preferred,
QtGui.QSizePolicy.Maximum)
hbox = QtGui.QHBoxLayout(self.foo_widget)
hbox.setContentsMargins(0, 0, 0, 0)

self.cash = QtGui.QPushButton("cash")
self.card = QtGui.QPushButton("card")
self.wallet = QtGui.QPushButton("wallet")

hbox.addWidget(self.cash)
hbox.addWidget(self.card)
hbox.addWidget(self.wallet)

self.paybtn = QtGui.QPushButton("Pay", clicked=self.show_payments)

grid.addWidget(self.foo_widget, 0, 0)
grid.addWidget(self.paybtn, 1, 0)

def show_payments(self):
global payments
payments = not payments
self.paybtn.setText('Edit Order' if payments else 'Pay')
self.foo_widget.setVisible(payments)

关于python - 如何使用pyqt4隐藏水平框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54642805/

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