0
我是Python GUI編程的新手。目前我正在嘗試創建按鈕,一旦我點擊它,它應該打開一個新的窗口/框架。pyqt4按鈕點擊事件打開新框架/窗口
這是我的Python GUI代碼:
class Window(QtGui.QMainWindow):
def __init__(self):
super(Window, self).__init__()
palette = QPalette()
palette.setBrush(QPalette.Background,QBrush(QPixmap("blue-gradient-2.jpg")))
self.setPalette(palette)
self.setGeometry(300, 300, 600, 400)
self.setWindowTitle("Testing Window")
# self.setWindowIcon(QtGui.QIcon(''))
self.home()
def qr(self):
backbtn = QtGui.QPushButton("Back" , self)
backbtn.clicked.connect(home)
backbtn.resize(100, 100)
backbtn.move(100, 100)
self.show()
def home(self):
btn = QtGui.QPushButton("QR Code", self)
btn.clicked.connect(qr)
btn.resize(100, 100)
btn.move(100, 100)
btn1 = QtGui.QPushButton("Face Recognition", self)
btn1.clicked.connect(QtCore.QCoreApplication.instance().quit)
btn1.resize(200, 100)
btn1.move(300, 100)
self.show()
def run():
app = QtGui.QApplication(sys.argv)
GUI = Window()
sys.exit(app.exec_())
run()
其實,這段代碼我從一個教程了。我甚至看到Tkinter可以打開一個新的窗口/框架。但是PyQt沒有任何教程打開一個新的窗口/框架。
我得到的錯誤是:
Traceback (most recent call last):
File "pyqt.py", line 47, in <module>
run()
File "pyqt.py", line 44, in run
GUI = Window()
File "pyqt.py", line 16, in __init__
self.home()
File "pyqt.py", line 28, in home
btn.clicked.connect(qr)
NameError: global name 'qr' is not defined
我相信應該有對付這種錯誤適當的方式。
那麼,這有助於解決我的錯誤,但當我點擊打開新窗口它現在的工作,我可以知道爲什麼.. – raaj5671
@ raaj5671'self.show()'將無法正常工作,因爲該窗口已顯示。你需要創建一個新的獨立窗口,並顯示一個, – tynn
這意味着我必須創建一個新的類?例如, – raaj5671