gpt4 book ai didi

python - python 等 ionic 体中的多个布局/布局转换

转载 作者:太空宇宙 更新时间:2023-11-03 19:34:32 25 4
gpt4 key购买 nike

我正在做一个处理远程资源的小python plasmoid。这是代码:glpoid

它提供工单 View (默认 View )、一个让用户填写并发送新工单的 View 以及最后一个工单 View 查看票证详细信息...

我的问题是,当我传递到另一个 View (或使其消失)时,我不知道如何“关闭”当前布局。

对于每个布局,我定义添加到布局定义中的项目,最后显示新布局:

最初,我使用 self.view_tickets_ui() 显示默认 View 。每个布局都是在 name_ui() 方法中定义的,每个方法都会重新定义布局并将其传递给小程序。

要恢复它的定义如下:

class GLPIApplet(plasmascript.Applet):
def __init__(self,parent,args=None):
plasmascript.Applet.__init__(self,parent)

def init(self):
self.setHasConfigurationInterface(False)
self.setAspectRatioMode(Plasma.Square)
self.resize(400,650)
# new ticket button
self.new = Plasma.PushButton()
self.new.setText('Nouveau Ticket')
self.connect(self.new, SIGNAL('clicked()'), self.new_ticket_ui)
# refresh button
self.refresh = Plasma.PushButton()
self.refresh.setText('Rafraichir')
self.connect(self.refresh, SIGNAL('clicked()'), self.view_tickets_ui)
# initialize
self.view_tickets_ui()

def view_tickets_ui(self, message=None):
# layout of ticket view
self.layout = QGraphicsLinearLayout(Qt.Vertical)
self.layout.itemSpacing(3)
self.layout.addItem(self.new)
self.view_tickets()
self.layout.addItem(self.refresh)
self.applet.setLayout(self.layout)

def new_ticket_ui(self, message=None):
# layout of a new ticket
self.layout = QGraphicsLinearLayout(Qt.Vertical)
self.layout.itemSpacing(3)
message_label = Plasma.Label()
message_label.setText('the message:')
self.layout.addItem(message_label)
self.applet.setLayout(self.layout)

这里init只是定义了一些按钮,然后调用view_tickets_ui()来放置一些项目并显示布局。如果我之后调用 new_ticket_ui() ,它会将元素添加到当前布局...因此两者都显示在同一位置。

请问我该如何处理?

最佳答案

您可以使用带有隐藏选项卡的 Plasma.TabBar 并在它们之间切换,如 IRC 中所述。将 clicked 信号连接到在选项卡之间切换的插槽,一切都应该没问题。

另外,关于样式的注释:您应该使用 new signal/slot API只要有可能:

self.connect(self.refresh, SIGNAL('clicked()'), self.view_tickets_ui)

应该变成

self.refresh.clicked.connect(self.view_tickets_ui).

关于python - python 等 ionic 体中的多个布局/布局转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4173771/

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