该按钮根本不起作用。没有错误信息

时间:2019-08-04 15:00:50

标签: python pyqt5

我想通过按按钮来更改页面。 我创建了这样的代码,当我按下按钮时它什么也没做。 代码正常运行,没有错误,我可以看到主窗口。但是该按钮不起作用。 我打印了一条消息以验证其操作,但是根本没有出现。 有办法解决这个问题吗?

我的代码:

import sys
from PyQt5.QtWidgets import *

class menu_grid(QFrame):
    def __init__(self, parent):
        super(menu_grid, self).__init__(parent)
        self.HBoxUI()

    def HBoxUI(self):
        self.Glayout = QHBoxLayout()

        self.mytask = QPushButton('My Task')
        self.Glayout.addWidget(self.mytask)

        self.rasca = QPushButton('Rasca')
        self.Glayout.addWidget(self.rasca)

        self.setLayout(self.Glayout)

class main_frame(QFrame):
    def __init__(self, parent=None):
        super(main_frame, self).__init__(parent)

        self.myt = QFrame()
        self.myt.setStyleSheet("background-color: rgb(0, 20, 0);")

        self.rasc = QFrame()
        self.rasc.setStyleSheet("background-color: rgb(80, 80, 20);")

        self.stack = QStackedWidget(self)
        self.stack.addWidget(self.myt)
        self.stack.addWidget(self.rasc)

        self.Mlayout = QGridLayout()
        self.Mlayout.addWidget(self.stack)

        self.setLayout(self.Mlayout)

 ## here is button slot
    def open_myt(self):
        print("click_my")
        self.stack.setCurrentIndex(0)

    def open_rasca(self):
        print("click_ras")
        self.stack.setCurrentIndex(1)

class RASCAFE_Main(QMainWindow, menu_grid, main_frame):
    def __init__(self, parent=None):
        super(RASCAFE_Main, self).__init__(parent)
        self.initUI()

## here is button signal
        self.mytask.clicked.connect(self.open_myt)
        self.rasca.clicked.connect(self.open_rasca)

    def initUI(self):
        self.setGeometry(100, 100, 1280, 720)

        self.mainLayer = QWidget(self)
        self.mainLayout = QVBoxLayout(self.mainLayer)

        self.main_gd = menu_grid(self)
        self.mainLayout.addWidget(self.main_gd)

        self.main_fr = main_frame(self)
        self.mainLayout.addWidget(self.main_fr)

        self.mainLayer.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainLayer)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    Rascafe = RASCAFE_Main()
    Rascafe.show()
    sys.exit(app.exec_())

0 个答案:

没有答案