PyQt:从另一个函数修改小部件对象 [英] PyQt: Modifying Widget Object from another Function

查看:43
本文介绍了PyQt:从另一个函数修改小部件对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在 PyQt4 中制作多页应用程序,因此每当用户执行特定操作(例如单击按钮)时,小部件都会更新.

I am making Multi-Page application in PyQt4, so whenever user does specific action (clicking a button for example) there is an update in widgets.

例如,有 5 个小部件和一个按钮:

For example, There are 5 widgets and one button:

隐藏 3 个小部件,显示 2 个小部件.

3 widgets are hidden, 2 widgets are shown.

每当我点击按钮时,它都会隐藏 2 个小部件,并显示那些 3 个.

Whenever i click the button, it will hide 2 widgets, and show those 3.

所以在代码中,它应该是这样的:

So in code, it should be something like this:

# startup    
def somefunc(self):
        widget1 = QtGui.QLabel("Widget1", self)
        widget2 = QtGui.QLabel("Widget2", self)
        widget3 = QtGui.QLabel("Widget3", self)
        widget4 = QtGui.QLabel("Widget4", self)
        widget5 = QtGui.QLabel("Widget5", self)
        widget1.setHidden()
        widget2.setHidden()
        widget3.setHidden()
        widget4.show()
        widget5.show()
        btn = QtGui.QPushButton("Click", self)
        btn.clicked.connect(self.SomeotherFunc)

 # My Question: (Code down below doesn't work, it's for example)
 def SomeotherFunc(self):
        self.somefunc.widget1.Show()
        self.somefunc.widget1.Show()
        self.somefunc.widget1.Show()
        self.somefunc.widget4.setHidden()
        self.somefunc.widget5.setHidden()

<小时>

完整代码:

import sys
from PyQt4 import QtGui, QtCore
import resources

class Window(QtGui.QMainWindow):

    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(0, 0, 1280, 800)
        self.setWindowTitle("E.S Quiz")
        self.home()


    def home(self):
        pic = QtGui.QLabel(self)
        pic.setGeometry(0, 0, 1280, 800)
        pic.setPixmap(QtGui.QPixmap(":/images/background.png"))
        btn = QtGui.QPushButton("", self)
        btn.resize(150, 120)
        btn.move(600, 400)
        btn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        btn.setObjectName('btn')
        btn.setStyleSheet("#btn {background-image: url(':/images/Button1.png'); border: none; }"
        "#btn:hover { background-image: url(':/images/Button1Hover.png'); }"
        "#btn:pressed { background-image: url(':/images/Button1Press.png'); }")
        btn.clicked.connect(self.test)
        self.show()

    def test(self):
        print "Here"




def startup():
    app = QtGui.QApplication(sys.argv)
    GUI = Window()
    sys.exit(app.exec_())

startup()

问题:

我如何从另一个功能修改一些功能小部件?

Question:

How do i modify some functions widgets from another function?

推荐答案

您需要使用 self

def func(self):
    self.btn = QPushButton(...)
    ...

def other_func(self):
    self.btn.setText('Hello')

这篇关于PyQt:从另一个函数修改小部件对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆